From 2dc6a39da44f8586fd36aad2bddae1f2fa2cb320 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Wed, 21 Dec 2016 23:51:29 +0100 Subject: [PATCH] Fix bugs --- .../refinedstorage/api/IRSAPI.java | 7 +++ .../api/network/INetworkNodeRegistry.java | 14 ++++++ .../refinedstorage/apiimpl/API.java | 15 ++++++ .../apiimpl/network/NetworkNodeGraph.java | 3 +- .../apiimpl/network/NetworkNodeRegistry.java | 29 +++++++++++ .../apiimpl/network/node/NetworkNode.java | 42 ++++++++++++++-- .../network/node/NetworkNodeConstructor.java | 8 +-- .../network/node/NetworkNodeCrafter.java | 12 ++--- .../node/NetworkNodeCraftingMonitor.java | 5 -- .../network/node/NetworkNodeDestructor.java | 8 +-- .../network/node/NetworkNodeDetector.java | 6 +-- .../network/node/NetworkNodeDiskDrive.java | 8 +-- .../node/NetworkNodeDiskManipulator.java | 10 ++-- .../network/node/NetworkNodeExporter.java | 8 +-- .../node/NetworkNodeFluidInterface.java | 8 +-- .../network/node/NetworkNodeFluidStorage.java | 4 +- .../apiimpl/network/node/NetworkNodeGrid.java | 9 +--- .../network/node/NetworkNodeImporter.java | 8 +-- .../network/node/NetworkNodeInterface.java | 10 ++-- .../node/NetworkNodeNetworkTransmitter.java | 6 +-- .../node/NetworkNodeSecurityManager.java | 6 +-- .../network/node/NetworkNodeSolderer.java | 8 +-- .../network/node/NetworkNodeStorage.java | 4 +- .../node/NetworkNodeWirelessTransmitter.java | 4 +- .../network/node/NetworkNodeWriter.java | 12 +---- .../NetworkNodeExternalStorage.java | 6 +-- .../StorageItemItemHandler.java | 4 +- .../refinedstorage/block/BlockNode.java | 3 +- ...istener.java => IItemHandlerListener.java} | 2 +- .../inventory/ItemHandlerBasic.java | 4 +- .../inventory/ItemHandlerFluid.java | 2 +- ...va => ItemHandlerListenerNetworkNode.java} | 4 +- ...Tile.java => ItemHandlerListenerTile.java} | 4 +- .../inventory/ItemHandlerUpgrade.java | 2 +- .../refinedstorage/tile/TileBase.java | 2 + .../refinedstorage/tile/TileController.java | 6 ++- .../refinedstorage/tile/TileNode.java | 49 ++++++++++++------- .../tile/TileProcessingPatternEncoder.java | 6 +-- 38 files changed, 218 insertions(+), 130 deletions(-) create mode 100755 src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkNodeRegistry.java create mode 100755 src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeRegistry.java rename src/main/java/com/raoulvdberge/refinedstorage/inventory/{IItemHandlerChangeListener.java => IItemHandlerListener.java} (64%) rename src/main/java/com/raoulvdberge/refinedstorage/inventory/{ItemHandlerChangeListenerNode.java => ItemHandlerListenerNetworkNode.java} (64%) rename src/main/java/com/raoulvdberge/refinedstorage/inventory/{ItemHandlerChangeListenerTile.java => ItemHandlerListenerTile.java} (63%) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java b/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java index a6b5012c5..dda33b82e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java @@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry; import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry; import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; +import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry; import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry; @@ -28,6 +29,12 @@ public interface IRSAPI { @Nonnull IComparer getComparer(); + /** + * @param dimension the dimension + * @return the network node registry for the given dimension + */ + INetworkNodeRegistry getNetworkNodeRegistry(int dimension); + /** * @return the solderer registry */ diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkNodeRegistry.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkNodeRegistry.java new file mode 100755 index 000000000..ff8a5549c --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetworkNodeRegistry.java @@ -0,0 +1,14 @@ +package com.raoulvdberge.refinedstorage.api.network; + +import net.minecraft.util.math.BlockPos; + +import javax.annotation.Nullable; + +public interface INetworkNodeRegistry { + @Nullable + INetworkNode getNode(BlockPos pos); + + void removeNode(BlockPos pos); + + void setNode(BlockPos pos, INetworkNode node); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java index 9aeb43f73..8de620354 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java @@ -9,6 +9,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRe import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.api.network.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy; +import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry; import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry; @@ -18,6 +19,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.Craf import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRegistry; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementRegistry; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskRegistry; +import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeRegistry; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterChannel; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry; import com.raoulvdberge.refinedstorage.apiimpl.solderer.SoldererRegistry; @@ -31,11 +33,15 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.discovery.ASMDataTable; +import net.minecraftforge.fml.relauncher.Side; import javax.annotation.Nonnull; import java.lang.reflect.Field; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import java.util.function.BiPredicate; @@ -43,6 +49,8 @@ public class API implements IRSAPI { private static final IRSAPI INSTANCE = new API(); private IComparer comparer = new Comparer(); + private Map networkNodeRegistryServer = new HashMap<>(); + private Map networkNodeRegistryClient = new HashMap<>(); private ISoldererRegistry soldererRegistry = new SoldererRegistry(); private ICraftingTaskRegistry craftingTaskRegistry = new CraftingTaskRegistry(); private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry(); @@ -79,6 +87,13 @@ public class API implements IRSAPI { return comparer; } + @Override + public INetworkNodeRegistry getNetworkNodeRegistry(int dimension) { + Map registry = FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? networkNodeRegistryClient : networkNodeRegistryServer; + + return registry.computeIfAbsent(dimension, r -> new NetworkNodeRegistry()); + } + @Override @Nonnull public ISoldererRegistry getSoldererRegistry() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeGraph.java index 7b159c93e..818f989d9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -161,7 +161,8 @@ public class NetworkNodeGraph implements INetworkNodeGraph { } else { for (EnumFacing checkSide : EnumFacing.VALUES) { if (checkSide != side) { // Avoid going backward - INetworkNode nodeOnSide = NETWORK_NODE_PROXY_CAPABILITY.cast(tile.getCapability(NETWORK_NODE_PROXY_CAPABILITY, checkSide)); + INetworkNodeProxy nodeOnSideProxy = NETWORK_NODE_PROXY_CAPABILITY.cast(tile.getCapability(NETWORK_NODE_PROXY_CAPABILITY, checkSide)); + INetworkNode nodeOnSide = nodeOnSideProxy.getNode(); if (nodeOnSide == node) { operator.apply(world, pos.offset(checkSide), checkSide.getOpposite()); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeRegistry.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeRegistry.java new file mode 100755 index 000000000..ee52163c5 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/NetworkNodeRegistry.java @@ -0,0 +1,29 @@ +package com.raoulvdberge.refinedstorage.apiimpl.network; + +import com.raoulvdberge.refinedstorage.api.network.INetworkNode; +import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry; +import net.minecraft.util.math.BlockPos; + +import javax.annotation.Nullable; +import java.util.HashMap; +import java.util.Map; + +public class NetworkNodeRegistry implements INetworkNodeRegistry { + private Map nodes = new HashMap<>(); + + @Override + @Nullable + public INetworkNode getNode(BlockPos pos) { + return nodes.get(pos); + } + + @Override + public void removeNode(BlockPos pos) { + nodes.remove(pos); + } + + @Override + public void setNode(BlockPos pos, INetworkNode node) { + nodes.put(pos, node); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNode.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNode.java index 4f2deed8e..bae3d6e02 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNode.java @@ -11,6 +11,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraftforge.items.IItemHandler; @@ -27,6 +28,8 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA protected int ticks; protected INetworkNodeHolder holder; + private boolean active; + public NetworkNode(INetworkNodeHolder holder) { this.holder = holder; } @@ -64,9 +67,6 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA } protected void onConnectedStateChange(INetworkMaster network, boolean state) { - if (hasConnectivityState()) { - RSUtils.updateBlock(holder.world(), holder.pos()); - } } @Override @@ -83,8 +83,14 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA public void update() { ++ticks; - if (couldUpdate != canUpdate()) { - couldUpdate = canUpdate(); + boolean canUpdate = getNetwork() != null && canUpdate(); + + if (couldUpdate != canUpdate) { + couldUpdate = canUpdate; + + if (hasConnectivityState()) { + RSUtils.updateBlock(holder.world(), holder.pos()); + } if (network != null) { onConnectedStateChange(network, couldUpdate); @@ -141,6 +147,10 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA } } + public TileEntity getFacingTile() { + return holder.world().getTileEntity(holder.pos().offset(holder.getDirection())); + } + public IItemHandler getDrops() { return null; } @@ -148,4 +158,26 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA public boolean hasConnectivityState() { return false; } + + public boolean isActive() { + return active; + } + + public void setActive(boolean active) { + this.active = active; + } + + @Override + public boolean equals(Object o) { + return o instanceof NetworkNode + && holder.pos().equals(((NetworkNode) o).holder.pos()) + && holder.world().provider.getDimension() == ((NetworkNode) o).holder.world().provider.getDimension(); + } + + @Override + public int hashCode() { + int result = holder.pos().hashCode(); + result = 31 * result + holder.world().provider.getDimension(); + return result; + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeConstructor.java index 53575695a..21b3e519d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeConstructor.java @@ -6,8 +6,8 @@ import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.container.slot.SlotFilter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -47,7 +47,7 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable, private static final int BASE_SPEED = 20; - private ItemHandlerBasic itemFilters = new ItemHandlerBasic(1, new ItemHandlerChangeListenerNode(this)) { + private ItemHandlerBasic itemFilters = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this)) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); @@ -57,9 +57,9 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable, } }; - private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(1, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(1, new ItemHandlerListenerNetworkNode(this)); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING); private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int type = IType.ITEMS; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCrafter.java index 2b5744dae..483915844 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCrafter.java @@ -8,13 +8,12 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.wrapper.CombinedInvWrapper; @@ -25,7 +24,7 @@ import java.util.List; public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer { private static final String NBT_TRIGGERED_AUTOCRAFTING = "TriggeredAutocrafting"; - private ItemHandlerBasic patterns = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this), s -> { + private ItemHandlerBasic patterns = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this), s -> { // We can only validate the crafting pattern if the world exists. // If the world doesn't exist, this is probably called while reading and in that case it doesn't matter. if (holder.world() != null) { @@ -50,7 +49,7 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC private List actualPatterns = new ArrayList<>(); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED); private boolean triggeredAutocrafting = false; @@ -163,11 +162,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC return RSUtils.getItemHandler(getFacingTile(), holder.getDirection().getOpposite()); } - @Override - public TileEntity getFacingTile() { - return holder.world().getTileEntity(holder.pos().offset(holder.getDirection())); - } - @Override public List getPatterns() { return actualPatterns; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java index bd11cc2b3..77b550c48 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java @@ -49,11 +49,6 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting return network != null ? network.getPosition() : null; } - @Override - public boolean isActive() { - return ((TileCraftingMonitor) holder.world().getTileEntity(holder.pos())).isActive(); - } - public void onOpened(EntityPlayer player) { if (network != null) { network.sendCraftingMonitorUpdate((EntityPlayerMP) player); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java index 372277214..264fc2e94 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDestructor.java @@ -4,8 +4,8 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -48,10 +48,10 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I private static final int BASE_SPEED = 20; - private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this)); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_SILK_TOUCH, ItemUpgrade.TYPE_FORTUNE); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_SILK_TOUCH, ItemUpgrade.TYPE_FORTUNE); private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int mode = IFilterable.WHITELIST; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDetector.java index 4037009da..d0ad9b4b8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDetector.java @@ -8,8 +8,8 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.TileDetector; import com.raoulvdberge.refinedstorage.tile.config.IComparable; @@ -33,8 +33,8 @@ public class NetworkNodeDetector extends NetworkNode implements IComparable, ITy private static final String NBT_AMOUNT = "Amount"; private static final String NBT_TYPE = "Type"; - private ItemHandlerBasic itemFilters = new ItemHandlerBasic(1, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(1, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic itemFilters = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(1, new ItemHandlerListenerNetworkNode(this)); private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int type = IType.ITEMS; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDiskDrive.java index 0c4e52920..e03a6c00e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDiskDrive.java @@ -14,8 +14,8 @@ import com.raoulvdberge.refinedstorage.block.EnumFluidStorageType; import com.raoulvdberge.refinedstorage.block.EnumItemStorageType; import com.raoulvdberge.refinedstorage.inventory.IItemValidator; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.IStorageGui; import com.raoulvdberge.refinedstorage.tile.TileDiskDrive; @@ -133,7 +133,7 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IStorageGui, IS private static final String NBT_TYPE = "Type"; private static final String NBT_VOID_EXCESS = "VoidExcess"; - private ItemHandlerBasic disks = new ItemHandlerBasic(8, new ItemHandlerChangeListenerNode(this), IItemValidator.STORAGE_DISK) { + private ItemHandlerBasic disks = new ItemHandlerBasic(8, new ItemHandlerListenerNetworkNode(this), IItemValidator.STORAGE_DISK) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); @@ -164,8 +164,8 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IStorageGui, IS } }; - private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this)); private StorageItem itemStorages[] = new StorageItem[8]; private StorageFluid fluidStorages[] = new StorageFluid[8]; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDiskManipulator.java index f0698ac4c..fe278add5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeDiskManipulator.java @@ -43,9 +43,9 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab private StorageItem[] itemStorages = new StorageItem[6]; private StorageFluid[] fluidStorages = new StorageFluid[6]; - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); - private ItemHandlerBasic inputDisks = new ItemHandlerBasic(3, new ItemHandlerChangeListenerNode(this), IItemValidator.STORAGE_DISK) { + private ItemHandlerBasic inputDisks = new ItemHandlerBasic(3, new ItemHandlerListenerNetworkNode(this), IItemValidator.STORAGE_DISK) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); @@ -72,7 +72,7 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab } }; - private ItemHandlerBasic outputDisks = new ItemHandlerBasic(3, new ItemHandlerChangeListenerNode(this), IItemValidator.STORAGE_DISK) { + private ItemHandlerBasic outputDisks = new ItemHandlerBasic(3, new ItemHandlerListenerNetworkNode(this), IItemValidator.STORAGE_DISK) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); @@ -191,8 +191,8 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab } } - private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this)); @Override public int getEnergyUsage() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java index 70c20b203..a2000fc8d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java @@ -5,8 +5,8 @@ import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -27,10 +27,10 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy private static final String NBT_TYPE = "Type"; private static final String NBT_REGULATOR = "Regulator"; - private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this)); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING, ItemUpgrade.TYPE_STACK); private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int type = IType.ITEMS; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidInterface.java index b4e1944f9..5095aaf53 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidInterface.java @@ -4,8 +4,8 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -53,10 +53,10 @@ public class NetworkNodeFluidInterface extends NetworkNode implements IComparabl } }; - private ItemHandlerBasic in = new ItemHandlerBasic(1, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerFluid out = new ItemHandlerFluid(1, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic in = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerFluid out = new ItemHandlerFluid(1, new ItemHandlerListenerNetworkNode(this)); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); public NetworkNodeFluidInterface(INetworkNodeHolder holder) { super(holder); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidStorage.java index 6a89fad87..27bd7003d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidStorage.java @@ -11,8 +11,8 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageFluidNBT; import com.raoulvdberge.refinedstorage.block.BlockFluidStorage; import com.raoulvdberge.refinedstorage.block.EnumFluidStorageType; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.IStorageGui; import com.raoulvdberge.refinedstorage.tile.TileFluidStorage; @@ -62,7 +62,7 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IStorageGui, private static final String NBT_MODE = "Mode"; private static final String NBT_VOID_EXCESS = "VoidExcess"; - private ItemHandlerFluid filters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerFluid filters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this)); private NBTTagCompound storageTag = StorageFluidNBT.createNBT(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java index c7c979f3e..431b4b53b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java @@ -14,8 +14,8 @@ import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.gui.grid.GridFilter; import com.raoulvdberge.refinedstorage.gui.grid.GridTab; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerGridFilterInGrid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.item.ItemPattern; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -77,7 +77,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { private InventoryCrafting matrix = new InventoryCrafting(craftingContainer, 3, 3); private InventoryCraftResult result = new InventoryCraftResult(); - private ItemHandlerBasic patterns = new ItemHandlerBasic(2, new ItemHandlerChangeListenerNode(this), new ItemValidatorBasic(RSItems.PATTERN)); + private ItemHandlerBasic patterns = new ItemHandlerBasic(2, new ItemHandlerListenerNetworkNode(this), new ItemValidatorBasic(RSItems.PATTERN)); private List filteredItems = new ArrayList<>(); private List tabs = new ArrayList<>(); private ItemHandlerGridFilterInGrid filter = new ItemHandlerGridFilterInGrid(filteredItems, tabs); @@ -438,11 +438,6 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { return TileGrid.REDSTONE_MODE; } - @Override - public boolean isActive() { - return ((TileGrid) holder.world().getTileEntity(holder.pos())).isActive(); - } - @Override public boolean hasConnectivityState() { return true; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeImporter.java index 1da4773ac..fb21c853c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeImporter.java @@ -4,8 +4,8 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -27,10 +27,10 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi private static final String NBT_MODE = "Mode"; private static final String NBT_TYPE = "Type"; - private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this)); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK); private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int mode = IFilterable.WHITELIST; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeInterface.java index 53e3d2a6f..6d9219b6d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeInterface.java @@ -4,8 +4,8 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerInterface; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -18,14 +18,14 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper; public class NetworkNodeInterface extends NetworkNode implements IComparable { private static final String NBT_COMPARE = "Compare"; - private ItemHandlerBasic importItems = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic importItems = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); - private ItemHandlerBasic exportSpecimenItems = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerBasic exportItems = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic exportSpecimenItems = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerBasic exportItems = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); private ItemHandlerInterface items = new ItemHandlerInterface(importItems, exportItems); - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING); private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeNetworkTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeNetworkTransmitter.java index 9c1e0b510..9d7ac7128 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeNetworkTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeNetworkTransmitter.java @@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.item.ItemNetworkCard; @@ -21,7 +21,7 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper; import javax.annotation.Nullable; public class NetworkNodeNetworkTransmitter extends NetworkNode { - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(1, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_INTERDIMENSIONAL) { + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(1, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_INTERDIMENSIONAL) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); @@ -32,7 +32,7 @@ public class NetworkNodeNetworkTransmitter extends NetworkNode { } }; - private ItemHandlerBasic networkCard = new ItemHandlerBasic(1, new ItemHandlerChangeListenerNode(this), new ItemValidatorBasic(RSItems.NETWORK_CARD)) { + private ItemHandlerBasic networkCard = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this), new ItemValidatorBasic(RSItems.NETWORK_CARD)) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeSecurityManager.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeSecurityManager.java index d282b9641..0f9079690 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeSecurityManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeSecurityManager.java @@ -9,7 +9,7 @@ import com.raoulvdberge.refinedstorage.api.network.security.ISecurityCardContain import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.apiimpl.network.security.SecurityCard; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.item.ItemSecurityCard; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -28,7 +28,7 @@ public class NetworkNodeSecurityManager extends NetworkNode implements ISecurity private List actualCards = new ArrayList<>(); - private ItemHandlerBasic cards = new ItemHandlerBasic(9 * 2, new ItemHandlerChangeListenerNode(this), new ItemValidatorBasic(RSItems.SECURITY_CARD)) { + private ItemHandlerBasic cards = new ItemHandlerBasic(9 * 2, new ItemHandlerListenerNetworkNode(this), new ItemValidatorBasic(RSItems.SECURITY_CARD)) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); @@ -42,7 +42,7 @@ public class NetworkNodeSecurityManager extends NetworkNode implements ISecurity } } }; - private ItemHandlerBasic editCard = new ItemHandlerBasic(1, new ItemHandlerChangeListenerNode(this), new ItemValidatorBasic(RSItems.SECURITY_CARD)); + private ItemHandlerBasic editCard = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this), new ItemValidatorBasic(RSItems.SECURITY_CARD)); @Nullable private UUID owner; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeSolderer.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeSolderer.java index 8b568e62e..4456de4eb 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeSolderer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeSolderer.java @@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRecipe; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -21,7 +21,7 @@ public class NetworkNodeSolderer extends NetworkNode { private static final String NBT_WORKING = "Working"; private static final String NBT_PROGRESS = "Progress"; - private ItemHandlerBasic items = new ItemHandlerBasic(3, new ItemHandlerChangeListenerNode(this)) { + private ItemHandlerBasic items = new ItemHandlerBasic(3, new ItemHandlerListenerNetworkNode(this)) { @Override @Nonnull public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { @@ -34,14 +34,14 @@ public class NetworkNodeSolderer extends NetworkNode { return stack; } }; - private ItemHandlerBasic result = new ItemHandlerBasic(1, new ItemHandlerChangeListenerNode(this)) { + private ItemHandlerBasic result = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this)) { @Override @Nonnull public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { return stack; } }; - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_SPEED); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_SPEED); private ISoldererRecipe recipe; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeStorage.java index d4c5ca668..709731af4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeStorage.java @@ -12,7 +12,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageItemNBT; import com.raoulvdberge.refinedstorage.block.BlockStorage; import com.raoulvdberge.refinedstorage.block.EnumItemStorageType; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.IStorageGui; import com.raoulvdberge.refinedstorage.tile.TileStorage; @@ -64,7 +64,7 @@ public class NetworkNodeStorage extends NetworkNode implements IStorageGui, ISto private static final String NBT_MODE = "Mode"; private static final String NBT_VOID_EXCESS = "VoidExcess"; - private ItemHandlerBasic filters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic filters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); private NBTTagCompound storageTag = StorageItemNBT.createNBT(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWirelessTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWirelessTransmitter.java index b3cc77e65..df7ee0ea3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWirelessTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWirelessTransmitter.java @@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.network.IWirelessTransmitter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; @@ -16,7 +16,7 @@ import net.minecraftforge.items.IItemHandler; import javax.annotation.Nullable; public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWirelessTransmitter { - private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerChangeListenerNode(this), ItemUpgrade.TYPE_RANGE); + private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_RANGE); public NetworkNodeWirelessTransmitter(INetworkNodeHolder holder) { super(holder); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWriter.java index 2c6ec5690..c8f2d5d22 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWriter.java @@ -51,10 +51,9 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter { redstoneStrength = strength; } - // @todo @Override public EnumFacing getDirection() { - return null; + return holder.getDirection(); } @Override @@ -110,15 +109,6 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter { return tag; } - // @todo - /* - @Override - public void setDirection(EnumFacing direction) { - super.setDirection(direction); - - world.notifyNeighborsOfStateChange(pos, RSBlocks.WRITER, true); - }*/ - public void onOpened(EntityPlayer entity) { if (network != null) { network.sendReaderWriterChannelUpdate((EntityPlayerMP) entity); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java index 2d3c5f55d..7d1d934a6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java @@ -11,8 +11,8 @@ import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.IStorageGui; import com.raoulvdberge.refinedstorage.tile.TileExternalStorage; @@ -37,8 +37,8 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP private static final String NBT_MODE = "Mode"; private static final String NBT_TYPE = "Type"; - private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); - private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); + private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this)); + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this)); private int priority = 0; private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/StorageItemItemHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/StorageItemItemHandler.java index 7cd3a4f28..dc0fba99d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/StorageItemItemHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/StorageItemItemHandler.java @@ -19,11 +19,9 @@ public class StorageItemItemHandler extends StorageItemExternal { this.externalStorage = externalStorage; this.handler = handler; - // @todo - /* if (externalStorage.getFacingTile().getBlockType().getUnlocalizedName().equals("tile.ExtraUtils2:TrashCan")) { lockedAccessType = AccessType.INSERT; - }*/ + } } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java index 82f833616..c42693cca 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockNode.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.apiimpl.API; +import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.tile.TileNode; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; @@ -51,7 +52,7 @@ public abstract class BlockNode extends BlockBase { @Override public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { if (hasConnectivityState()) { - return super.getActualState(state, world, pos).withProperty(CONNECTED, ((TileNode) world.getTileEntity(pos)).isActive()); + return super.getActualState(state, world, pos).withProperty(CONNECTED, ((NetworkNode) ((TileNode) world.getTileEntity(pos)).getNode()).isActive()); } return super.getActualState(state, world, pos); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/IItemHandlerChangeListener.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/IItemHandlerListener.java similarity index 64% rename from src/main/java/com/raoulvdberge/refinedstorage/inventory/IItemHandlerChangeListener.java rename to src/main/java/com/raoulvdberge/refinedstorage/inventory/IItemHandlerListener.java index 8c79cbad9..689f7d893 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/IItemHandlerChangeListener.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/IItemHandlerListener.java @@ -1,5 +1,5 @@ package com.raoulvdberge.refinedstorage.inventory; -public interface IItemHandlerChangeListener { +public interface IItemHandlerListener { void onChanged(int slot); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerBasic.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerBasic.java index ed0947592..9d178ddda 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerBasic.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerBasic.java @@ -6,11 +6,11 @@ import net.minecraftforge.items.ItemStackHandler; import javax.annotation.Nonnull; public class ItemHandlerBasic extends ItemStackHandler { - private IItemHandlerChangeListener listener; + private IItemHandlerListener listener; protected IItemValidator[] validators; - public ItemHandlerBasic(int size, IItemHandlerChangeListener listener, IItemValidator... validators) { + public ItemHandlerBasic(int size, IItemHandlerListener listener, IItemValidator... validators) { super(size); this.listener = listener; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFluid.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFluid.java index 6da70938c..e2e31ea83 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFluid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFluid.java @@ -8,7 +8,7 @@ import net.minecraftforge.items.ItemHandlerHelper; public class ItemHandlerFluid extends ItemHandlerBasic { private FluidStack[] fluids; - public ItemHandlerFluid(int size, IItemHandlerChangeListener listener) { + public ItemHandlerFluid(int size, IItemHandlerListener listener) { super(size, listener, s -> RSUtils.getFluidFromStack(ItemHandlerHelper.copyStackWithSize(s, 1), true).getValue() != null); this.fluids = new FluidStack[size]; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerChangeListenerNode.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerListenerNetworkNode.java similarity index 64% rename from src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerChangeListenerNode.java rename to src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerListenerNetworkNode.java index fd0e8e6ec..748c6f674 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerChangeListenerNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerListenerNetworkNode.java @@ -2,10 +2,10 @@ package com.raoulvdberge.refinedstorage.inventory; import com.raoulvdberge.refinedstorage.api.network.INetworkNode; -public class ItemHandlerChangeListenerNode implements IItemHandlerChangeListener { +public class ItemHandlerListenerNetworkNode implements IItemHandlerListener { private INetworkNode node; - public ItemHandlerChangeListenerNode(INetworkNode node) { + public ItemHandlerListenerNetworkNode(INetworkNode node) { this.node = node; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerChangeListenerTile.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerListenerTile.java similarity index 63% rename from src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerChangeListenerTile.java rename to src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerListenerTile.java index 78f447453..09f40631c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerChangeListenerTile.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerListenerTile.java @@ -2,10 +2,10 @@ package com.raoulvdberge.refinedstorage.inventory; import net.minecraft.tileentity.TileEntity; -public class ItemHandlerChangeListenerTile implements IItemHandlerChangeListener { +public class ItemHandlerListenerTile implements IItemHandlerListener { private TileEntity tile; - public ItemHandlerChangeListenerTile(TileEntity tile) { + public ItemHandlerListenerTile(TileEntity tile) { this.tile = tile; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java index e8a6b86cc..2cf5f275d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerUpgrade.java @@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; public class ItemHandlerUpgrade extends ItemHandlerBasic { - public ItemHandlerUpgrade(int size, IItemHandlerChangeListener listener, int... supportedUpgrades) { + public ItemHandlerUpgrade(int size, IItemHandlerListener listener, int... supportedUpgrades) { super(size, listener, new IItemValidator[supportedUpgrades.length]); for (int i = 0; i < supportedUpgrades.length; ++i) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileBase.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileBase.java index 73850ef89..2eb622c7a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileBase.java @@ -35,6 +35,8 @@ public abstract class TileBase extends TileEntity implements ITickable { public void setDirection(EnumFacing direction) { this.direction = direction; + world.notifyNeighborsOfStateChange(pos, getWorld().getBlockState(pos).getBlock(), true); + markDirty(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 3c9479b05..6d17240a8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -346,7 +346,9 @@ public class TileController extends TileBase implements INetworkMaster, IRedston public void invalidate() { super.invalidate(); - nodeGraph.disconnectAll(); + if (getWorld() != null && !getWorld().isRemote) { + nodeGraph.disconnectAll(); + } } @Override @@ -928,7 +930,9 @@ public class TileController extends TileBase implements INetworkMaster, IRedston @Override public ItemStack getItemStack() { IBlockState state = getWorld().getBlockState(pos); + Item item = Item.getItemFromBlock(state.getBlock()); + return new ItemStack(item, 1, state.getBlock().getMetaFromState(state)); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java index 8c45a6218..3ab18dae3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java @@ -2,6 +2,8 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.api.network.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy; +import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; @@ -12,8 +14,6 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.IItemHandler; import javax.annotation.Nullable; @@ -23,8 +23,6 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN private static final String NBT_ACTIVE = "Active"; - private boolean active; - public TileNode() { dataManager.addWatchedParameter(REDSTONE_MODE); } @@ -33,7 +31,24 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN public void update() { super.update(); - getNode().update(); + if (!getWorld().isRemote) { + getNode().update(); + } + } + + @Override + public void invalidate() { + super.invalidate(); + + if (getWorld() != null && !getWorld().isRemote) { + INetworkNode node = getNode(); + + API.instance().getNetworkNodeRegistry(getWorld().provider.getDimension()).removeNode(pos); + + if (node.getNetwork() != null) { + node.getNetwork().getNodeGraph().rebuild(); + } + } } @Override @@ -75,17 +90,13 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN public NBTTagCompound writeUpdate(NBTTagCompound tag) { super.writeUpdate(tag); - if (((NetworkNode) getNode()).hasConnectivityState()) { - tag.setBoolean(NBT_ACTIVE, getNode().getNetwork() != null && getNode().canUpdate()); - } + tag.setBoolean(NBT_ACTIVE, getNode().getNetwork() != null && getNode().canUpdate()); return tag; } public void readUpdate(NBTTagCompound tag) { - if (((NetworkNode) getNode()).hasConnectivityState()) { - active = tag.getBoolean(NBT_ACTIVE); - } + ((NetworkNode) getNode()).setActive(tag.getBoolean(NBT_ACTIVE)); super.readUpdate(tag); } @@ -94,17 +105,17 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN return ((NetworkNode) getNode()).getDrops(); } - // @TODO - private INetworkNode node; - @Override public INetworkNode getNode() { - return node == null ? (node = createNode()) : node; - } + INetworkNodeRegistry registry = API.instance().getNetworkNodeRegistry(getWorld().provider.getDimension()); - @SideOnly(Side.CLIENT) - public boolean isActive() { - return active; + INetworkNode node = registry.getNode(pos); + + if (node == null) { + registry.setNode(pos, node = createNode()); + } + + return node; } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileProcessingPatternEncoder.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileProcessingPatternEncoder.java index 1a45dbc15..e0fa1672c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileProcessingPatternEncoder.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileProcessingPatternEncoder.java @@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.gui.GuiProcessingPatternEncoder; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; -import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerTile; +import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerTile; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.item.ItemPattern; import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; @@ -42,8 +42,8 @@ public class TileProcessingPatternEncoder extends TileBase { } }); - private ItemHandlerBasic patterns = new ItemHandlerBasic(2, new ItemHandlerChangeListenerTile(this), new ItemValidatorBasic(RSItems.PATTERN)); - private ItemHandlerBasic configuration = new ItemHandlerBasic(9 * 2, new ItemHandlerChangeListenerTile(this)); + private ItemHandlerBasic patterns = new ItemHandlerBasic(2, new ItemHandlerListenerTile(this), new ItemValidatorBasic(RSItems.PATTERN)); + private ItemHandlerBasic configuration = new ItemHandlerBasic(9 * 2, new ItemHandlerListenerTile(this)); private boolean oredictPattern;