diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/IGuiReaderWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/IGuiReaderWriter.java index bd0d64cbd..c3ababe4c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/IGuiReaderWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/IGuiReaderWriter.java @@ -10,9 +10,9 @@ public interface IGuiReaderWriter { void setChannel(String channel); - TileDataParameter getChannelParameter(); + TileDataParameter getChannelParameter(); - TileDataParameter getRedstoneModeParameter(); + TileDataParameter getRedstoneModeParameter(); INetwork getNetwork(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/IGuiStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/IGuiStorage.java index d97011880..4618895ec 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/IGuiStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/IGuiStorage.java @@ -6,19 +6,19 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; public interface IGuiStorage { String getGuiTitle(); - TileDataParameter getTypeParameter(); + TileDataParameter getTypeParameter(); - TileDataParameter getRedstoneModeParameter(); + TileDataParameter getRedstoneModeParameter(); - TileDataParameter getCompareParameter(); + TileDataParameter getCompareParameter(); - TileDataParameter getFilterParameter(); + TileDataParameter getFilterParameter(); - TileDataParameter getPriorityParameter(); + TileDataParameter getPriorityParameter(); - TileDataParameter getAccessTypeParameter(); + TileDataParameter getAccessTypeParameter(); - TileDataParameter getVoidExcessParameter(); + TileDataParameter getVoidExcessParameter(); String getVoidExcessType(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java index 68a59d082..a313c23cf 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java @@ -70,7 +70,7 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting } @Override - public TileDataParameter getRedstoneModeParameter() { + public TileDataParameter getRedstoneModeParameter() { return TileCraftingMonitor.REDSTONE_MODE; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidStorage.java index b61584e8e..aa7747af0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeFluidStorage.java @@ -243,37 +243,37 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IGuiStorage, } @Override - public TileDataParameter getTypeParameter() { + public TileDataParameter getTypeParameter() { return null; } @Override - public TileDataParameter getRedstoneModeParameter() { + public TileDataParameter getRedstoneModeParameter() { return TileFluidStorage.REDSTONE_MODE; } @Override - public TileDataParameter getCompareParameter() { + public TileDataParameter getCompareParameter() { return TileFluidStorage.COMPARE; } @Override - public TileDataParameter getFilterParameter() { + public TileDataParameter getFilterParameter() { return TileFluidStorage.MODE; } @Override - public TileDataParameter getPriorityParameter() { + public TileDataParameter getPriorityParameter() { return TileFluidStorage.PRIORITY; } @Override - public TileDataParameter getVoidExcessParameter() { + public TileDataParameter getVoidExcessParameter() { return TileFluidStorage.VOID_EXCESS; } @Override - public TileDataParameter getAccessTypeParameter() { + public TileDataParameter getAccessTypeParameter() { return TileFluidStorage.ACCESS_TYPE; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java index b13cb701f..4e761c79a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java @@ -532,7 +532,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { } @Override - public TileDataParameter getRedstoneModeConfig() { + public TileDataParameter getRedstoneModeConfig() { return TileGrid.REDSTONE_MODE; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeReader.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeReader.java index 02affe9eb..8887c7913 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeReader.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeReader.java @@ -47,12 +47,12 @@ public class NetworkNodeReader extends NetworkNode implements IReader, IGuiReade } @Override - public TileDataParameter getChannelParameter() { + public TileDataParameter getChannelParameter() { return TileReader.CHANNEL; } @Override - public TileDataParameter getRedstoneModeParameter() { + public TileDataParameter getRedstoneModeParameter() { return TileReader.REDSTONE_MODE; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeStorage.java index 5462976f2..08eb6d087 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeStorage.java @@ -250,37 +250,37 @@ public class NetworkNodeStorage extends NetworkNode implements IGuiStorage, ISto } @Override - public TileDataParameter getTypeParameter() { + public TileDataParameter getTypeParameter() { return null; } @Override - public TileDataParameter getRedstoneModeParameter() { + public TileDataParameter getRedstoneModeParameter() { return TileStorage.REDSTONE_MODE; } @Override - public TileDataParameter getCompareParameter() { + public TileDataParameter getCompareParameter() { return TileStorage.COMPARE; } @Override - public TileDataParameter getFilterParameter() { + public TileDataParameter getFilterParameter() { return TileStorage.MODE; } @Override - public TileDataParameter getPriorityParameter() { + public TileDataParameter getPriorityParameter() { return TileStorage.PRIORITY; } @Override - public TileDataParameter getVoidExcessParameter() { + public TileDataParameter getVoidExcessParameter() { return TileStorage.VOID_EXCESS; } @Override - public TileDataParameter getAccessTypeParameter() { + public TileDataParameter getAccessTypeParameter() { return TileStorage.ACCESS_TYPE; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWriter.java index 4bde66408..708234756 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeWriter.java @@ -79,12 +79,12 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter, IGuiReade } @Override - public TileDataParameter getChannelParameter() { + public TileDataParameter getChannelParameter() { return TileWriter.CHANNEL; } @Override - public TileDataParameter getRedstoneModeParameter() { + public TileDataParameter getRedstoneModeParameter() { return TileWriter.REDSTONE_MODE; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/NetworkNodeDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/NetworkNodeDiskDrive.java index 9fce04876..2d5d12edb 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/NetworkNodeDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/diskdrive/NetworkNodeDiskDrive.java @@ -263,37 +263,37 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IGuiStorage, IS } @Override - public TileDataParameter getTypeParameter() { + public TileDataParameter getTypeParameter() { return TileDiskDrive.TYPE; } @Override - public TileDataParameter getRedstoneModeParameter() { + public TileDataParameter getRedstoneModeParameter() { return TileDiskDrive.REDSTONE_MODE; } @Override - public TileDataParameter getCompareParameter() { + public TileDataParameter getCompareParameter() { return TileDiskDrive.COMPARE; } @Override - public TileDataParameter getFilterParameter() { + public TileDataParameter getFilterParameter() { return TileDiskDrive.MODE; } @Override - public TileDataParameter getPriorityParameter() { + public TileDataParameter getPriorityParameter() { return TileDiskDrive.PRIORITY; } @Override - public TileDataParameter getVoidExcessParameter() { + public TileDataParameter getVoidExcessParameter() { return TileDiskDrive.VOID_EXCESS; } @Override - public TileDataParameter getAccessTypeParameter() { + public TileDataParameter getAccessTypeParameter() { return TileDiskDrive.ACCESS_TYPE; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java index f2d8d4d9f..b732e085b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/externalstorage/NetworkNodeExternalStorage.java @@ -239,32 +239,32 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP } @Override - public TileDataParameter getRedstoneModeParameter() { + public TileDataParameter getRedstoneModeParameter() { return TileExternalStorage.REDSTONE_MODE; } @Override - public TileDataParameter getCompareParameter() { + public TileDataParameter getCompareParameter() { return TileExternalStorage.COMPARE; } @Override - public TileDataParameter getFilterParameter() { + public TileDataParameter getFilterParameter() { return TileExternalStorage.MODE; } @Override - public TileDataParameter getPriorityParameter() { + public TileDataParameter getPriorityParameter() { return TileExternalStorage.PRIORITY; } @Override - public TileDataParameter getVoidExcessParameter() { + public TileDataParameter getVoidExcessParameter() { return null; } @Override - public TileDataParameter getAccessTypeParameter() { + public TileDataParameter getAccessTypeParameter() { return TileExternalStorage.ACCESS_TYPE; } @@ -301,7 +301,7 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP } @Override - public TileDataParameter getTypeParameter() { + public TileDataParameter getTypeParameter() { return TileExternalStorage.TYPE; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiPriority.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiPriority.java index d5b9d35e5..34ccabc5c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiPriority.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiPriority.java @@ -9,9 +9,9 @@ import net.minecraft.inventory.Container; import net.minecraft.util.Tuple; public class GuiPriority extends GuiCraftingStart { - private TileDataParameter priority; + private TileDataParameter priority; - public GuiPriority(GuiBase parent, TileDataParameter priority) { + public GuiPriority(GuiBase parent, TileDataParameter priority) { super(parent, null, new Container() { @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonAccessType.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonAccessType.java index ccb41faf9..272aeb92b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonAccessType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonAccessType.java @@ -8,9 +8,9 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.util.text.TextFormatting; public class SideButtonAccessType extends SideButton { - private TileDataParameter parameter; + private TileDataParameter parameter; - public SideButtonAccessType(GuiBase gui, TileDataParameter parameter) { + public SideButtonAccessType(GuiBase gui, TileDataParameter parameter) { super(gui); this.parameter = parameter; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonCompare.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonCompare.java index 9b7fa4b6a..6314479fb 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonCompare.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonCompare.java @@ -7,10 +7,10 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.util.text.TextFormatting; public class SideButtonCompare extends SideButton { - private TileDataParameter parameter; + private TileDataParameter parameter; private int mask; - public SideButtonCompare(GuiBase gui, TileDataParameter parameter, int mask) { + public SideButtonCompare(GuiBase gui, TileDataParameter parameter, int mask) { super(gui); this.parameter = parameter; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonMode.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonMode.java index 215079afe..80824536b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonMode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonMode.java @@ -7,9 +7,9 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.util.text.TextFormatting; public class SideButtonMode extends SideButton { - private TileDataParameter parameter; + private TileDataParameter parameter; - public SideButtonMode(GuiBase gui, TileDataParameter parameter) { + public SideButtonMode(GuiBase gui, TileDataParameter parameter) { super(gui); this.parameter = parameter; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java index 75be0eb3b..d648e10cc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java @@ -6,9 +6,9 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.util.text.TextFormatting; public class SideButtonRedstoneMode extends SideButton { - private TileDataParameter parameter; + private TileDataParameter parameter; - public SideButtonRedstoneMode(GuiBase gui, TileDataParameter parameter) { + public SideButtonRedstoneMode(GuiBase gui, TileDataParameter parameter) { super(gui); this.parameter = parameter; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonType.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonType.java index 290caa7f4..0758e885d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonType.java @@ -7,9 +7,9 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.util.text.TextFormatting; public class SideButtonType extends SideButton { - private TileDataParameter type; + private TileDataParameter type; - public SideButtonType(GuiBase gui, TileDataParameter type) { + public SideButtonType(GuiBase gui, TileDataParameter type) { super(gui); this.type = type; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonVoidExcess.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonVoidExcess.java index bf65b1280..a01ee55fd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonVoidExcess.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonVoidExcess.java @@ -6,10 +6,10 @@ import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.util.text.TextFormatting; public class SideButtonVoidExcess extends SideButton { - private TileDataParameter parameter; + private TileDataParameter parameter; private String type; - public SideButtonVoidExcess(GuiBase gui, TileDataParameter parameter, String type) { + public SideButtonVoidExcess(GuiBase gui, TileDataParameter parameter, String type) { super(gui); this.parameter = parameter; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java index af55c4ad8..5f4e2b224 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemPattern.java @@ -28,10 +28,6 @@ import javax.annotation.Nullable; import java.util.*; public class ItemPattern extends ItemBase implements ICraftingPatternProvider { - /** - * A cache that maps a stack to a crafting pattern. - * Only used client side for rendering and tooltips, to avoid crafting pattern allocations and crafting pattern output calculation (which is expensive). - */ private static Map PATTERN_CACHE = new HashMap<>(); private static final String NBT_SLOT = "Slot_%d"; @@ -82,6 +78,7 @@ public class ItemPattern extends ItemBase implements ICraftingPatternProvider { } else { tooltip.add(TextFormatting.RED + I18n.format("misc.refinedstorage:pattern.invalid") + TextFormatting.RESET); + // @todo: Removal in a future version // Display a helpful message stating the outputs if this is a legacy pattern if (stack.hasTagCompound() && stack.getTagCompound().hasKey("Inputs") && stack.getTagCompound().hasKey("Outputs")) { tooltip.add(TextFormatting.WHITE + "This pattern is a legacy pattern made before RS 1.0, please re-make!" + TextFormatting.RESET); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageTileDataParameter.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageTileDataParameter.java index 37a7ef40d..5f2298074 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageTileDataParameter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageTileDataParameter.java @@ -40,7 +40,7 @@ public class MessageTileDataParameter implements IMessage, IMessageHandler implements IMessage { private TileDataParameter parameter; private Object value; @@ -49,10 +50,10 @@ public class MessageTileDataParameterUpdate extends MessageHandlerPlayerToServer Container c = player.openContainer; if (c instanceof ContainerBase) { - ITileDataConsumer consumer = message.parameter.getValueConsumer(); + BiConsumer consumer = message.parameter.getValueConsumer(); if (consumer != null) { - consumer.setValue(((ContainerBase) c).getTile(), message.value); + consumer.accept(((ContainerBase) c).getTile(), message.value); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java index 2eda4a54a..7185b8dd2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java @@ -3,8 +3,6 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeConstructor; import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IType; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.math.BlockPos; @@ -13,19 +11,11 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileConstructor extends TileNode { - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter DROP = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileConstructor tile) { - return tile.getNode().isDrop(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileConstructor tile, Boolean value) { - tile.getNode().setDrop(value); - tile.getNode().markDirty(); - } + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter DROP = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isDrop(), (t, v) -> { + t.getNode().setDrop(v); + t.getNode().markDirty(); }); public TileConstructor() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 3a0f4eeb7..0059e710d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -41,7 +41,6 @@ import com.raoulvdberge.refinedstorage.integration.forgeenergy.EnergyForge; import com.raoulvdberge.refinedstorage.network.*; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.RSSerializers; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.tile.grid.IGrid; @@ -69,66 +68,6 @@ import java.util.*; import java.util.function.Predicate; public class TileController extends TileBase implements ITickable, INetwork, IRedstoneConfigurable, INetworkNode, INetworkNodeProxy { - public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); - - public static final TileDataParameter ENERGY_USAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileController tile) { - return tile.getEnergyUsage(); - } - }); - - public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileController tile) { - return tile.energy.getEnergyStored(); - } - }); - - public static final TileDataParameter ENERGY_CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileController tile) { - return tile.energy.getMaxEnergyStored(); - } - }); - - public static final TileDataParameter> NODES = new TileDataParameter<>(RSSerializers.CLIENT_NODE_SERIALIZER, new ArrayList<>(), new ITileDataProducer, TileController>() { - @Override - public List getValue(TileController tile) { - List nodes = new ArrayList<>(); - - for (INetworkNode node : tile.nodeGraph.all()) { - if (node.canUpdate()) { - ItemStack stack = node.getItemStack(); - - if (stack.isEmpty()) { - continue; - } - - ClientNode clientNode = new ClientNode(stack, 1, node.getEnergyUsage()); - - if (nodes.contains(clientNode)) { - ClientNode other = nodes.get(nodes.indexOf(clientNode)); - - other.setAmount(other.getAmount() + 1); - } else { - nodes.add(clientNode); - } - } - } - - nodes.sort(CLIENT_NODE_COMPARATOR); - - return nodes; - } - }); - - public static final String NBT_ENERGY = "Energy"; - public static final String NBT_ENERGY_CAPACITY = "EnergyCapacity"; - - private static final String NBT_READER_WRITER_CHANNELS = "ReaderWriterChannels"; - private static final String NBT_READER_WRITER_NAME = "Name"; - private static final Comparator CLIENT_NODE_COMPARATOR = (left, right) -> { if (left.getEnergyUsage() == right.getEnergyUsage()) { return 0; @@ -137,6 +76,44 @@ public class TileController extends TileBase implements ITickable, INetwork, IRe return (left.getEnergyUsage() > right.getEnergyUsage()) ? -1 : 1; }; + public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); + public static final TileDataParameter ENERGY_USAGE = new TileDataParameter<>(DataSerializers.VARINT, 0, TileController::getEnergyUsage); + public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getEnergy().getEnergyStored()); + public static final TileDataParameter ENERGY_CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getEnergy().getMaxEnergyStored()); + public static final TileDataParameter, TileController> NODES = new TileDataParameter<>(RSSerializers.CLIENT_NODE_SERIALIZER, new ArrayList<>(), t -> { + List nodes = new ArrayList<>(); + + for (INetworkNode node : t.nodeGraph.all()) { + if (node.canUpdate()) { + ItemStack stack = node.getItemStack(); + + if (stack.isEmpty()) { + continue; + } + + ClientNode clientNode = new ClientNode(stack, 1, node.getEnergyUsage()); + + if (nodes.contains(clientNode)) { + ClientNode other = nodes.get(nodes.indexOf(clientNode)); + + other.setAmount(other.getAmount() + 1); + } else { + nodes.add(clientNode); + } + } + } + + nodes.sort(CLIENT_NODE_COMPARATOR); + + return nodes; + }); + + public static final String NBT_ENERGY = "Energy"; + public static final String NBT_ENERGY_CAPACITY = "EnergyCapacity"; + + private static final String NBT_READER_WRITER_CHANNELS = "ReaderWriterChannels"; + private static final String NBT_READER_WRITER_NAME = "Name"; + private IItemGridHandler itemGridHandler = new ItemGridHandler(this); private IFluidGridHandler fluidGridHandler = new FluidGridHandler(this); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java index 9298e0721..aa36077a6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java @@ -4,8 +4,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeDestructo import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import com.raoulvdberge.refinedstorage.tile.config.IType; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.math.BlockPos; @@ -14,20 +12,12 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileDestructor extends TileNode { - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter PICKUP = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileDestructor tile) { - return tile.getNode().isPickupItem(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileDestructor tile, Boolean value) { - tile.getNode().setPickupItem(value); - tile.getNode().markDirty(); - } + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter MODE = IFilterable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter PICKUP = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isPickupItem(), (t, v) -> { + t.getNode().setPickupItem(v); + t.getNode().markDirty(); }); public TileDestructor() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java index f13f6820e..674d8d06e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java @@ -4,8 +4,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeDetector; import com.raoulvdberge.refinedstorage.gui.GuiDetector; import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IType; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; @@ -21,41 +19,23 @@ import javax.annotation.Nonnull; public class TileDetector extends TileNode { private static final String NBT_POWERED = "Powered"; - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); - - public static final TileDataParameter MODE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileDetector tile) { - return tile.getNode().getMode(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileDetector tile, Integer value) { - if (value == NetworkNodeDetector.MODE_UNDER || value == NetworkNodeDetector.MODE_EQUAL || value == NetworkNodeDetector.MODE_ABOVE || value == NetworkNodeDetector.MODE_AUTOCRAFTING) { - tile.getNode().setMode(value); - tile.getNode().markDirty(); - } + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter MODE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getMode(), (t, v) -> { + if (v == NetworkNodeDetector.MODE_UNDER || v == NetworkNodeDetector.MODE_EQUAL || v == NetworkNodeDetector.MODE_ABOVE || v == NetworkNodeDetector.MODE_AUTOCRAFTING) { + t.getNode().setMode(v); + t.getNode().markDirty(); } }); - - public static final TileDataParameter AMOUNT = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileDetector tile) { - return tile.getNode().getAmount(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileDetector tile, Integer value) { - tile.getNode().setAmount(value); - tile.getNode().markDirty(); - } - }, parameter -> { + public static final TileDataParameter AMOUNT = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getAmount(), (t, v) -> { + t.getNode().setAmount(v); + t.getNode().markDirty(); + }, p -> { if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) { GuiScreen gui = Minecraft.getMinecraft().currentScreen; if (gui instanceof GuiDetector) { - ((GuiDetector) gui).AMOUNT.setText(String.valueOf(parameter.getValue())); + GuiDetector.AMOUNT.setText(String.valueOf(p)); } } }); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java index 2bfbf9bb2..ea317ecb0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java @@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.api.storage.AccessType; import com.raoulvdberge.refinedstorage.api.storage.IStorageDisk; import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.NetworkNodeDiskDrive; import com.raoulvdberge.refinedstorage.tile.config.*; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.datasync.DataSerializers; @@ -18,59 +17,53 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileDiskDrive extends TileNode { - public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); - public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); - public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileDiskDrive tile) { - int stored = 0; + public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter MODE = IFilterable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); + public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> { + int stored = 0; - for (IStorageDisk storage : tile.getNode().getItemStorages()) { - if (storage != null) { - stored += storage.getStored(); - } + for (IStorageDisk storage : t.getNode().getItemStorages()) { + if (storage != null) { + stored += storage.getStored(); } - - for (IStorageDisk storage : tile.getNode().getFluidStorages()) { - if (storage != null) { - stored += storage.getStored(); - } - } - - return stored; } + + for (IStorageDisk storage : t.getNode().getFluidStorages()) { + if (storage != null) { + stored += storage.getStored(); + } + } + + return stored; }); - public static final TileDataParameter CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileDiskDrive tile) { - int capacity = 0; + public static final TileDataParameter CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> { + int capacity = 0; - for (IStorageDisk storage : tile.getNode().getItemStorages()) { - if (storage != null) { - if (storage.getCapacity() == -1) { - return -1; - } - - capacity += storage.getCapacity(); + for (IStorageDisk storage : t.getNode().getItemStorages()) { + if (storage != null) { + if (storage.getCapacity() == -1) { + return -1; } + + capacity += storage.getCapacity(); } - - for (IStorageDisk storage : tile.getNode().getFluidStorages()) { - if (storage != null) { - if (storage.getCapacity() == -1) { - return -1; - } - - capacity += storage.getCapacity(); - } - } - - return capacity; } + + for (IStorageDisk storage : t.getNode().getFluidStorages()) { + if (storage != null) { + if (storage.getCapacity() == -1) { + return -1; + } + + capacity += storage.getCapacity(); + } + } + + return capacity; }); private static final String NBT_DISK_STATE = "DiskState_%d"; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java index 5671b3b4d..108818183 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java @@ -4,8 +4,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskmanipulator.Netw import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IFilterable; import com.raoulvdberge.refinedstorage.tile.config.IType; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.datasync.DataSerializers; @@ -19,21 +17,12 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileDiskManipulator extends TileNode { - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); - - public static final TileDataParameter IO_MODE = new TileDataParameter<>(DataSerializers.VARINT, NetworkNodeDiskManipulator.IO_MODE_INSERT, new ITileDataProducer() { - @Override - public Integer getValue(TileDiskManipulator tile) { - return tile.getNode().getIoMode(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileDiskManipulator tile, Integer value) { - tile.getNode().setIoMode(value); - tile.getNode().markDirty(); - } + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter MODE = IFilterable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter IO_MODE = new TileDataParameter<>(DataSerializers.VARINT, NetworkNodeDiskManipulator.IO_MODE_INSERT, t -> t.getNode().getIoMode(), (t, v) -> { + t.getNode().setIoMode(v); + t.getNode().markDirty(); }); private Integer[] diskState = new Integer[6]; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java index 0010ff7a7..f08c5b65f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java @@ -5,9 +5,6 @@ import com.raoulvdberge.refinedstorage.container.ContainerExporter; import com.raoulvdberge.refinedstorage.gui.GuiExporter; import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IType; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataListener; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -18,57 +15,37 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileExporter extends TileNode { - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter REGULATOR = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileExporter tile) { - return tile.getNode().isRegulator(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileExporter tile, Boolean value) { - NetworkNodeExporter exporter = tile.getNode(); + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter REGULATOR = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isRegulator(), (t, v) -> { + NetworkNodeExporter exporter = t.getNode(); - for (int i = 0; i < exporter.getItemFilters().getSlots() + exporter.getFluidFilters().getSlots(); ++i) { - ItemStack slot = i >= exporter.getItemFilters().getSlots() ? exporter.getFluidFilters().getStackInSlot(i - exporter.getItemFilters().getSlots()) : exporter.getItemFilters().getStackInSlot(i); + for (int i = 0; i < exporter.getItemFilters().getSlots() + exporter.getFluidFilters().getSlots(); ++i) { + ItemStack slot = i >= exporter.getItemFilters().getSlots() ? exporter.getFluidFilters().getStackInSlot(i - exporter.getItemFilters().getSlots()) : exporter.getItemFilters().getStackInSlot(i); - if (!slot.isEmpty()) { - slot.setCount(1); - } + if (!slot.isEmpty()) { + slot.setCount(1); } - - exporter.setRegulator(value); - exporter.markDirty(); - - tile.world.getMinecraftServer().getPlayerList().getPlayers().stream() - .filter(player -> player.openContainer instanceof ContainerExporter && ((ContainerExporter) player.openContainer).getTile().getPos().equals(tile.getPos())) - .forEach(player -> { - ((ContainerExporter) player.openContainer).initSlots(); - - player.openContainer.detectAndSendChanges(); - }); } - }, new ITileDataListener() { - @Override - public void onChanged(TileDataParameter parameter) { - if (Minecraft.getMinecraft().currentScreen instanceof GuiExporter) { - ((ContainerExporter) ((GuiExporter) Minecraft.getMinecraft().currentScreen).inventorySlots).initSlots(); - } + + exporter.setRegulator(v); + exporter.markDirty(); + + t.world.getMinecraftServer().getPlayerList().getPlayers().stream() + .filter(player -> player.openContainer instanceof ContainerExporter && ((ContainerExporter) player.openContainer).getTile().getPos().equals(t.getPos())) + .forEach(player -> { + ((ContainerExporter) player.openContainer).initSlots(); + + player.openContainer.detectAndSendChanges(); + }); + }, p -> { + if (Minecraft.getMinecraft().currentScreen instanceof GuiExporter) { + ((ContainerExporter) ((GuiExporter) Minecraft.getMinecraft().currentScreen).inventorySlots).initSlots(); } }); - - public static final TileDataParameter CRAFT_ONLY = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileExporter tile) { - return tile.getNode().isCraftOnly(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileExporter tile, Boolean value) { - tile.getNode().setCraftOnly(value); - tile.getNode().markDirty(); - } + public static final TileDataParameter CRAFT_ONLY = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isCraftOnly(), (t, v) -> { + t.getNode().setCraftOnly(v); + t.getNode().markDirty(); }); public TileExporter() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExternalStorage.java index f41e92027..a83f2a219 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExternalStorage.java @@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.network.node.externalstorage.Netw import com.raoulvdberge.refinedstorage.apiimpl.network.node.externalstorage.StorageFluidExternal; import com.raoulvdberge.refinedstorage.apiimpl.network.node.externalstorage.StorageItemExternal; import com.raoulvdberge.refinedstorage.tile.config.*; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.math.BlockPos; @@ -14,44 +13,36 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileExternalStorage extends TileNode { - public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); - public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter MODE = IFilterable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> { + int stored = 0; - public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileExternalStorage tile) { - int stored = 0; - - for (StorageItemExternal storage : tile.getNode().getItemStorages()) { - stored += storage.getStored(); - } - - for (StorageFluidExternal storage : tile.getNode().getFluidStorages()) { - stored += storage.getStored(); - } - - return stored; + for (StorageItemExternal storage : t.getNode().getItemStorages()) { + stored += storage.getStored(); } + + for (StorageFluidExternal storage : t.getNode().getFluidStorages()) { + stored += storage.getStored(); + } + + return stored; }); + public static final TileDataParameter CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> { + int capacity = 0; - public static final TileDataParameter CAPACITY = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileExternalStorage tile) { - int capacity = 0; - - for (StorageItemExternal storage : tile.getNode().getItemStorages()) { - capacity += storage.getCapacity(); - } - - for (StorageFluidExternal storage : tile.getNode().getFluidStorages()) { - capacity += storage.getCapacity(); - } - - return capacity; + for (StorageItemExternal storage : t.getNode().getItemStorages()) { + capacity += storage.getCapacity(); } + + for (StorageFluidExternal storage : t.getNode().getFluidStorages()) { + capacity += storage.getCapacity(); + } + + return capacity; }); public TileExternalStorage() { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java index 6759ad873..ce8a1b631 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java @@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeFluidInterface; import com.raoulvdberge.refinedstorage.tile.config.IComparable; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.RSSerializers; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.util.EnumFacing; @@ -16,21 +15,9 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileFluidInterface extends TileNode { - public static final TileDataParameter COMPARE = IComparable.createParameter(); - - public static final TileDataParameter TANK_IN = new TileDataParameter<>(RSSerializers.FLUID_STACK_SERIALIZER, null, new ITileDataProducer() { - @Override - public FluidStack getValue(TileFluidInterface tile) { - return tile.getNode().getTankIn().getFluid(); - } - }); - - public static final TileDataParameter TANK_OUT = new TileDataParameter<>(RSSerializers.FLUID_STACK_SERIALIZER, null, new ITileDataProducer() { - @Override - public FluidStack getValue(TileFluidInterface tile) { - return tile.getNode().getTankOut().getFluid(); - } - }); + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter TANK_IN = new TileDataParameter<>(RSSerializers.FLUID_STACK_SERIALIZER, null, t -> t.getNode().getTankIn().getFluid()); + public static final TileDataParameter TANK_OUT = new TileDataParameter<>(RSSerializers.FLUID_STACK_SERIALIZER, null, t -> t.getNode().getTankOut().getFluid()); public TileFluidInterface() { dataManager.addWatchedParameter(COMPARE); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java index 8fb217d50..9c9265665 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java @@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.api.storage.AccessType; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeFluidStorage; import com.raoulvdberge.refinedstorage.tile.config.*; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.math.BlockPos; @@ -12,17 +11,12 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileFluidStorage extends TileNode { - public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); - public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); - public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileFluidStorage tile) { - return tile.getNode().getStorage().getStored(); - } - }); + public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); + public static final TileDataParameter MODE = IFilterable.createParameter(); + public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getStorage().getStored()); public TileFluidStorage() { dataManager.addWatchedParameter(PRIORITY); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java index 25048ed17..13f0f124f 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java @@ -11,9 +11,9 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileImporter extends TileNode { - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter MODE = IFilterable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); public TileImporter() { dataManager.addWatchedParameter(COMPARE); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java index 934fa2c79..522499a22 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java @@ -13,7 +13,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileInterface extends TileNode { - public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter COMPARE = IComparable.createParameter(); public TileInterface() { dataManager.addWatchedParameter(COMPARE); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNetworkTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNetworkTransmitter.java index f3b97320e..7f33022e9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNetworkTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNetworkTransmitter.java @@ -1,7 +1,6 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeNetworkTransmitter; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.EnumFacing; @@ -14,28 +13,13 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileNetworkTransmitter extends TileNode { - public static final TileDataParameter DISTANCE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileNetworkTransmitter tile) { - NetworkNodeNetworkTransmitter transmitter = tile.getNode(); + public static final TileDataParameter DISTANCE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> { + NetworkNodeNetworkTransmitter transmitter = t.getNode(); - return (transmitter.getReceiver() != null && transmitter.isSameDimension()) ? transmitter.getDistance() : -1; - } - }); - - public static final TileDataParameter RECEIVER_DIMENSION = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileNetworkTransmitter tile) { - return tile.getNode().getReceiverDimension(); - } - }); - - public static final TileDataParameter RECEIVER_DIMENSION_SUPPORTED = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileNetworkTransmitter tile) { - return tile.getNode().isDimensionSupported(); - } + return (transmitter.getReceiver() != null && transmitter.isSameDimension()) ? transmitter.getDistance() : -1; }); + public static final TileDataParameter RECEIVER_DIMENSION = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getReceiverDimension()); + public static final TileDataParameter RECEIVER_DIMENSION_SUPPORTED = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isDimensionSupported()); public TileNetworkTransmitter() { dataManager.addWatchedParameter(DISTANCE); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java index f790ab145..fa18ef027 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileNode.java @@ -20,14 +20,15 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public abstract class TileNode extends TileBase implements INetworkNodeProxy, IRedstoneConfigurable, IWrenchable { - public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); + public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); + protected static final String NBT_ACTIVE = "Active"; + + // @todo: Remove in a later version private NBTTagCompound legacyTag; private N clientNode; - protected static final String NBT_ACTIVE = "Active"; - public TileNode() { dataManager.addWatchedParameter(REDSTONE_MODE); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java index 28d41d1cb..157b2a19e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileReader.java @@ -8,8 +8,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeReader; import com.raoulvdberge.refinedstorage.gui.GuiReaderWriter; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.client.Minecraft; import net.minecraft.network.datasync.DataSerializers; @@ -24,27 +22,19 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileReader extends TileNode { - static TileDataParameter createChannelParameter() { - return new TileDataParameter<>(DataSerializers.STRING, "", new ITileDataProducer() { - @Override - public String getValue(T tile) { - return ((IGuiReaderWriter) tile.getNode()).getChannel(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(T tile, String value) { - ((IGuiReaderWriter) tile.getNode()).setChannel(value); + static TileDataParameter createChannelParameter() { + return new TileDataParameter<>(DataSerializers.STRING, "", t -> ((IGuiReaderWriter) t.getNode()).getChannel(), (t, v) -> { + ((IGuiReaderWriter) t.getNode()).setChannel(v); - tile.getNode().markDirty(); - } - }, parameter -> { + t.getNode().markDirty(); + }, p -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiReaderWriter) { - ((GuiReaderWriter) Minecraft.getMinecraft().currentScreen).updateSelection(parameter.getValue()); + ((GuiReaderWriter) Minecraft.getMinecraft().currentScreen).updateSelection(p); } }); } - public static final TileDataParameter CHANNEL = createChannelParameter(); + public static final TileDataParameter CHANNEL = createChannelParameter(); public TileReader() { dataManager.addWatchedParameter(CHANNEL); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSolderer.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSolderer.java index be317b4cb..76f99667a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSolderer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileSolderer.java @@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRecipe; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeSolderer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.datasync.DataSerializers; @@ -16,28 +15,13 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileSolderer extends TileNode { - public static final TileDataParameter DURATION = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileSolderer tile) { - ISoldererRecipe recipe = tile.getNode().getRecipe(); + public static final TileDataParameter DURATION = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> { + ISoldererRecipe recipe = t.getNode().getRecipe(); - return recipe == null ? 0 : recipe.getDuration(); - } - }); - - public static final TileDataParameter PROGRESS = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileSolderer tile) { - return tile.getNode().getProgress(); - } - }); - - public static final TileDataParameter WORKING = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileSolderer tile) { - return tile.getNode().isWorking(); - } + return recipe == null ? 0 : recipe.getDuration(); }); + public static final TileDataParameter PROGRESS = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getProgress()); + public static final TileDataParameter WORKING = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isWorking()); private boolean working; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java index 36161d46e..5a9bd42ea 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java @@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.api.storage.AccessType; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeStorage; import com.raoulvdberge.refinedstorage.tile.config.*; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.math.BlockPos; @@ -12,17 +11,12 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileStorage extends TileNode { - public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter MODE = IFilterable.createParameter(); - public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); - public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileStorage tile) { - return tile.getNode().getStorage().getStored(); - } - }); - public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); + public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter MODE = IFilterable.createParameter(); + public static final TileDataParameter ACCESS_TYPE = IAccessType.createParameter(); + public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getStorage().getStored()); + public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); public TileStorage() { dataManager.addWatchedParameter(PRIORITY); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorageMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorageMonitor.java index aa0dbb26c..74ddfb1bc 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorageMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorageMonitor.java @@ -13,13 +13,13 @@ import net.minecraft.world.World; import javax.annotation.Nullable; public class TileStorageMonitor extends TileNode { + public static final TileDataParameter COMPARE = IComparable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); + private static final String NBT_TYPE = "Type"; private static final String NBT_STACK = "Stack"; private static final String NBT_AMOUNT = "Amount"; - public static final TileDataParameter COMPARE = IComparable.createParameter(); - public static final TileDataParameter TYPE = IType.createParameter(); - private int type; private int amount; @Nullable diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWirelessTransmitter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWirelessTransmitter.java index 76b006830..963f425d4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWirelessTransmitter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWirelessTransmitter.java @@ -1,7 +1,6 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeWirelessTransmitter; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.math.BlockPos; @@ -10,12 +9,7 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileWirelessTransmitter extends TileNode { - public static final TileDataParameter RANGE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileWirelessTransmitter tile) { - return tile.getNode().getRange(); - } - }); + public static final TileDataParameter RANGE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getRange()); public TileWirelessTransmitter() { dataManager.addWatchedParameter(RANGE); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java index 6fa6044f2..56e7e31ee 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileWriter.java @@ -18,7 +18,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileWriter extends TileNode { - public static final TileDataParameter CHANNEL = TileReader.createChannelParameter(); + public static final TileDataParameter CHANNEL = TileReader.createChannelParameter(); public TileWriter() { dataManager.addWatchedParameter(CHANNEL); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IAccessType.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IAccessType.java index 127f13e98..a127575fd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IAccessType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IAccessType.java @@ -2,25 +2,13 @@ package com.raoulvdberge.refinedstorage.tile.config; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.api.storage.AccessType; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.RSSerializers; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.tileentity.TileEntity; public interface IAccessType { - static TileDataParameter createParameter() { - return new TileDataParameter<>(RSSerializers.ACCESS_TYPE_SERIALIZER, AccessType.INSERT_EXTRACT, new ITileDataProducer() { - @Override - public AccessType getValue(T tile) { - return ((IAccessType) tile.getNode()).getAccessType(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(T tile, AccessType value) { - ((IAccessType) tile.getNode()).setAccessType(value); - } - }); + static TileDataParameter createParameter() { + return new TileDataParameter<>(RSSerializers.ACCESS_TYPE_SERIALIZER, AccessType.INSERT_EXTRACT, t -> ((IAccessType) t.getNode()).getAccessType(), (t, v) -> ((IAccessType) t.getNode()).setAccessType(v)); } AccessType getAccessType(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IComparable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IComparable.java index 32637031f..a0558d3ca 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IComparable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IComparable.java @@ -1,25 +1,13 @@ package com.raoulvdberge.refinedstorage.tile.config; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.tileentity.TileEntity; public interface IComparable { - static TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(T tile) { - return ((IComparable) tile.getNode()).getCompare(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(T tile, Integer value) { - ((IComparable) tile.getNode()).setCompare(value); - } - }); + static TileDataParameter createParameter() { + return new TileDataParameter<>(DataSerializers.VARINT, 0, t -> ((IComparable) t.getNode()).getCompare(), (t, v) -> ((IComparable) t.getNode()).setCompare(v)); } int getCompare(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IExcessVoidable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IExcessVoidable.java index 0486caf65..fcaa07bd0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IExcessVoidable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IExcessVoidable.java @@ -1,25 +1,13 @@ package com.raoulvdberge.refinedstorage.tile.config; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.tileentity.TileEntity; public interface IExcessVoidable { - static TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(T tile) { - return ((IExcessVoidable) tile.getNode()).getVoidExcess(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(T tile, Boolean value) { - ((IExcessVoidable) tile.getNode()).setVoidExcess(value); - } - }); + static TileDataParameter createParameter() { + return new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> ((IExcessVoidable) t.getNode()).getVoidExcess(), (t, v) -> ((IExcessVoidable) t.getNode()).setVoidExcess(v)); } boolean getVoidExcess(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java index 70349b8aa..af28f6aa4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java @@ -5,8 +5,6 @@ import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.item.ItemStack; import net.minecraft.network.datasync.DataSerializers; @@ -18,18 +16,10 @@ public interface IFilterable { int WHITELIST = 0; int BLACKLIST = 1; - static TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(T tile) { - return ((IFilterable) tile.getNode()).getMode(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(T tile, Integer value) { - if (value == WHITELIST || value == BLACKLIST) { - ((IFilterable) tile.getNode()).setMode(value); - } + static TileDataParameter createParameter() { + return new TileDataParameter<>(DataSerializers.VARINT, 0, t -> ((IFilterable) t.getNode()).getMode(), (t, v) -> { + if (v == WHITELIST || v == BLACKLIST) { + ((IFilterable) t.getNode()).setMode(v); } }); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IPrioritizable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IPrioritizable.java index 58767ea4a..1f588fff6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IPrioritizable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IPrioritizable.java @@ -1,25 +1,13 @@ package com.raoulvdberge.refinedstorage.tile.config; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.tileentity.TileEntity; public interface IPrioritizable { - static TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(T tile) { - return ((IPrioritizable) tile.getNode()).getPriority(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(T tile, Integer value) { - ((IPrioritizable) tile.getNode()).setPriority(value); - } - }); + static TileDataParameter createParameter() { + return new TileDataParameter<>(DataSerializers.VARINT, 0, t -> ((IPrioritizable) t.getNode()).getPriority(), (t, v) -> ((IPrioritizable) t.getNode()).setPriority(v)); } int getPriority(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IType.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IType.java index c1a5d993c..edae1b7b9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IType.java @@ -2,8 +2,6 @@ package com.raoulvdberge.refinedstorage.tile.config; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.container.ContainerBase; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.tileentity.TileEntity; @@ -13,22 +11,14 @@ public interface IType { int ITEMS = 0; int FLUIDS = 1; - static TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.VARINT, ITEMS, new ITileDataProducer() { - @Override - public Integer getValue(T tile) { - return ((IType) tile.getNode()).getType(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(T tile, Integer value) { - if (value == 0 || value == 1) { - ((IType) tile.getNode()).setType(value); + static TileDataParameter createParameter() { + return new TileDataParameter<>(DataSerializers.VARINT, ITEMS, t -> ((IType) t.getNode()).getType(), (t, v) -> { + if (v == 0 || v == 1) { + ((IType) t.getNode()).setType(v); - tile.getWorld().playerEntities.stream() - .filter(p -> p.openContainer instanceof ContainerBase && ((ContainerBase) p.openContainer).getTile().getPos().equals(tile.getPos())) - .forEach(p -> p.openContainer.detectAndSendChanges()); - } + t.getWorld().playerEntities.stream() + .filter(p -> p.openContainer instanceof ContainerBase && ((ContainerBase) p.openContainer).getTile().getPos().equals(t.getPos())) + .forEach(p -> p.openContainer.detectAndSendChanges()); } }); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/RedstoneMode.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/RedstoneMode.java index 223ef3d74..df75d22c0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/RedstoneMode.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/RedstoneMode.java @@ -1,7 +1,5 @@ package com.raoulvdberge.refinedstorage.tile.config; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.datasync.DataSerializers; @@ -43,17 +41,7 @@ public enum RedstoneMode { return id < 0 || id >= values().length ? IGNORE : values()[id]; } - public static TileDataParameter createParameter() { - return new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(T tile) { - return ((IRedstoneConfigurable) tile).getRedstoneMode().ordinal(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(T tile, Integer value) { - ((IRedstoneConfigurable) tile).setRedstoneMode(RedstoneMode.getById(value)); - } - }); + public static TileDataParameter createParameter() { + return new TileDataParameter<>(DataSerializers.VARINT, IGNORE.ordinal(), t -> t.getRedstoneMode().ordinal(), (t, v) -> t.setRedstoneMode(RedstoneMode.getById(v))); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java index e4ea2d53b..f3e9f25e6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java @@ -15,7 +15,7 @@ public interface ICraftingMonitor { void onCancelled(EntityPlayerMP player, int id); - TileDataParameter getRedstoneModeParameter(); + TileDataParameter getRedstoneModeParameter(); @Nullable BlockPos getNetworkPosition(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java index f6c973dbe..ccff786b2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java @@ -3,8 +3,6 @@ package com.raoulvdberge.refinedstorage.tile.craftingmonitor; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.TileNode; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.util.math.BlockPos; @@ -13,22 +11,14 @@ import net.minecraft.world.World; import javax.annotation.Nonnull; public class TileCraftingMonitor extends TileNode { - public static final TileDataParameter VIEW_AUTOMATED = new TileDataParameter<>(DataSerializers.BOOLEAN, true, new ITileDataProducer() { - @Override - public Boolean getValue(TileCraftingMonitor tile) { - return tile.getNode().canViewAutomated(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileCraftingMonitor tile, Boolean value) { - tile.getNode().setViewAutomated(value); - tile.getNode().markDirty(); + public static final TileDataParameter VIEW_AUTOMATED = new TileDataParameter<>(DataSerializers.BOOLEAN, true, t -> t.getNode().canViewAutomated(), (t, v) -> { + t.getNode().setViewAutomated(v); + t.getNode().markDirty(); - INetwork network = tile.getNode().getNetwork(); + INetwork network = t.getNode().getNetwork(); - if (network != null) { - network.sendCraftingMonitorUpdate(); - } + if (network != null) { + network.sendCraftingMonitorUpdate(); } }); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java index d9686c55a..a0c304bde 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java @@ -74,7 +74,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { } @Override - public TileDataParameter getRedstoneModeParameter() { + public TileDataParameter getRedstoneModeParameter() { return null; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataConsumer.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataConsumer.java deleted file mode 100755 index 1c792cdad..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataConsumer.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.raoulvdberge.refinedstorage.tile.data; - -import net.minecraft.tileentity.TileEntity; - -public interface ITileDataConsumer { - void setValue(E tile, T value); -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataListener.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataListener.java deleted file mode 100755 index 2406be162..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.raoulvdberge.refinedstorage.tile.data; - -public interface ITileDataListener { - void onChanged(TileDataParameter parameter); -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataProducer.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataProducer.java deleted file mode 100755 index 326ccf798..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/ITileDataProducer.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.raoulvdberge.refinedstorage.tile.data; - -import net.minecraft.tileentity.TileEntity; - -public interface ITileDataProducer { - T getValue(E tile); -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/TileDataManager.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/data/TileDataManager.java index ec22e8952..c89222d8e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/TileDataManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/data/TileDataManager.java @@ -17,26 +17,11 @@ public class TileDataManager { private static Map REGISTRY = new HashMap<>(); private List parameters = new ArrayList<>(); - private List watchedParameters = new ArrayList<>(); private List watchedParametersCache = new ArrayList<>(); private List watchers = new ArrayList<>(); - public static void registerParameter(TileDataParameter parameter) { - parameter.setId(LAST_ID); - - REGISTRY.put(LAST_ID++, parameter); - } - - public static TileDataParameter getParameter(int id) { - return REGISTRY.get(id); - } - - public static void setParameter(TileDataParameter parameter, T value) { - RS.INSTANCE.network.sendToServer(new MessageTileDataParameterUpdate(parameter, value)); - } - private TileEntity tile; public TileDataManager(TileEntity tile) { @@ -47,7 +32,7 @@ public class TileDataManager { return watchers; } - public void addParameter(TileDataParameter parameter) { + public void addParameter(TileDataParameter parameter) { parameters.add(parameter); } @@ -55,7 +40,7 @@ public class TileDataManager { return parameters; } - public void addWatchedParameter(TileDataParameter parameter) { + public void addWatchedParameter(TileDataParameter parameter) { addParameter(parameter); watchedParameters.add(parameter); @@ -66,7 +51,7 @@ public class TileDataManager { for (int i = 0; i < watchedParameters.size(); ++i) { TileDataParameter parameter = watchedParameters.get(i); - Object real = parameter.getValueProducer().getValue(tile); + Object real = parameter.getValueProducer().apply(tile); Object cached = watchedParametersCache.get(i); if (!real.equals(cached)) { @@ -81,11 +66,25 @@ public class TileDataManager { parameters.forEach(p -> sendParameter(player, p)); } - public void sendParameterToWatchers(TileDataParameter parameter) { + public void sendParameterToWatchers(TileDataParameter parameter) { watchers.forEach(p -> sendParameter((EntityPlayerMP) p, parameter)); } - public void sendParameter(EntityPlayerMP player, TileDataParameter parameter) { + public void sendParameter(EntityPlayerMP player, TileDataParameter parameter) { RS.INSTANCE.network.sendTo(new MessageTileDataParameter(tile, parameter), player); } + + public static void registerParameter(TileDataParameter parameter) { + parameter.setId(LAST_ID); + + REGISTRY.put(LAST_ID++, parameter); + } + + public static TileDataParameter getParameter(int id) { + return REGISTRY.get(id); + } + + public static void setParameter(TileDataParameter parameter, Object value) { + RS.INSTANCE.network.sendToServer(new MessageTileDataParameterUpdate(parameter, value)); + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/TileDataParameter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/data/TileDataParameter.java index e5da28408..3b492e035 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/data/TileDataParameter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/data/TileDataParameter.java @@ -3,23 +3,30 @@ package com.raoulvdberge.refinedstorage.tile.data; import net.minecraft.network.datasync.DataSerializer; import net.minecraft.tileentity.TileEntity; -public class TileDataParameter { +import javax.annotation.Nullable; +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.function.Function; + +public class TileDataParameter { private int id; private DataSerializer serializer; - private ITileDataProducer valueProducer; - private ITileDataConsumer valueConsumer; - private ITileDataListener listener; + private Function valueProducer; + @Nullable + private BiConsumer valueConsumer; + @Nullable + private Consumer listener; private T value; - public TileDataParameter(DataSerializer serializer, T defaultValue, ITileDataProducer producer) { + public TileDataParameter(DataSerializer serializer, T defaultValue, Function producer) { this(serializer, defaultValue, producer, null); } - public TileDataParameter(DataSerializer serializer, T defaultValue, ITileDataProducer producer, ITileDataConsumer consumer) { + public TileDataParameter(DataSerializer serializer, T defaultValue, Function producer, @Nullable BiConsumer consumer) { this(serializer, defaultValue, producer, consumer, null); } - public TileDataParameter(DataSerializer serializer, T defaultValue, ITileDataProducer producer, ITileDataConsumer consumer, ITileDataListener listener) { + public TileDataParameter(DataSerializer serializer, T defaultValue, Function producer, @Nullable BiConsumer consumer, @Nullable Consumer listener) { this.value = defaultValue; this.serializer = serializer; this.valueProducer = producer; @@ -39,11 +46,12 @@ public class TileDataParameter { return serializer; } - public ITileDataProducer getValueProducer() { + public Function getValueProducer() { return valueProducer; } - public ITileDataConsumer getValueConsumer() { + @Nullable + public BiConsumer getValueConsumer() { return valueConsumer; } @@ -51,7 +59,7 @@ public class TileDataParameter { this.value = value; if (listener != null) { - listener.onChanged(this); + listener.accept(value); } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/IGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/IGrid.java index 5321d54ed..80559a282 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/IGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/IGrid.java @@ -64,7 +64,7 @@ public interface IGrid { ItemHandlerBase getFilter(); - TileDataParameter getRedstoneModeConfig(); + TileDataParameter getRedstoneModeConfig(); InventoryCrafting getCraftingMatrix(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java index 96917043c..d81f385b4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java @@ -5,8 +5,6 @@ import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.tile.TileNode; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.client.Minecraft; import net.minecraft.network.datasync.DataSerializers; @@ -20,163 +18,83 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; public class TileGrid extends TileNode { - public static final TileDataParameter VIEW_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileGrid tile) { - return tile.getNode().getViewType(); + public static final TileDataParameter VIEW_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getViewType(), (t, v) -> { + if (NetworkNodeGrid.isValidViewType(v)) { + t.getNode().setViewType(v); + t.getNode().markDirty(); } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Integer value) { - if (NetworkNodeGrid.isValidViewType(value)) { - tile.getNode().setViewType(value); - tile.getNode().markDirty(); - } + }, p -> GuiGrid.markForSorting()); + public static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getSortingDirection(), (t, v) -> { + if (NetworkNodeGrid.isValidSortingDirection(v)) { + t.getNode().setSortingDirection(v); + t.getNode().markDirty(); } - }, parameter -> GuiGrid.markForSorting()); - - public static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileGrid tile) { - return tile.getNode().getSortingDirection(); + }, p -> GuiGrid.markForSorting()); + public static final TileDataParameter SORTING_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getSortingType(), (t, v) -> { + if (NetworkNodeGrid.isValidSortingType(v)) { + t.getNode().setSortingType(v); + t.getNode().markDirty(); } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Integer value) { - if (NetworkNodeGrid.isValidSortingDirection(value)) { - tile.getNode().setSortingDirection(value); - tile.getNode().markDirty(); - } + }, p -> GuiGrid.markForSorting()); + public static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getSearchBoxMode(), (t, v) -> { + if (NetworkNodeGrid.isValidSearchBoxMode(v)) { + t.getNode().setSearchBoxMode(v); + t.getNode().markDirty(); } - }, parameter -> GuiGrid.markForSorting()); - - public static final TileDataParameter SORTING_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileGrid tile) { - return tile.getNode().getSortingType(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Integer value) { - if (NetworkNodeGrid.isValidSortingType(value)) { - tile.getNode().setSortingType(value); - tile.getNode().markDirty(); - } - } - }, parameter -> GuiGrid.markForSorting()); - - public static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileGrid tile) { - return tile.getNode().getSearchBoxMode(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Integer value) { - if (NetworkNodeGrid.isValidSearchBoxMode(value)) { - tile.getNode().setSearchBoxMode(value); - tile.getNode().markDirty(); - } - } - }, parameter -> { + }, p -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiGrid) { - ((GuiGrid) Minecraft.getMinecraft().currentScreen).updateSearchFieldFocus(parameter.getValue()); + ((GuiGrid) Minecraft.getMinecraft().currentScreen).updateSearchFieldFocus(p); } }); - - public static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileGrid tile) { - return tile.getNode().getSize(); + public static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getSize(), (t, v) -> { + if (NetworkNodeGrid.isValidSize(v)) { + t.getNode().setSize(v); + t.getNode().markDirty(); } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Integer value) { - if (NetworkNodeGrid.isValidSize(value)) { - tile.getNode().setSize(value); - tile.getNode().markDirty(); - } - } - }, parameter -> { + }, p -> { if (Minecraft.getMinecraft().currentScreen != null) { Minecraft.getMinecraft().currentScreen.initGui(); } }); - - public static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TileGrid tile) { - return tile.getNode().getTabSelected(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Integer value) { - tile.getNode().setTabSelected(value == tile.getNode().getTabSelected() ? -1 : value); - tile.getNode().markDirty(); - } - }, parameter -> { + public static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getNode().getTabSelected(), (t, v) -> { + t.getNode().setTabSelected(v == t.getNode().getTabSelected() ? -1 : v); + t.getNode().markDirty(); + }, p -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiGrid) { ((GuiGrid) Minecraft.getMinecraft().currentScreen).markForSorting(); } }); - - public static final TileDataParameter OREDICT_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileGrid tile) { - return tile.getNode().isOredictPattern(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Boolean value) { - tile.getNode().setOredictPattern(value); - tile.getNode().markDirty(); - } - }, parameter -> { + public static final TileDataParameter OREDICT_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isOredictPattern(), (t, v) -> { + t.getNode().setOredictPattern(v); + t.getNode().markDirty(); + }, p -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiGrid) { - ((GuiGrid) Minecraft.getMinecraft().currentScreen).updateOredictPattern(parameter.getValue()); + ((GuiGrid) Minecraft.getMinecraft().currentScreen).updateOredictPattern(p); } }); + public static final TileDataParameter PROCESSING_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isProcessingPattern(), (t, v) -> { + t.getNode().setProcessingPattern(v); + t.getNode().markDirty(); - public static final TileDataParameter PROCESSING_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileGrid tile) { - return tile.getNode().isProcessingPattern(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Boolean value) { - tile.getNode().setProcessingPattern(value); - tile.getNode().markDirty(); + t.getNode().onPatternMatrixClear(); - tile.getNode().onPatternMatrixClear(); - - tile.world.getMinecraftServer().getPlayerList().getPlayers().stream() - .filter(player -> player.openContainer instanceof ContainerGrid && ((ContainerGrid) player.openContainer).getTile() != null && ((ContainerGrid) player.openContainer).getTile().getPos().equals(tile.getPos())) - .forEach(player -> { - ((ContainerGrid) player.openContainer).initSlots(); - ((ContainerGrid) player.openContainer).sendAllSlots(); - }); - } - }, parameter -> { + t.world.getMinecraftServer().getPlayerList().getPlayers().stream() + .filter(player -> player.openContainer instanceof ContainerGrid && ((ContainerGrid) player.openContainer).getTile() != null && ((ContainerGrid) player.openContainer).getTile().getPos().equals(t.getPos())) + .forEach(player -> { + ((ContainerGrid) player.openContainer).initSlots(); + ((ContainerGrid) player.openContainer).sendAllSlots(); + }); + }, p -> { if (Minecraft.getMinecraft().currentScreen != null) { Minecraft.getMinecraft().currentScreen.initGui(); } }); - - public static final TileDataParameter BLOCKING_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { - @Override - public Boolean getValue(TileGrid tile) { - return tile.getNode().isBlockingPattern(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TileGrid tile, Boolean value) { - tile.getNode().setBlockingPattern(value); - tile.getNode().markDirty(); - } - }, parameter -> { + public static final TileDataParameter BLOCKING_PATTERN = new TileDataParameter<>(DataSerializers.BOOLEAN, false, t -> t.getNode().isBlockingPattern(), (t, v) -> { + t.getNode().setBlockingPattern(v); + t.getNode().markDirty(); + }, p -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiGrid) { - ((GuiGrid) Minecraft.getMinecraft().currentScreen).updateBlockingPattern(parameter.getValue()); + ((GuiGrid) Minecraft.getMinecraft().currentScreen).updateBlockingPattern(p); } }); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java index 4571ec992..130628138 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java @@ -169,7 +169,7 @@ public class WirelessFluidGrid implements IGrid { } @Override - public TileDataParameter getRedstoneModeConfig() { + public TileDataParameter getRedstoneModeConfig() { return null; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java index 85e2f867e..7f57a865c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java @@ -203,7 +203,7 @@ public class WirelessGrid implements IGrid { } @Override - public TileDataParameter getRedstoneModeConfig() { + public TileDataParameter getRedstoneModeConfig() { return null; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java index 0c0310379..a10c9e050 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java @@ -305,7 +305,7 @@ public class PortableGrid implements IGrid, IPortableGrid { } @Override - public TileDataParameter getRedstoneModeConfig() { + public TileDataParameter getRedstoneModeConfig() { return null; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java index 40edab7e0..90440e3c4 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java @@ -29,8 +29,6 @@ import com.raoulvdberge.refinedstorage.item.filter.FilterTab; import com.raoulvdberge.refinedstorage.tile.TileBase; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; -import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.tile.grid.IGrid; @@ -54,100 +52,49 @@ import java.util.ArrayList; import java.util.List; public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, IRedstoneConfigurable { - public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TilePortableGrid tile) { - return tile.energyStorage.getEnergyStored(); + public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); + public static final TileDataParameter ENERGY_STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.energyStorage.getEnergyStored()); + public static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getSortingDirection(), (t, v) -> { + if (NetworkNodeGrid.isValidSortingDirection(v)) { + t.setSortingDirection(v); + t.markDirty(); } - }); - - public static final TileDataParameter SORTING_DIRECTION = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TilePortableGrid tile) { - return tile.getSortingDirection(); + }, p -> GuiGrid.markForSorting()); + public static final TileDataParameter SORTING_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getSortingType(), (t, v) -> { + if (NetworkNodeGrid.isValidSortingType(v)) { + t.setSortingType(v); + t.markDirty(); } - }, new ITileDataConsumer() { - @Override - public void setValue(TilePortableGrid tile, Integer value) { - if (NetworkNodeGrid.isValidSortingDirection(value)) { - tile.setSortingDirection(value); - tile.markDirty(); - } + }, p -> GuiGrid.markForSorting()); + public static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getSearchBoxMode(), (t, v) -> { + if (NetworkNodeGrid.isValidSearchBoxMode(v)) { + t.setSearchBoxMode(v); + t.markDirty(); } - }, parameter -> GuiGrid.markForSorting()); - - public static final TileDataParameter SORTING_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TilePortableGrid tile) { - return tile.getSortingType(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TilePortableGrid tile, Integer value) { - if (NetworkNodeGrid.isValidSortingType(value)) { - tile.setSortingType(value); - tile.markDirty(); - } - } - }, parameter -> GuiGrid.markForSorting()); - - public static final TileDataParameter SEARCH_BOX_MODE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TilePortableGrid tile) { - return tile.getSearchBoxMode(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TilePortableGrid tile, Integer value) { - if (NetworkNodeGrid.isValidSearchBoxMode(value)) { - tile.setSearchBoxMode(value); - tile.markDirty(); - } - } - }, parameter -> { + }, p -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiGrid) { - ((GuiGrid) Minecraft.getMinecraft().currentScreen).updateSearchFieldFocus(parameter.getValue()); + ((GuiGrid) Minecraft.getMinecraft().currentScreen).updateSearchFieldFocus(p); } }); - - public static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TilePortableGrid tile) { - return tile.getSize(); + public static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getSize(), (t, v) -> { + if (NetworkNodeGrid.isValidSize(v)) { + t.setSize(v); + t.markDirty(); } - }, new ITileDataConsumer() { - @Override - public void setValue(TilePortableGrid tile, Integer value) { - if (NetworkNodeGrid.isValidSize(value)) { - tile.setSize(value); - tile.markDirty(); - } - } - }, parameter -> { + }, p -> { if (Minecraft.getMinecraft().currentScreen != null) { Minecraft.getMinecraft().currentScreen.initGui(); } }); - - public static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { - @Override - public Integer getValue(TilePortableGrid tile) { - return tile.getTabSelected(); - } - }, new ITileDataConsumer() { - @Override - public void setValue(TilePortableGrid tile, Integer value) { - tile.setTabSelected(value == tile.getTabSelected() ? -1 : value); - tile.markDirty(); - } - }, parameter -> { + public static final TileDataParameter TAB_SELECTED = new TileDataParameter<>(DataSerializers.VARINT, 0, t -> t.getTabSelected(), (t, v) -> { + t.setTabSelected(v == t.getTabSelected() ? -1 : v); + t.markDirty(); + }, p -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiGrid) { ((GuiGrid) Minecraft.getMinecraft().currentScreen).markForSorting(); } }); - public static final TileDataParameter REDSTONE_MODE = RedstoneMode.createParameter(); - private static final String NBT_ENERGY = "Energy"; private static final String NBT_DISK_STATE = "DiskState"; private static final String NBT_CONNECTED = "Connected"; @@ -225,13 +172,13 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, private boolean connected; public TilePortableGrid() { + dataManager.addWatchedParameter(REDSTONE_MODE); dataManager.addWatchedParameter(ENERGY_STORED); dataManager.addWatchedParameter(SORTING_DIRECTION); dataManager.addWatchedParameter(SORTING_TYPE); dataManager.addWatchedParameter(SEARCH_BOX_MODE); dataManager.addWatchedParameter(SIZE); dataManager.addWatchedParameter(TAB_SELECTED); - dataManager.addWatchedParameter(REDSTONE_MODE); } public PortableGridDiskState getDiskState() { @@ -420,7 +367,7 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, } @Override - public TileDataParameter getRedstoneModeConfig() { + public TileDataParameter getRedstoneModeConfig() { return REDSTONE_MODE; }