From fb778ad3ae698a5b8cc3875f473767be59b606e5 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Tue, 1 Nov 2016 14:34:47 +0100 Subject: [PATCH] Implement wrench and configuration writing and reading --- .../raoulvdberge/refinedstorage/RSItems.java | 1 + .../refinedstorage/item/ItemWirelessGrid.java | 2 +- .../refinedstorage/item/ItemWrench.java | 82 +++++++++++++++++++ .../refinedstorage/proxy/ProxyCommon.java | 11 +++ .../refinedstorage/tile/IWrenchable.java | 9 ++ .../refinedstorage/tile/TileConstructor.java | 48 +++++++---- .../refinedstorage/tile/TileCrafter.java | 22 +++-- .../refinedstorage/tile/TileDestructor.java | 50 +++++++---- .../refinedstorage/tile/TileDetector.java | 44 ++++++---- .../refinedstorage/tile/TileDiskDrive.java | 74 ++++++++++------- .../tile/TileDiskManipulator.java | 60 ++++++++------ .../refinedstorage/tile/TileExporter.java | 46 +++++++---- .../tile/TileFluidInterface.java | 22 ++++- .../refinedstorage/tile/TileFluidStorage.java | 66 +++++++++------ .../refinedstorage/tile/TileImporter.java | 49 +++++++---- .../refinedstorage/tile/TileInterface.java | 26 ++++-- .../refinedstorage/tile/TileStorage.java | 66 +++++++++------ .../externalstorage/TileExternalStorage.java | 49 +++++++---- .../refinedstorage/tile/grid/TileGrid.java | 51 +++++++----- .../assets/refinedstorage/lang/en_US.lang | 6 +- 20 files changed, 539 insertions(+), 245 deletions(-) create mode 100755 src/main/java/com/raoulvdberge/refinedstorage/item/ItemWrench.java create mode 100755 src/main/java/com/raoulvdberge/refinedstorage/tile/IWrenchable.java diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java b/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java index 97d016d68..3f10bfea5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java @@ -17,4 +17,5 @@ public final class RSItems { public static final ItemNetworkCard NETWORK_CARD = new ItemNetworkCard(); public static final ItemFluidStorageDisk FLUID_STORAGE_DISK = new ItemFluidStorageDisk(); public static final ItemFluidStoragePart FLUID_STORAGE_PART = new ItemFluidStoragePart(); + public static final ItemWrench WRENCH = new ItemWrench(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessGrid.java index 03439a04c..49614d89b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessGrid.java @@ -158,7 +158,7 @@ public class ItemWirelessGrid extends ItemEnergyContainer implements ISpecialEle } } - return new ActionResult<>(EnumActionResult.PASS, stack); + return super.onItemRightClick(stack, world, player, hand); } public static int getDimensionId(ItemStack stack) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWrench.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWrench.java new file mode 100755 index 000000000..2bd85cd00 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWrench.java @@ -0,0 +1,82 @@ +package com.raoulvdberge.refinedstorage.item; + +import com.raoulvdberge.refinedstorage.tile.IWrenchable; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.TextComponentTranslation; +import net.minecraft.world.World; + +public class ItemWrench extends ItemBase { + private static final String NBT_WRENCHED_TILE = "WrenchedTile"; + + public ItemWrench() { + super("wrench"); + + setMaxStackSize(1); + setMaxDamage(64); + } + + @Override + public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + if (world.isRemote) { + return EnumActionResult.PASS; + } + + TileEntity tile = world.getTileEntity(pos); + + if (tile instanceof IWrenchable) { + IWrenchable wrenchable = (IWrenchable) tile; + + boolean canWrite = false; + + if (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_WRENCHED_TILE)) { + String wrenchedTile = stack.getTagCompound().getString(NBT_WRENCHED_TILE); + + if (wrenchable.getClass().getName().equals(wrenchedTile)) { + wrenchable.readConfiguration(stack.getTagCompound()); + tile.markDirty(); + + player.addChatComponentMessage(new TextComponentTranslation("item.refinedstorage:wrench.read")); + } else { + canWrite = true; + } + } else { + canWrite = true; + } + + if (canWrite) { + NBTTagCompound tag = new NBTTagCompound(); + + tag.setString(NBT_WRENCHED_TILE, wrenchable.getClass().getName()); + + stack.setTagCompound(wrenchable.writeConfiguration(tag)); + + player.addChatComponentMessage(new TextComponentTranslation("item.refinedstorage:wrench.saved")); + } + + stack.damageItem(1, player); + + return EnumActionResult.SUCCESS; + } + + return EnumActionResult.PASS; + } + + @Override + public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { + if (!world.isRemote && !player.isSneaking()) { + stack.setTagCompound(new NBTTagCompound()); + + player.addChatComponentMessage(new TextComponentTranslation("item.refinedstorage:wrench.cleared")); + } + + return super.onItemRightClick(stack, world, player, hand); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java index 12276f5d7..438f32923 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java @@ -99,6 +99,7 @@ public class ProxyCommon { NetworkRegistry.INSTANCE.registerGuiHandler(RS.INSTANCE, new GuiHandler()); MinecraftForge.EVENT_BUS.register(new ContainerListener()); + MinecraftForge.EVENT_BUS.register(RSItems.WRENCH); registerTile(TileController.class, "controller"); registerTile(TileGrid.class, "grid"); @@ -163,6 +164,7 @@ public class ProxyCommon { registerItem(RSItems.UPGRADE); registerItem(RSItems.GRID_FILTER); registerItem(RSItems.NETWORK_CARD); + registerItem(RSItems.WRENCH); OreDictionary.registerOre("itemSilicon", RSItems.SILICON); @@ -665,6 +667,15 @@ public class ProxyCommon { 'M', new ItemStack(RSBlocks.MACHINE_CASING), 'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION) ); + + // Wrench + GameRegistry.addShapedRecipe(new ItemStack(RSItems.WRENCH), + "E E", + " P ", + " E ", + 'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON), + 'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC) + ); } public void init(FMLInitializationEvent e) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/IWrenchable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/IWrenchable.java new file mode 100755 index 000000000..f0e235809 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/IWrenchable.java @@ -0,0 +1,9 @@ +package com.raoulvdberge.refinedstorage.tile; + +import net.minecraft.nbt.NBTTagCompound; + +public interface IWrenchable { + NBTTagCompound writeConfiguration(NBTTagCompound tag); + + void readConfiguration(NBTTagCompound tag); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java index bd61b04f8..c97cd4ffd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileConstructor.java @@ -37,7 +37,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; -public class TileConstructor extends TileMultipartNode implements IComparable, IType { +public class TileConstructor extends TileMultipartNode implements IComparable, IType, IWrenchable { 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() { @@ -214,6 +214,36 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I public void read(NBTTagCompound tag) { super.read(tag); + readConfiguration(tag); + + RSUtils.readItems(upgrades, 1, tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + writeConfiguration(tag); + + RSUtils.writeItems(upgrades, 1, tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_TYPE, type); + tag.setBoolean(NBT_DROP, drop); + + RSUtils.writeItems(itemFilters, 0, tag); + RSUtils.writeItems(fluidFilters, 2, tag); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } @@ -227,25 +257,9 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I } RSUtils.readItems(itemFilters, 0, tag); - RSUtils.readItems(upgrades, 1, tag); RSUtils.readItems(fluidFilters, 2, tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_TYPE, type); - tag.setBoolean(NBT_DROP, drop); - - RSUtils.writeItems(itemFilters, 0, tag); - RSUtils.writeItems(upgrades, 1, tag); - RSUtils.writeItems(fluidFilters, 2, tag); - - return tag; - } - public IItemHandler getUpgrades() { return upgrades; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCrafter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCrafter.java index f696324c3..7b946e5dc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCrafter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCrafter.java @@ -25,7 +25,7 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper; import java.util.ArrayList; import java.util.List; -public class TileCrafter extends TileNode implements ICraftingPatternContainer { +public class TileCrafter extends TileNode implements ICraftingPatternContainer, IWrenchable { public static final TileDataParameter TRIGGERED_AUTOCRAFTING = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer() { @Override public Boolean getValue(TileCrafter tile) { @@ -131,9 +131,7 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { public void read(NBTTagCompound tag) { super.read(tag); - if (tag.hasKey(NBT_TRIGGERED_AUTOCRAFTING)) { - triggeredAutocrafting = tag.getBoolean(NBT_TRIGGERED_AUTOCRAFTING); - } + readConfiguration(tag); RSUtils.readItems(patterns, 0, tag); RSUtils.readItems(upgrades, 1, tag); @@ -143,7 +141,7 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { public NBTTagCompound write(NBTTagCompound tag) { super.write(tag); - tag.setBoolean(NBT_TRIGGERED_AUTOCRAFTING, triggeredAutocrafting); + writeConfiguration(tag); RSUtils.writeItems(patterns, 0, tag); RSUtils.writeItems(upgrades, 1, tag); @@ -151,6 +149,20 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { return tag; } + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + tag.setBoolean(NBT_TRIGGERED_AUTOCRAFTING, triggeredAutocrafting); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { + if (tag.hasKey(NBT_TRIGGERED_AUTOCRAFTING)) { + triggeredAutocrafting = tag.getBoolean(NBT_TRIGGERED_AUTOCRAFTING); + } + } + @Override public int getSpeedUpdateCount() { return upgrades.getUpgradeCount(ItemUpgrade.TYPE_SPEED); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java index 4e86bae5d..6142a3fec 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDestructor.java @@ -41,7 +41,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class TileDestructor extends TileMultipartNode implements IComparable, IFilterable, IType { +public class TileDestructor extends TileMultipartNode implements IComparable, IFilterable, IType, IWrenchable { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); @@ -206,6 +206,37 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF public void read(NBTTagCompound tag) { super.read(tag); + readConfiguration(tag); + + RSUtils.readItems(upgrades, 1, tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + writeConfiguration(tag); + + RSUtils.writeItems(upgrades, 1, tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_MODE, mode); + tag.setInteger(NBT_TYPE, type); + tag.setBoolean(NBT_PICKUP, pickupItem); + + RSUtils.writeItems(itemFilters, 0, tag); + RSUtils.writeItems(fluidFilters, 2, tag); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } @@ -223,26 +254,9 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF } RSUtils.readItems(itemFilters, 0, tag); - RSUtils.readItems(upgrades, 1, tag); RSUtils.readItems(fluidFilters, 2, tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_MODE, mode); - tag.setInteger(NBT_TYPE, type); - tag.setBoolean(NBT_PICKUP, pickupItem); - - RSUtils.writeItems(itemFilters, 0, tag); - RSUtils.writeItems(upgrades, 1, tag); - RSUtils.writeItems(fluidFilters, 2, tag); - - return tag; - } - public IItemHandler getUpgrades() { return upgrades; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java index a48ec9b48..50f8a3b61 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDetector.java @@ -26,7 +26,7 @@ import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.items.IItemHandler; -public class TileDetector extends TileNode implements IComparable, IType { +public class TileDetector extends TileNode implements IComparable, IType, IWrenchable { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); @@ -216,6 +216,33 @@ public class TileDetector extends TileNode implements IComparable, IType { public void read(NBTTagCompound tag) { super.read(tag); + readConfiguration(tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + writeConfiguration(tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_MODE, mode); + tag.setInteger(NBT_AMOUNT, amount); + tag.setInteger(NBT_TYPE, type); + + RSUtils.writeItems(itemFilters, 0, tag); + RSUtils.writeItems(fluidFilters, 1, tag); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } @@ -236,21 +263,6 @@ public class TileDetector extends TileNode implements IComparable, IType { RSUtils.readItems(fluidFilters, 1, tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_MODE, mode); - tag.setInteger(NBT_AMOUNT, amount); - tag.setInteger(NBT_TYPE, type); - - RSUtils.writeItems(itemFilters, 0, tag); - RSUtils.writeItems(fluidFilters, 1, tag); - - return tag; - } - @Override public void readUpdate(NBTTagCompound tag) { powered = tag.getBoolean(NBT_POWERED); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java index aa2042f6a..fdcd379a7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskDrive.java @@ -32,7 +32,7 @@ import net.minecraftforge.items.ItemHandlerHelper; import java.util.List; -public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IExcessVoidable, IAccessType { +public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IExcessVoidable, IAccessType, IWrenchable { public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); @@ -269,6 +269,49 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl super.read(tag); RSUtils.readItems(disks, 0, tag); + + readConfiguration(tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + for (int i = 0; i < disks.getSlots(); ++i) { + if (itemStorages[i] != null) { + itemStorages[i].writeToNBT(); + } + + if (fluidStorages[i] != null) { + fluidStorages[i].writeToNBT(); + } + } + + RSUtils.writeItems(disks, 0, tag); + + writeConfiguration(tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + RSUtils.writeItems(itemFilters, 1, tag); + RSUtils.writeItems(fluidFilters, 2, tag); + + tag.setInteger(NBT_PRIORITY, priority); + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_MODE, mode); + tag.setInteger(NBT_TYPE, type); + tag.setBoolean(NBT_VOID_EXCESS, voidExcess); + + RSUtils.writeAccessType(tag, accessType); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { RSUtils.readItems(itemFilters, 1, tag); RSUtils.readItems(fluidFilters, 2, tag); @@ -295,35 +338,6 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl accessType = RSUtils.readAccessType(tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - for (int i = 0; i < disks.getSlots(); ++i) { - if (itemStorages[i] != null) { - itemStorages[i].writeToNBT(); - } - - if (fluidStorages[i] != null) { - fluidStorages[i].writeToNBT(); - } - } - - RSUtils.writeItems(disks, 0, tag); - RSUtils.writeItems(itemFilters, 1, tag); - RSUtils.writeItems(fluidFilters, 2, tag); - - tag.setInteger(NBT_PRIORITY, priority); - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_MODE, mode); - tag.setInteger(NBT_TYPE, type); - tag.setBoolean(NBT_VOID_EXCESS, voidExcess); - - RSUtils.writeAccessType(tag, accessType); - - return tag; - } - @Override public NBTTagCompound writeUpdate(NBTTagCompound tag) { super.writeUpdate(tag); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java index 8ec536eb5..492cd4ea3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileDiskManipulator.java @@ -33,7 +33,7 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper; import java.util.ArrayList; -public class TileDiskManipulator extends TileNode implements IComparable, IFilterable, IType { +public class TileDiskManipulator extends TileNode implements IComparable, IFilterable, IType, IWrenchable { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); @@ -500,12 +500,46 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte public void read(NBTTagCompound tag) { super.read(tag); - RSUtils.readItems(itemFilters, 1, tag); - RSUtils.readItems(fluidFilters, 2, tag); RSUtils.readItems(upgrades, 3, tag); RSUtils.readItems(inputDisks, 4, tag); RSUtils.readItems(outputDisks, 5, tag); + readConfiguration(tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + onBreak(); + + RSUtils.writeItems(upgrades, 3, tag); + RSUtils.writeItems(inputDisks, 4, tag); + RSUtils.writeItems(outputDisks, 5, tag); + + writeConfiguration(tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + RSUtils.writeItems(itemFilters, 1, tag); + RSUtils.writeItems(fluidFilters, 2, tag); + + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_MODE, mode); + tag.setInteger(NBT_TYPE, type); + tag.setInteger(NBT_IO_MODE, ioMode); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { + RSUtils.readItems(itemFilters, 1, tag); + RSUtils.readItems(fluidFilters, 2, tag); + if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } @@ -523,26 +557,6 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte } } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - onBreak(); - - RSUtils.writeItems(itemFilters, 1, tag); - RSUtils.writeItems(fluidFilters, 2, tag); - RSUtils.writeItems(upgrades, 3, tag); - RSUtils.writeItems(inputDisks, 4, tag); - RSUtils.writeItems(outputDisks, 5, tag); - - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_MODE, mode); - tag.setInteger(NBT_TYPE, type); - tag.setInteger(NBT_IO_MODE, ioMode); - - return tag; - } - @Override public NBTTagCompound writeUpdate(NBTTagCompound tag) { super.writeUpdate(tag); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java index 59ee2c9d5..cea8abe7c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileExporter.java @@ -22,7 +22,7 @@ import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; -public class TileExporter extends TileMultipartNode implements IComparable, IType { +public class TileExporter extends TileMultipartNode implements IComparable, IType, IWrenchable { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); @@ -121,6 +121,35 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp public void read(NBTTagCompound tag) { super.read(tag); + readConfiguration(tag); + + RSUtils.readItems(upgrades, 1, tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + writeConfiguration(tag); + + RSUtils.writeItems(upgrades, 1, tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_TYPE, type); + + RSUtils.writeItems(itemFilters, 0, tag); + RSUtils.writeItems(fluidFilters, 2, tag); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } @@ -130,24 +159,9 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp } RSUtils.readItems(itemFilters, 0, tag); - RSUtils.readItems(upgrades, 1, tag); RSUtils.readItems(fluidFilters, 2, tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_TYPE, type); - - RSUtils.writeItems(itemFilters, 0, tag); - RSUtils.writeItems(upgrades, 1, tag); - RSUtils.writeItems(fluidFilters, 2, tag); - - return tag; - } - public IItemHandler getUpgrades() { return upgrades; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java index e92c6db51..a8c724495 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidInterface.java @@ -20,7 +20,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -public class TileFluidInterface extends TileNode implements IComparable { +public class TileFluidInterface extends TileNode implements IComparable, IWrenchable { public static final int TANK_CAPACITY = 16000; public static final TileDataParameter COMPARE = IComparable.createParameter(); @@ -165,12 +165,11 @@ public class TileFluidInterface extends TileNode implements IComparable { RSUtils.writeItems(upgrades, 0, tag); RSUtils.writeItems(in, 1, tag); - RSUtils.writeItems(out, 2, tag); tag.setTag(NBT_TANK_IN, tankIn.writeToNBT(new NBTTagCompound())); tag.setTag(NBT_TANK_OUT, tankOut.writeToNBT(new NBTTagCompound())); - tag.setInteger(NBT_COMPARE, compare); + writeConfiguration(tag); return tag; } @@ -181,7 +180,6 @@ public class TileFluidInterface extends TileNode implements IComparable { RSUtils.readItems(upgrades, 0, tag); RSUtils.readItems(in, 1, tag); - RSUtils.readItems(out, 2, tag); if (tag.hasKey(NBT_TANK_IN)) { tankIn.readFromNBT(tag.getCompoundTag(NBT_TANK_IN)); @@ -191,6 +189,22 @@ public class TileFluidInterface extends TileNode implements IComparable { tankOut.readFromNBT(tag.getCompoundTag(NBT_TANK_OUT)); } + readConfiguration(tag); + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + RSUtils.writeItems(out, 2, tag); + + tag.setInteger(NBT_COMPARE, compare); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { + RSUtils.readItems(out, 2, tag); + if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java index 263a1b3c8..df55d3787 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileFluidStorage.java @@ -21,7 +21,7 @@ import net.minecraftforge.fluids.FluidStack; import java.util.List; -public class TileFluidStorage extends TileNode implements IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType { +public class TileFluidStorage extends TileNode implements IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType, IWrenchable { public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter VOID_EXCESS = IExcessVoidable.createParameter(); @@ -142,16 +142,50 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider, public void read(NBTTagCompound tag) { super.read(tag); + readConfiguration(tag); + + if (tag.hasKey(NBT_STORAGE)) { + storageTag = tag.getCompoundTag(NBT_STORAGE); + } + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + if (storage != null) { + storage.writeToNBT(); + } + + tag.setTag(NBT_STORAGE, storageTag); + + writeConfiguration(tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + RSUtils.writeItems(filters, 0, tag); + + tag.setInteger(NBT_PRIORITY, priority); + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_MODE, mode); + tag.setBoolean(NBT_VOID_EXCESS, voidExcess); + + RSUtils.writeAccessType(tag, accessType); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { RSUtils.readItems(filters, 0, tag); if (tag.hasKey(NBT_PRIORITY)) { priority = tag.getInteger(NBT_PRIORITY); } - if (tag.hasKey(NBT_STORAGE)) { - storageTag = tag.getCompoundTag(NBT_STORAGE); - } - if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } @@ -167,28 +201,6 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider, accessType = RSUtils.readAccessType(tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - RSUtils.writeItems(filters, 0, tag); - - tag.setInteger(NBT_PRIORITY, priority); - - if (storage != null) { - storage.writeToNBT(); - } - - tag.setTag(NBT_STORAGE, storageTag); - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_MODE, mode); - tag.setBoolean(NBT_VOID_EXCESS, voidExcess); - - RSUtils.writeAccessType(tag, accessType); - - return tag; - } - public EnumFluidStorageType getType() { if (type == null && worldObj.getBlockState(pos).getBlock() == RSBlocks.FLUID_STORAGE) { this.type = ((EnumFluidStorageType) worldObj.getBlockState(pos).getValue(BlockFluidStorage.TYPE)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java index 4c5418760..2ff070591 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileImporter.java @@ -22,7 +22,7 @@ import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; -public class TileImporter extends TileMultipartNode implements IComparable, IFilterable, IType { +public class TileImporter extends TileMultipartNode implements IComparable, IFilterable, IType, IWrenchable { public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); public static final TileDataParameter TYPE = IType.createParameter(); @@ -133,6 +133,37 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil public void read(NBTTagCompound tag) { super.read(tag); + RSUtils.readItems(upgrades, 1, tag); + + readConfiguration(tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + RSUtils.writeItems(upgrades, 1, tag); + + writeConfiguration(tag); + + return tag; + } + + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_MODE, mode); + tag.setInteger(NBT_TYPE, type); + + RSUtils.writeItems(itemFilters, 0, tag); + RSUtils.writeItems(fluidFilters, 2, tag); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } @@ -146,25 +177,9 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil } RSUtils.readItems(itemFilters, 0, tag); - RSUtils.readItems(upgrades, 1, tag); RSUtils.readItems(fluidFilters, 2, tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_MODE, mode); - tag.setInteger(NBT_TYPE, type); - - RSUtils.writeItems(itemFilters, 0, tag); - RSUtils.writeItems(upgrades, 1, tag); - RSUtils.writeItems(fluidFilters, 2, tag); - - return tag; - } - public IItemHandler getUpgrades() { return upgrades; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java index 38f088c31..8b0ff5e51 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileInterface.java @@ -16,7 +16,7 @@ import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.wrapper.CombinedInvWrapper; -public class TileInterface extends TileNode implements IComparable { +public class TileInterface extends TileNode implements IComparable, IWrenchable { public static final TileDataParameter COMPARE = IComparable.createParameter(); private static final String NBT_COMPARE = "Compare"; @@ -122,13 +122,10 @@ public class TileInterface extends TileNode implements IComparable { super.read(tag); RSUtils.readItems(importItems, 0, tag); - RSUtils.readItems(exportSpecimenItems, 1, tag); RSUtils.readItems(exportItems, 2, tag); RSUtils.readItems(upgrades, 3, tag); - if (tag.hasKey(NBT_COMPARE)) { - compare = tag.getInteger(NBT_COMPARE); - } + readConfiguration(tag); } @Override @@ -136,15 +133,32 @@ public class TileInterface extends TileNode implements IComparable { super.write(tag); RSUtils.writeItems(importItems, 0, tag); - RSUtils.writeItems(exportSpecimenItems, 1, tag); RSUtils.writeItems(exportItems, 2, tag); RSUtils.writeItems(upgrades, 3, tag); + writeConfiguration(tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + RSUtils.writeItems(exportSpecimenItems, 1, tag); + tag.setInteger(NBT_COMPARE, compare); return tag; } + @Override + public void readConfiguration(NBTTagCompound tag) { + RSUtils.readItems(exportSpecimenItems, 1, tag); + + if (tag.hasKey(NBT_COMPARE)) { + compare = tag.getInteger(NBT_COMPARE); + } + } + public IItemHandler getImportItems() { return importItems; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java index ebc541bca..a1351e8c2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileStorage.java @@ -22,7 +22,7 @@ import net.minecraftforge.items.ItemHandlerHelper; import java.util.List; -public class TileStorage extends TileNode implements IItemStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType { +public class TileStorage extends TileNode implements IItemStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType, IWrenchable { public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); @@ -143,16 +143,50 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor public void read(NBTTagCompound tag) { super.read(tag); + if (tag.hasKey(NBT_STORAGE)) { + storageTag = tag.getCompoundTag(NBT_STORAGE); + } + + readConfiguration(tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + if (storage != null) { + storage.writeToNBT(); + } + + tag.setTag(NBT_STORAGE, storageTag); + + writeConfiguration(tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + RSUtils.writeItems(filters, 0, tag); + + tag.setInteger(NBT_PRIORITY, priority); + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_MODE, mode); + tag.setBoolean(NBT_VOID_EXCESS, voidExcess); + + RSUtils.writeAccessType(tag, accessType); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { RSUtils.readItems(filters, 0, tag); if (tag.hasKey(NBT_PRIORITY)) { priority = tag.getInteger(NBT_PRIORITY); } - if (tag.hasKey(NBT_STORAGE)) { - storageTag = tag.getCompoundTag(NBT_STORAGE); - } - if (tag.hasKey(NBT_COMPARE)) { compare = tag.getInteger(NBT_COMPARE); } @@ -168,28 +202,6 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor accessType = RSUtils.readAccessType(tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - RSUtils.writeItems(filters, 0, tag); - - tag.setInteger(NBT_PRIORITY, priority); - - if (storage != null) { - storage.writeToNBT(); - } - - tag.setTag(NBT_STORAGE, storageTag); - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_MODE, mode); - tag.setBoolean(NBT_VOID_EXCESS, voidExcess); - - RSUtils.writeAccessType(tag, accessType); - - return tag; - } - public EnumItemStorageType getType() { if (type == null && worldObj.getBlockState(pos).getBlock() == RSBlocks.STORAGE) { this.type = ((EnumItemStorageType) worldObj.getBlockState(pos).getValue(BlockStorage.TYPE)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/TileExternalStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/TileExternalStorage.java index b2c840276..9a5773f3a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/TileExternalStorage.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/externalstorage/TileExternalStorage.java @@ -14,6 +14,7 @@ import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.tile.IStorageGui; +import com.raoulvdberge.refinedstorage.tile.IWrenchable; import com.raoulvdberge.refinedstorage.tile.TileMultipartNode; import com.raoulvdberge.refinedstorage.tile.config.*; import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; @@ -30,7 +31,7 @@ import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; import java.util.ArrayList; import java.util.List; -public class TileExternalStorage extends TileMultipartNode implements IItemStorageProvider, IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IAccessType { +public class TileExternalStorage extends TileMultipartNode implements IItemStorageProvider, IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IAccessType, IWrenchable { public static final TileDataParameter PRIORITY = IPrioritizable.createParameter(); public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); @@ -157,6 +158,35 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora public void read(NBTTagCompound tag) { super.read(tag); + readConfiguration(tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + writeConfiguration(tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + RSUtils.writeItems(itemFilters, 0, tag); + RSUtils.writeItems(fluidFilters, 1, tag); + + tag.setInteger(NBT_PRIORITY, priority); + tag.setInteger(NBT_COMPARE, compare); + tag.setInteger(NBT_MODE, mode); + tag.setInteger(NBT_TYPE, type); + + RSUtils.writeAccessType(tag, accessType); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { RSUtils.readItems(itemFilters, 0, tag); RSUtils.readItems(fluidFilters, 1, tag); @@ -179,23 +209,6 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora accessType = RSUtils.readAccessType(tag); } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - RSUtils.writeItems(itemFilters, 0, tag); - RSUtils.writeItems(fluidFilters, 1, tag); - - tag.setInteger(NBT_PRIORITY, priority); - tag.setInteger(NBT_COMPARE, compare); - tag.setInteger(NBT_MODE, mode); - tag.setInteger(NBT_TYPE, type); - - RSUtils.writeAccessType(tag, accessType); - - return tag; - } - @Override public int getCompare() { return compare; 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 ee7969e0b..ee59eecd6 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java @@ -16,6 +16,7 @@ import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerGridFilterInGrid; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.item.ItemPattern; +import com.raoulvdberge.refinedstorage.tile.IWrenchable; import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer; import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer; @@ -38,7 +39,7 @@ import net.minecraftforge.items.wrapper.InvWrapper; import java.util.ArrayList; import java.util.List; -public class TileGrid extends TileNode implements IGrid { +public class TileGrid extends TileNode implements IGrid, IWrenchable { public static final TileDataParameter VIEW_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { @Override public Integer getValue(TileGrid tile) { @@ -491,6 +492,36 @@ public class TileGrid extends TileNode implements IGrid { RSUtils.readItems(patterns, 1, tag); RSUtils.readItems(filter, 2, tag); + readConfiguration(tag); + } + + @Override + public NBTTagCompound write(NBTTagCompound tag) { + super.write(tag); + + RSUtils.writeItemsLegacy(matrix, 0, tag); + RSUtils.writeItems(patterns, 1, tag); + RSUtils.writeItems(filter, 2, tag); + + writeConfiguration(tag); + + return tag; + } + + @Override + public NBTTagCompound writeConfiguration(NBTTagCompound tag) { + tag.setInteger(NBT_VIEW_TYPE, viewType); + tag.setInteger(NBT_SORTING_DIRECTION, sortingDirection); + tag.setInteger(NBT_SORTING_TYPE, sortingType); + tag.setInteger(NBT_SEARCH_BOX_MODE, searchBoxMode); + + tag.setBoolean(NBT_OREDICT_PATTERN, oredictPattern); + + return tag; + } + + @Override + public void readConfiguration(NBTTagCompound tag) { if (tag.hasKey(NBT_VIEW_TYPE)) { viewType = tag.getInteger(NBT_VIEW_TYPE); } @@ -512,24 +543,6 @@ public class TileGrid extends TileNode implements IGrid { } } - @Override - public NBTTagCompound write(NBTTagCompound tag) { - super.write(tag); - - RSUtils.writeItemsLegacy(matrix, 0, tag); - RSUtils.writeItems(patterns, 1, tag); - RSUtils.writeItems(filter, 2, tag); - - tag.setInteger(NBT_VIEW_TYPE, viewType); - tag.setInteger(NBT_SORTING_DIRECTION, sortingDirection); - tag.setInteger(NBT_SORTING_TYPE, sortingType); - tag.setInteger(NBT_SEARCH_BOX_MODE, searchBoxMode); - - tag.setBoolean(NBT_OREDICT_PATTERN, oredictPattern); - - return tag; - } - @Override public IItemHandler getDrops() { switch (getType()) { diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 177311240..24fce79a2 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -224,4 +224,8 @@ item.refinedstorage:upgrade.6.name=Silk Touch Upgrade item.refinedstorage:upgrade.7.name=Fortune Upgrade item.refinedstorage:storage_housing.name=Storage Housing item.refinedstorage:grid_filter.name=Grid Filter -item.refinedstorage:network_card.name=Network Card \ No newline at end of file +item.refinedstorage:network_card.name=Network Card +item.refinedstorage:wrench.name=Wrench +item.refinedstorage:wrench.saved=Configuration written. +item.refinedstorage:wrench.read=Configuration read. +item.refinedstorage:wrench.cleared=Configuration cleared. \ No newline at end of file