diff --git a/src/main/java/refinedstorage/api/RefinedStorageAPI.java b/src/main/java/refinedstorage/api/RefinedStorageAPI.java index d767cf120..ebef434ae 100755 --- a/src/main/java/refinedstorage/api/RefinedStorageAPI.java +++ b/src/main/java/refinedstorage/api/RefinedStorageAPI.java @@ -1,55 +1,10 @@ package refinedstorage.api; -import net.minecraft.world.World; -import refinedstorage.api.network.INetworkMaster; -import refinedstorage.api.network.INetworkNode; -import refinedstorage.api.network.registry.INetworkRegistry; -import refinedstorage.api.network.registry.INetworkRegistryProvider; import refinedstorage.api.solderer.ISoldererRegistry; -import java.util.HashMap; -import java.util.Map; - public final class RefinedStorageAPI { /** * The solderer registry, set in pre-initialization */ public static ISoldererRegistry SOLDERER_REGISTRY; - - /** - * The network registry provider, set in pre-initialization - */ - public static INetworkRegistryProvider NETWORK_REGISTRY_PROVIDER; - - private static final Map NETWORK_REGISTRY = new HashMap<>(); - - public static INetworkRegistry getNetworkRegistry(World world) { - return getNetworkRegistry(world.provider.getDimension()); - } - - public static void removeNetworkRegistry(World world) { - NETWORK_REGISTRY.remove(world.provider.getDimension()); - } - - public static INetworkRegistry getNetworkRegistry(int dimension) { - if (!NETWORK_REGISTRY.containsKey(dimension)) { - NETWORK_REGISTRY.put(dimension, NETWORK_REGISTRY_PROVIDER.provide(dimension)); - } - - return NETWORK_REGISTRY.get(dimension); - } - - public static INetworkMaster getNetwork(INetworkNode node) { - for (INetworkRegistry registry : NETWORK_REGISTRY.values()) { - for (INetworkMaster network : registry.getNetworks()) { - for (INetworkNode otherNode : network.getNodeGraph().all()) { - if (node.equals(otherNode)) { - return network; - } - } - } - } - - return null; - } } diff --git a/src/main/java/refinedstorage/api/network/registry/INetworkRegistry.java b/src/main/java/refinedstorage/api/network/registry/INetworkRegistry.java deleted file mode 100755 index 6a11bce5a..000000000 --- a/src/main/java/refinedstorage/api/network/registry/INetworkRegistry.java +++ /dev/null @@ -1,41 +0,0 @@ -package refinedstorage.api.network.registry; - -import net.minecraft.util.math.BlockPos; -import refinedstorage.api.network.INetworkMaster; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.Collection; - -/** - * A registry of all Refined Storage networks on this server. - */ -public interface INetworkRegistry { - /** - * Adds a network to the registry. - * - * @param network The network - */ - void addNetwork(@Nonnull INetworkMaster network); - - /** - * Removes a network from the registry. - * - * @param pos The position of the network - */ - void removeNetwork(@Nonnull BlockPos pos); - - /** - * @return All the networks in this registry - */ - Collection getNetworks(); - - /** - * Returns a network at a position. - * - * @param pos The position of the network - * @return The network - */ - @Nullable - INetworkMaster getNetwork(@Nonnull BlockPos pos); -} diff --git a/src/main/java/refinedstorage/api/network/registry/INetworkRegistryProvider.java b/src/main/java/refinedstorage/api/network/registry/INetworkRegistryProvider.java deleted file mode 100755 index fb160d8fb..000000000 --- a/src/main/java/refinedstorage/api/network/registry/INetworkRegistryProvider.java +++ /dev/null @@ -1,5 +0,0 @@ -package refinedstorage.api.network.registry; - -public interface INetworkRegistryProvider { - INetworkRegistry provide(int dimension); -} diff --git a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java index f1e67bb0a..28c007df1 100755 --- a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -52,8 +52,8 @@ public class NetworkNodeGraph implements INetworkNodeGraph { while ((currentPos = toCheck.poll()) != null) { TileEntity tile = world.getTileEntity(currentPos); - if (tile instanceof TileController && !controller.getPos().equals(tile.getPos())) { - world.createExplosion(null, tile.getPos().getX(), tile.getPos().getY(), tile.getPos().getZ(), 4.5f, true); + if (tile instanceof TileController && !controller.getPos().equals(currentPos)) { + world.createExplosion(null, currentPos.getX(), currentPos.getY(), currentPos.getZ(), 3.5f, true); } if (!(tile instanceof INetworkNode)) { diff --git a/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistry.java b/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistry.java deleted file mode 100755 index c0a37f07f..000000000 --- a/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistry.java +++ /dev/null @@ -1,36 +0,0 @@ -package refinedstorage.apiimpl.network.registry; - -import net.minecraft.util.math.BlockPos; -import refinedstorage.api.network.INetworkMaster; -import refinedstorage.api.network.registry.INetworkRegistry; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -public class NetworkRegistry implements INetworkRegistry { - private Map networks = new HashMap<>(); - - @Override - public void addNetwork(@Nonnull INetworkMaster network) { - networks.put(network.getPosition(), network); - } - - @Override - public void removeNetwork(@Nonnull BlockPos pos) { - networks.remove(pos); - } - - @Override - public Collection getNetworks() { - return networks.values(); - } - - @Nullable - @Override - public INetworkMaster getNetwork(@Nonnull BlockPos pos) { - return networks.get(pos); - } -} diff --git a/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistryProvider.java b/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistryProvider.java deleted file mode 100755 index 1e8323bb8..000000000 --- a/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistryProvider.java +++ /dev/null @@ -1,11 +0,0 @@ -package refinedstorage.apiimpl.network.registry; - -import refinedstorage.api.network.registry.INetworkRegistry; -import refinedstorage.api.network.registry.INetworkRegistryProvider; - -public class NetworkRegistryProvider implements INetworkRegistryProvider { - @Override - public INetworkRegistry provide(int dimension) { - return new NetworkRegistry(); - } -} diff --git a/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistryUnloader.java b/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistryUnloader.java deleted file mode 100755 index 7c8f6f23e..000000000 --- a/src/main/java/refinedstorage/apiimpl/network/registry/NetworkRegistryUnloader.java +++ /dev/null @@ -1,12 +0,0 @@ -package refinedstorage.apiimpl.network.registry; - -import net.minecraftforge.event.world.WorldEvent; -import net.minecraftforge.fml.common.Mod; -import refinedstorage.api.RefinedStorageAPI; - -public class NetworkRegistryUnloader { - @Mod.EventHandler - public void onWorldUnload(WorldEvent.Unload e) { - RefinedStorageAPI.removeNetworkRegistry(e.getWorld()); - } -} diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 28861fbde..950ee2eef 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -17,8 +17,6 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageItems; import refinedstorage.api.RefinedStorageAPI; -import refinedstorage.apiimpl.network.registry.NetworkRegistryProvider; -import refinedstorage.apiimpl.network.registry.NetworkRegistryUnloader; import refinedstorage.apiimpl.solderer.*; import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; import refinedstorage.apiimpl.storage.item.ItemStorageNBT; @@ -46,10 +44,6 @@ public class CommonProxy { RefinedStorageAPI.SOLDERER_REGISTRY = new SoldererRegistry(); - RefinedStorageAPI.NETWORK_REGISTRY_PROVIDER = new NetworkRegistryProvider(); - - MinecraftForge.EVENT_BUS.register(new NetworkRegistryUnloader()); - int id = 0; RefinedStorage.INSTANCE.network.registerMessage(MessageTileDataParameter.class, MessageTileDataParameter.class, id++, Side.CLIENT); diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index cbb6a137c..e1b1a49c0 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -18,14 +18,12 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; -import refinedstorage.api.RefinedStorageAPI; import refinedstorage.api.autocrafting.ICraftingPattern; import refinedstorage.api.autocrafting.ICraftingPatternContainer; import refinedstorage.api.autocrafting.ICraftingTask; import refinedstorage.api.network.*; import refinedstorage.api.network.grid.IFluidGridHandler; import refinedstorage.api.network.grid.IItemGridHandler; -import refinedstorage.api.network.registry.INetworkRegistry; import refinedstorage.api.storage.CompareUtils; import refinedstorage.api.storage.fluid.IFluidStorage; import refinedstorage.api.storage.fluid.IGroupedFluidStorage; @@ -186,8 +184,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR private IControllerEnergyIC2 energyEU; private ControllerEnergyTesla energyTesla; - private boolean destroyed; - private int lastEnergyDisplay; private int lastEnergyComparator; @@ -238,12 +234,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR @Override public void update() { if (!worldObj.isRemote) { - INetworkRegistry registry = RefinedStorageAPI.getNetworkRegistry(worldObj); - - if (!destroyed && registry.getNetwork(pos) == null) { - registry.addNetwork(this); - } - energyEU.update(); if (canRun()) { @@ -370,14 +360,12 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR super.onChunkUnload(); energyEU.onChunkUnload(); + + onDestroyed(); } public void onDestroyed() { nodeGraph.disconnectAll(); - - destroyed = true; - - RefinedStorageAPI.getNetworkRegistry(worldObj).removeNetwork(pos); } public IGroupedItemStorage getItemStorage() { diff --git a/src/main/java/refinedstorage/tile/TileNode.java b/src/main/java/refinedstorage/tile/TileNode.java index 688fc5920..a9c474af1 100755 --- a/src/main/java/refinedstorage/tile/TileNode.java +++ b/src/main/java/refinedstorage/tile/TileNode.java @@ -4,7 +4,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import refinedstorage.api.RefinedStorageAPI; import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkNode; import refinedstorage.api.network.NetworkUtils; @@ -21,6 +20,7 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto private boolean active; private boolean update; private boolean connected; + private INetworkMaster network; protected boolean rebuildOnUpdateChange; @@ -66,12 +66,18 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto @Override public void onConnected(INetworkMaster network) { + this.connected = true; + this.network = network; + onConnectionChange(network, true); } @Override public void onDisconnected(INetworkMaster network) { onConnectionChange(network, false); + + this.connected = false; + this.network = null; } @Override @@ -86,7 +92,7 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto @Override public INetworkMaster getNetwork() { - return (worldObj != null && !worldObj.isRemote) ? RefinedStorageAPI.getNetwork(this) : null; + return network; } @Override @@ -101,7 +107,7 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto @Override public boolean isConnected() { - return worldObj.isRemote ? connected : (getNetwork() != null); + return connected; } @Override