This commit is contained in:
raoulvdberge
2016-12-21 23:51:29 +01:00
parent 58695b1ab4
commit 2dc6a39da4
38 changed files with 218 additions and 130 deletions

View File

@@ -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.preview.ICraftingPreviewElementRegistry;
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry; import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; 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.IReaderWriterChannel;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry; import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry;
@@ -28,6 +29,12 @@ public interface IRSAPI {
@Nonnull @Nonnull
IComparer getComparer(); IComparer getComparer();
/**
* @param dimension the dimension
* @return the network node registry for the given dimension
*/
INetworkNodeRegistry getNetworkNodeRegistry(int dimension);
/** /**
* @return the solderer registry * @return the solderer registry
*/ */

View File

@@ -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);
}

View File

@@ -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.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy; 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.IReaderWriterChannel;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry; 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.craftingmonitor.CraftingMonitorElementRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementRegistry; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskRegistry; 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.ReaderWriterChannel;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.solderer.SoldererRegistry; 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.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.discovery.ASMDataTable; import net.minecraftforge.fml.common.discovery.ASMDataTable;
import net.minecraftforge.fml.relauncher.Side;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.BiPredicate; import java.util.function.BiPredicate;
@@ -43,6 +49,8 @@ public class API implements IRSAPI {
private static final IRSAPI INSTANCE = new API(); private static final IRSAPI INSTANCE = new API();
private IComparer comparer = new Comparer(); 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 ISoldererRegistry soldererRegistry = new SoldererRegistry();
private ICraftingTaskRegistry craftingTaskRegistry = new CraftingTaskRegistry(); private ICraftingTaskRegistry craftingTaskRegistry = new CraftingTaskRegistry();
private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry(); private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry();
@@ -79,6 +87,13 @@ public class API implements IRSAPI {
return comparer; 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 @Override
@Nonnull @Nonnull
public ISoldererRegistry getSoldererRegistry() { public ISoldererRegistry getSoldererRegistry() {

View File

@@ -161,7 +161,8 @@ public class NetworkNodeGraph implements INetworkNodeGraph {
} else { } else {
for (EnumFacing checkSide : EnumFacing.VALUES) { for (EnumFacing checkSide : EnumFacing.VALUES) {
if (checkSide != side) { // Avoid going backward 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) { if (nodeOnSide == node) {
operator.apply(world, pos.offset(checkSide), checkSide.getOpposite()); operator.apply(world, pos.offset(checkSide), checkSide.getOpposite());
} }

View File

@@ -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);
}
}

View File

@@ -11,6 +11,7 @@ import net.minecraft.block.state.IBlockState;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
@@ -27,6 +28,8 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
protected int ticks; protected int ticks;
protected INetworkNodeHolder holder; protected INetworkNodeHolder holder;
private boolean active;
public NetworkNode(INetworkNodeHolder holder) { public NetworkNode(INetworkNodeHolder holder) {
this.holder = holder; this.holder = holder;
} }
@@ -64,9 +67,6 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
} }
protected void onConnectedStateChange(INetworkMaster network, boolean state) { protected void onConnectedStateChange(INetworkMaster network, boolean state) {
if (hasConnectivityState()) {
RSUtils.updateBlock(holder.world(), holder.pos());
}
} }
@Override @Override
@@ -83,8 +83,14 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
public void update() { public void update() {
++ticks; ++ticks;
if (couldUpdate != canUpdate()) { boolean canUpdate = getNetwork() != null && canUpdate();
couldUpdate = canUpdate();
if (couldUpdate != canUpdate) {
couldUpdate = canUpdate;
if (hasConnectivityState()) {
RSUtils.updateBlock(holder.world(), holder.pos());
}
if (network != null) { if (network != null) {
onConnectedStateChange(network, couldUpdate); 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() { public IItemHandler getDrops() {
return null; return null;
} }
@@ -148,4 +158,26 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
public boolean hasConnectivityState() { public boolean hasConnectivityState() {
return false; 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;
}
} }

View File

@@ -6,8 +6,8 @@ import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.container.slot.SlotFilter; import com.raoulvdberge.refinedstorage.container.slot.SlotFilter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; 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 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 @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
super.onContentsChanged(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 compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
private int type = IType.ITEMS; private int type = IType.ITEMS;

View File

@@ -8,13 +8,12 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster; import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; 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.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.wrapper.CombinedInvWrapper; import net.minecraftforge.items.wrapper.CombinedInvWrapper;
@@ -25,7 +24,7 @@ import java.util.List;
public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer { public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer {
private static final String NBT_TRIGGERED_AUTOCRAFTING = "TriggeredAutocrafting"; 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. // 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 the world doesn't exist, this is probably called while reading and in that case it doesn't matter.
if (holder.world() != null) { if (holder.world() != null) {
@@ -50,7 +49,7 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
private List<ICraftingPattern> actualPatterns = new ArrayList<>(); 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; private boolean triggeredAutocrafting = false;
@@ -163,11 +162,6 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
return RSUtils.getItemHandler(getFacingTile(), holder.getDirection().getOpposite()); return RSUtils.getItemHandler(getFacingTile(), holder.getDirection().getOpposite());
} }
@Override
public TileEntity getFacingTile() {
return holder.world().getTileEntity(holder.pos().offset(holder.getDirection()));
}
@Override @Override
public List<ICraftingPattern> getPatterns() { public List<ICraftingPattern> getPatterns() {
return actualPatterns; return actualPatterns;

View File

@@ -49,11 +49,6 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting
return network != null ? network.getPosition() : null; return network != null ? network.getPosition() : null;
} }
@Override
public boolean isActive() {
return ((TileCraftingMonitor) holder.world().getTileEntity(holder.pos())).isActive();
}
public void onOpened(EntityPlayer player) { public void onOpened(EntityPlayer player) {
if (network != null) { if (network != null) {
network.sendCraftingMonitorUpdate((EntityPlayerMP) player); network.sendCraftingMonitorUpdate((EntityPlayerMP) player);

View File

@@ -4,8 +4,8 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; 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 static final int BASE_SPEED = 20;
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(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 compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
private int mode = IFilterable.WHITELIST; private int mode = IFilterable.WHITELIST;

View File

@@ -8,8 +8,8 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.tile.TileDetector; import com.raoulvdberge.refinedstorage.tile.TileDetector;
import com.raoulvdberge.refinedstorage.tile.config.IComparable; 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_AMOUNT = "Amount";
private static final String NBT_TYPE = "Type"; private static final String NBT_TYPE = "Type";
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(1, new ItemHandlerChangeListenerNode(this)); private ItemHandlerBasic itemFilters = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(1, new ItemHandlerChangeListenerNode(this)); private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(1, new ItemHandlerListenerNetworkNode(this));
private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
private int type = IType.ITEMS; private int type = IType.ITEMS;

View File

@@ -14,8 +14,8 @@ import com.raoulvdberge.refinedstorage.block.EnumFluidStorageType;
import com.raoulvdberge.refinedstorage.block.EnumItemStorageType; import com.raoulvdberge.refinedstorage.block.EnumItemStorageType;
import com.raoulvdberge.refinedstorage.inventory.IItemValidator; import com.raoulvdberge.refinedstorage.inventory.IItemValidator;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.tile.IStorageGui; import com.raoulvdberge.refinedstorage.tile.IStorageGui;
import com.raoulvdberge.refinedstorage.tile.TileDiskDrive; 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_TYPE = "Type";
private static final String NBT_VOID_EXCESS = "VoidExcess"; 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 @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
super.onContentsChanged(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 ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this));
private StorageItem itemStorages[] = new StorageItem[8]; private StorageItem itemStorages[] = new StorageItem[8];
private StorageFluid fluidStorages[] = new StorageFluid[8]; private StorageFluid fluidStorages[] = new StorageFluid[8];

View File

@@ -43,9 +43,9 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab
private StorageItem[] itemStorages = new StorageItem[6]; private StorageItem[] itemStorages = new StorageItem[6];
private StorageFluid[] fluidStorages = new StorageFluid[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 @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
super.onContentsChanged(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 @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
super.onContentsChanged(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 ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this));
@Override @Override
public int getEnergyUsage() { public int getEnergyUsage() {

View File

@@ -5,8 +5,8 @@ import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; 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_TYPE = "Type";
private static final String NBT_REGULATOR = "Regulator"; private static final String NBT_REGULATOR = "Regulator";
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(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 compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
private int type = IType.ITEMS; private int type = IType.ITEMS;

View File

@@ -4,8 +4,8 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; 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 ItemHandlerBasic in = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid out = new ItemHandlerFluid(1, new ItemHandlerChangeListenerNode(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) { public NetworkNodeFluidInterface(INetworkNodeHolder holder) {
super(holder); super(holder);

View File

@@ -11,8 +11,8 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageFluidNBT; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageFluidNBT;
import com.raoulvdberge.refinedstorage.block.BlockFluidStorage; import com.raoulvdberge.refinedstorage.block.BlockFluidStorage;
import com.raoulvdberge.refinedstorage.block.EnumFluidStorageType; import com.raoulvdberge.refinedstorage.block.EnumFluidStorageType;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.tile.IStorageGui; import com.raoulvdberge.refinedstorage.tile.IStorageGui;
import com.raoulvdberge.refinedstorage.tile.TileFluidStorage; 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_MODE = "Mode";
private static final String NBT_VOID_EXCESS = "VoidExcess"; 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(); private NBTTagCompound storageTag = StorageFluidNBT.createNBT();

View File

@@ -14,8 +14,8 @@ import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.gui.grid.GridFilter; import com.raoulvdberge.refinedstorage.gui.grid.GridFilter;
import com.raoulvdberge.refinedstorage.gui.grid.GridTab; import com.raoulvdberge.refinedstorage.gui.grid.GridTab;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerGridFilterInGrid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerGridFilterInGrid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic;
import com.raoulvdberge.refinedstorage.item.ItemPattern; import com.raoulvdberge.refinedstorage.item.ItemPattern;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; 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 InventoryCrafting matrix = new InventoryCrafting(craftingContainer, 3, 3);
private InventoryCraftResult result = new InventoryCraftResult(); 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<GridFilter> filteredItems = new ArrayList<>();
private List<GridTab> tabs = new ArrayList<>(); private List<GridTab> tabs = new ArrayList<>();
private ItemHandlerGridFilterInGrid filter = new ItemHandlerGridFilterInGrid(filteredItems, tabs); private ItemHandlerGridFilterInGrid filter = new ItemHandlerGridFilterInGrid(filteredItems, tabs);
@@ -438,11 +438,6 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
return TileGrid.REDSTONE_MODE; return TileGrid.REDSTONE_MODE;
} }
@Override
public boolean isActive() {
return ((TileGrid) holder.world().getTileEntity(holder.pos())).isActive();
}
@Override @Override
public boolean hasConnectivityState() { public boolean hasConnectivityState() {
return true; return true;

View File

@@ -4,8 +4,8 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; 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_MODE = "Mode";
private static final String NBT_TYPE = "Type"; private static final String NBT_TYPE = "Type";
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(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 compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
private int mode = IFilterable.WHITELIST; private int mode = IFilterable.WHITELIST;

View File

@@ -4,8 +4,8 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerInterface; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerInterface;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
@@ -18,14 +18,14 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper;
public class NetworkNodeInterface extends NetworkNode implements IComparable { public class NetworkNodeInterface extends NetworkNode implements IComparable {
private static final String NBT_COMPARE = "Compare"; 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 exportSpecimenItems = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerBasic exportItems = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); private ItemHandlerBasic exportItems = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerInterface items = new ItemHandlerInterface(importItems, exportItems); 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; private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;

View File

@@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; 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.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic;
import com.raoulvdberge.refinedstorage.item.ItemNetworkCard; import com.raoulvdberge.refinedstorage.item.ItemNetworkCard;
@@ -21,7 +21,7 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public class NetworkNodeNetworkTransmitter extends NetworkNode { 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 @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
super.onContentsChanged(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 @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
super.onContentsChanged(slot); super.onContentsChanged(slot);

View File

@@ -9,7 +9,7 @@ import com.raoulvdberge.refinedstorage.api.network.security.ISecurityCardContain
import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.network.security.SecurityCard; import com.raoulvdberge.refinedstorage.apiimpl.network.security.SecurityCard;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; 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.inventory.ItemValidatorBasic;
import com.raoulvdberge.refinedstorage.item.ItemSecurityCard; import com.raoulvdberge.refinedstorage.item.ItemSecurityCard;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
@@ -28,7 +28,7 @@ public class NetworkNodeSecurityManager extends NetworkNode implements ISecurity
private List<ISecurityCard> actualCards = new ArrayList<>(); 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 @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
super.onContentsChanged(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 @Nullable
private UUID owner; private UUID owner;

View File

@@ -6,7 +6,7 @@ import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRecipe; import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRecipe;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; 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.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; 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_WORKING = "Working";
private static final String NBT_PROGRESS = "Progress"; 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 @Override
@Nonnull @Nonnull
public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
@@ -34,14 +34,14 @@ public class NetworkNodeSolderer extends NetworkNode {
return stack; return stack;
} }
}; };
private ItemHandlerBasic result = new ItemHandlerBasic(1, new ItemHandlerChangeListenerNode(this)) { private ItemHandlerBasic result = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this)) {
@Override @Override
@Nonnull @Nonnull
public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
return stack; 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; private ISoldererRecipe recipe;

View File

@@ -12,7 +12,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageItemNBT;
import com.raoulvdberge.refinedstorage.block.BlockStorage; import com.raoulvdberge.refinedstorage.block.BlockStorage;
import com.raoulvdberge.refinedstorage.block.EnumItemStorageType; import com.raoulvdberge.refinedstorage.block.EnumItemStorageType;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; 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.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.tile.IStorageGui; import com.raoulvdberge.refinedstorage.tile.IStorageGui;
import com.raoulvdberge.refinedstorage.tile.TileStorage; 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_MODE = "Mode";
private static final String NBT_VOID_EXCESS = "VoidExcess"; 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(); private NBTTagCompound storageTag = StorageItemNBT.createNBT();

View File

@@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.IWirelessTransmitter; import com.raoulvdberge.refinedstorage.api.network.IWirelessTransmitter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; 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.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
@@ -16,7 +16,7 @@ import net.minecraftforge.items.IItemHandler;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWirelessTransmitter { 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) { public NetworkNodeWirelessTransmitter(INetworkNodeHolder holder) {
super(holder); super(holder);

View File

@@ -51,10 +51,9 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter {
redstoneStrength = strength; redstoneStrength = strength;
} }
// @todo
@Override @Override
public EnumFacing getDirection() { public EnumFacing getDirection() {
return null; return holder.getDirection();
} }
@Override @Override
@@ -110,15 +109,6 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter {
return tag; return tag;
} }
// @todo
/*
@Override
public void setDirection(EnumFacing direction) {
super.setDirection(direction);
world.notifyNeighborsOfStateChange(pos, RSBlocks.WRITER, true);
}*/
public void onOpened(EntityPlayer entity) { public void onOpened(EntityPlayer entity) {
if (network != null) { if (network != null) {
network.sendReaderWriterChannelUpdate((EntityPlayerMP) entity); network.sendReaderWriterChannelUpdate((EntityPlayerMP) entity);

View File

@@ -11,8 +11,8 @@ import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerChangeListenerNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder; import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.tile.IStorageGui; import com.raoulvdberge.refinedstorage.tile.IStorageGui;
import com.raoulvdberge.refinedstorage.tile.TileExternalStorage; 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_MODE = "Mode";
private static final String NBT_TYPE = "Type"; private static final String NBT_TYPE = "Type";
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerChangeListenerNode(this)); private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerChangeListenerNode(this)); private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, new ItemHandlerListenerNetworkNode(this));
private int priority = 0; private int priority = 0;
private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;

View File

@@ -19,11 +19,9 @@ public class StorageItemItemHandler extends StorageItemExternal {
this.externalStorage = externalStorage; this.externalStorage = externalStorage;
this.handler = handler; this.handler = handler;
// @todo
/*
if (externalStorage.getFacingTile().getBlockType().getUnlocalizedName().equals("tile.ExtraUtils2:TrashCan")) { if (externalStorage.getFacingTile().getBlockType().getUnlocalizedName().equals("tile.ExtraUtils2:TrashCan")) {
lockedAccessType = AccessType.INSERT; lockedAccessType = AccessType.INSERT;
}*/ }
} }
@Override @Override

View File

@@ -1,6 +1,7 @@
package com.raoulvdberge.refinedstorage.block; package com.raoulvdberge.refinedstorage.block;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.tile.TileNode;
import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.BlockStateContainer;
@@ -51,7 +52,7 @@ public abstract class BlockNode extends BlockBase {
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
if (hasConnectivityState()) { 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); return super.getActualState(state, world, pos);

View File

@@ -1,5 +1,5 @@
package com.raoulvdberge.refinedstorage.inventory; package com.raoulvdberge.refinedstorage.inventory;
public interface IItemHandlerChangeListener { public interface IItemHandlerListener {
void onChanged(int slot); void onChanged(int slot);
} }

View File

@@ -6,11 +6,11 @@ import net.minecraftforge.items.ItemStackHandler;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
public class ItemHandlerBasic extends ItemStackHandler { public class ItemHandlerBasic extends ItemStackHandler {
private IItemHandlerChangeListener listener; private IItemHandlerListener listener;
protected IItemValidator[] validators; protected IItemValidator[] validators;
public ItemHandlerBasic(int size, IItemHandlerChangeListener listener, IItemValidator... validators) { public ItemHandlerBasic(int size, IItemHandlerListener listener, IItemValidator... validators) {
super(size); super(size);
this.listener = listener; this.listener = listener;

View File

@@ -8,7 +8,7 @@ import net.minecraftforge.items.ItemHandlerHelper;
public class ItemHandlerFluid extends ItemHandlerBasic { public class ItemHandlerFluid extends ItemHandlerBasic {
private FluidStack[] fluids; 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); super(size, listener, s -> RSUtils.getFluidFromStack(ItemHandlerHelper.copyStackWithSize(s, 1), true).getValue() != null);
this.fluids = new FluidStack[size]; this.fluids = new FluidStack[size];

View File

@@ -2,10 +2,10 @@ package com.raoulvdberge.refinedstorage.inventory;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
public class ItemHandlerChangeListenerNode implements IItemHandlerChangeListener { public class ItemHandlerListenerNetworkNode implements IItemHandlerListener {
private INetworkNode node; private INetworkNode node;
public ItemHandlerChangeListenerNode(INetworkNode node) { public ItemHandlerListenerNetworkNode(INetworkNode node) {
this.node = node; this.node = node;
} }

View File

@@ -2,10 +2,10 @@ package com.raoulvdberge.refinedstorage.inventory;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
public class ItemHandlerChangeListenerTile implements IItemHandlerChangeListener { public class ItemHandlerListenerTile implements IItemHandlerListener {
private TileEntity tile; private TileEntity tile;
public ItemHandlerChangeListenerTile(TileEntity tile) { public ItemHandlerListenerTile(TileEntity tile) {
this.tile = tile; this.tile = tile;
} }

View File

@@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
public class ItemHandlerUpgrade extends ItemHandlerBasic { 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]); super(size, listener, new IItemValidator[supportedUpgrades.length]);
for (int i = 0; i < supportedUpgrades.length; ++i) { for (int i = 0; i < supportedUpgrades.length; ++i) {

View File

@@ -35,6 +35,8 @@ public abstract class TileBase extends TileEntity implements ITickable {
public void setDirection(EnumFacing direction) { public void setDirection(EnumFacing direction) {
this.direction = direction; this.direction = direction;
world.notifyNeighborsOfStateChange(pos, getWorld().getBlockState(pos).getBlock(), true);
markDirty(); markDirty();
} }

View File

@@ -346,7 +346,9 @@ public class TileController extends TileBase implements INetworkMaster, IRedston
public void invalidate() { public void invalidate() {
super.invalidate(); super.invalidate();
nodeGraph.disconnectAll(); if (getWorld() != null && !getWorld().isRemote) {
nodeGraph.disconnectAll();
}
} }
@Override @Override
@@ -928,7 +930,9 @@ public class TileController extends TileBase implements INetworkMaster, IRedston
@Override @Override
public ItemStack getItemStack() { public ItemStack getItemStack() {
IBlockState state = getWorld().getBlockState(pos); IBlockState state = getWorld().getBlockState(pos);
Item item = Item.getItemFromBlock(state.getBlock()); Item item = Item.getItemFromBlock(state.getBlock());
return new ItemStack(item, 1, state.getBlock().getMetaFromState(state)); return new ItemStack(item, 1, state.getBlock().getMetaFromState(state));
} }

View File

@@ -2,6 +2,8 @@ package com.raoulvdberge.refinedstorage.tile;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy; 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.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;
import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; 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.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import javax.annotation.Nullable; 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 static final String NBT_ACTIVE = "Active";
private boolean active;
public TileNode() { public TileNode() {
dataManager.addWatchedParameter(REDSTONE_MODE); dataManager.addWatchedParameter(REDSTONE_MODE);
} }
@@ -33,7 +31,24 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN
public void update() { public void update() {
super.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 @Override
@@ -75,17 +90,13 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN
public NBTTagCompound writeUpdate(NBTTagCompound tag) { public NBTTagCompound writeUpdate(NBTTagCompound tag) {
super.writeUpdate(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; return tag;
} }
public void readUpdate(NBTTagCompound tag) { public void readUpdate(NBTTagCompound tag) {
if (((NetworkNode) getNode()).hasConnectivityState()) { ((NetworkNode) getNode()).setActive(tag.getBoolean(NBT_ACTIVE));
active = tag.getBoolean(NBT_ACTIVE);
}
super.readUpdate(tag); super.readUpdate(tag);
} }
@@ -94,17 +105,17 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN
return ((NetworkNode) getNode()).getDrops(); return ((NetworkNode) getNode()).getDrops();
} }
// @TODO
private INetworkNode node;
@Override @Override
public INetworkNode getNode() { public INetworkNode getNode() {
return node == null ? (node = createNode()) : node; INetworkNodeRegistry registry = API.instance().getNetworkNodeRegistry(getWorld().provider.getDimension());
}
@SideOnly(Side.CLIENT) INetworkNode node = registry.getNode(pos);
public boolean isActive() {
return active; if (node == null) {
registry.setNode(pos, node = createNode());
}
return node;
} }
@Override @Override

View File

@@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.gui.GuiProcessingPatternEncoder; import com.raoulvdberge.refinedstorage.gui.GuiProcessingPatternEncoder;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; 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.inventory.ItemValidatorBasic;
import com.raoulvdberge.refinedstorage.item.ItemPattern; import com.raoulvdberge.refinedstorage.item.ItemPattern;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; 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 patterns = new ItemHandlerBasic(2, new ItemHandlerListenerTile(this), new ItemValidatorBasic(RSItems.PATTERN));
private ItemHandlerBasic configuration = new ItemHandlerBasic(9 * 2, new ItemHandlerChangeListenerTile(this)); private ItemHandlerBasic configuration = new ItemHandlerBasic(9 * 2, new ItemHandlerListenerTile(this));
private boolean oredictPattern; private boolean oredictPattern;