Fix bugs
This commit is contained in:
		| @@ -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 | ||||
|      */ | ||||
|   | ||||
| @@ -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); | ||||
| } | ||||
| @@ -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<Integer, INetworkNodeRegistry> networkNodeRegistryServer = new HashMap<>(); | ||||
|     private Map<Integer, INetworkNodeRegistry> 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<Integer, INetworkNodeRegistry> registry = FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? networkNodeRegistryClient : networkNodeRegistryServer; | ||||
|  | ||||
|         return registry.computeIfAbsent(dimension, r -> new NetworkNodeRegistry()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     @Nonnull | ||||
|     public ISoldererRegistry getSoldererRegistry() { | ||||
|   | ||||
| @@ -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()); | ||||
|                         } | ||||
|   | ||||
| @@ -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<BlockPos, INetworkNode> 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); | ||||
|     } | ||||
| } | ||||
| @@ -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; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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<ICraftingPattern> 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<ICraftingPattern> getPatterns() { | ||||
|         return actualPatterns; | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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]; | ||||
|   | ||||
| @@ -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() { | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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(); | ||||
|  | ||||
|   | ||||
| @@ -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<GridFilter> filteredItems = new ArrayList<>(); | ||||
|     private List<GridTab> 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; | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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<ISecurityCard> 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; | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
|   | ||||
| @@ -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(); | ||||
|  | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| package com.raoulvdberge.refinedstorage.inventory; | ||||
| 
 | ||||
| public interface IItemHandlerChangeListener { | ||||
| public interface IItemHandlerListener { | ||||
|     void onChanged(int slot); | ||||
| } | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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]; | ||||
|   | ||||
| @@ -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; | ||||
|     } | ||||
| 
 | ||||
| @@ -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; | ||||
|     } | ||||
| 
 | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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(); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -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)); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 raoulvdberge
					raoulvdberge