From 612942062778e7613eb52bf1dc334b4d0c6d42aa Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Sat, 17 Sep 2016 14:53:51 +0200 Subject: [PATCH 1/4] add NBTStorage util class --- .../apiimpl/storage/NBTStorage.java | 24 +++++++++++++++++++ .../refinedstorage/tile/TileDiskDrive.java | 15 +++--------- .../tile/TileDiskManipulator.java | 15 +++--------- 3 files changed, 30 insertions(+), 24 deletions(-) create mode 100644 src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java diff --git a/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java b/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java new file mode 100644 index 000000000..cdf151e17 --- /dev/null +++ b/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java @@ -0,0 +1,24 @@ +package refinedstorage.apiimpl.storage; + +import net.minecraft.item.ItemStack; +import refinedstorage.RefinedStorageItems; +import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; +import refinedstorage.apiimpl.storage.item.ItemStorageNBT; + +import java.util.function.Function; + +public class NBTStorage { + public static void constructFromDrive(ItemStack disk, int slot, ItemStorageNBT[] itemStorages, FluidStorageNBT[] fluidStorages, + Function itemStorageSupplier, Function fluidStorageNBTSupplier) { + if (disk == null) { + itemStorages[slot] = null; + fluidStorages[slot] = null; + } else { + if (disk.getItem() == RefinedStorageItems.STORAGE_DISK) { + itemStorages[slot] = itemStorageSupplier.apply(disk); + } else if (disk.getItem() == RefinedStorageItems.FLUID_STORAGE_DISK) { + fluidStorages[slot] = fluidStorageNBTSupplier.apply(disk); + } + } + } +} diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index 5934a5c3b..0ce030c85 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -17,6 +17,7 @@ import refinedstorage.api.storage.fluid.IFluidStorage; import refinedstorage.api.storage.fluid.IFluidStorageProvider; import refinedstorage.api.storage.item.IItemStorage; import refinedstorage.api.storage.item.IItemStorageProvider; +import refinedstorage.apiimpl.storage.NBTStorage; import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; import refinedstorage.apiimpl.storage.fluid.FluidUtils; import refinedstorage.apiimpl.storage.item.ItemStorageNBT; @@ -101,18 +102,8 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl super.onContentsChanged(slot); if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) { - ItemStack disk = getStackInSlot(slot); - - if (disk == null) { - itemStorages[slot] = null; - fluidStorages[slot] = null; - } else { - if (disk.getItem() == RefinedStorageItems.STORAGE_DISK) { - itemStorages[slot] = new ItemStorage(disk); - } else if (disk.getItem() == RefinedStorageItems.FLUID_STORAGE_DISK) { - fluidStorages[slot] = new FluidStorage(disk); - } - } + NBTStorage.constructFromDrive(getStackInSlot(slot), slot, itemStorages, fluidStorages, + s -> new ItemStorage(s), s -> new FluidStorage(s)); if (network != null) { network.getItemStorage().rebuild(); diff --git a/src/main/java/refinedstorage/tile/TileDiskManipulator.java b/src/main/java/refinedstorage/tile/TileDiskManipulator.java index a475de2d7..da3d3e58f 100644 --- a/src/main/java/refinedstorage/tile/TileDiskManipulator.java +++ b/src/main/java/refinedstorage/tile/TileDiskManipulator.java @@ -12,6 +12,7 @@ import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorageItems; +import refinedstorage.apiimpl.storage.NBTStorage; import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; import refinedstorage.apiimpl.storage.fluid.FluidUtils; import refinedstorage.apiimpl.storage.item.ItemStorageNBT; @@ -84,18 +85,8 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte super.onContentsChanged(slot); if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER && slot < 6) { - ItemStack disk = getStackInSlot(slot); - - if (disk == null) { - itemStorages[slot] = null; - fluidStorages[slot] = null; - } else { - if (disk.getItem() == RefinedStorageItems.STORAGE_DISK) { - itemStorages[slot] = new ItemStorage(disk); - } else if (disk.getItem() == RefinedStorageItems.FLUID_STORAGE_DISK) { - fluidStorages[slot] = new FluidStorage(disk); - } - } + NBTStorage.constructFromDrive(getStackInSlot(slot), slot, itemStorages, fluidStorages, + s -> new ItemStorage(s), s -> new FluidStorage(s)); } } From f9d192ce763ab55607e3fcc29b4cb56e44e24016 Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Sat, 17 Sep 2016 14:57:40 +0200 Subject: [PATCH 2/4] code style updates --- src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java | 3 +-- src/main/java/refinedstorage/tile/TileDiskDrive.java | 3 +-- src/main/java/refinedstorage/tile/TileDiskManipulator.java | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java b/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java index cdf151e17..af4e33d1e 100644 --- a/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java +++ b/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java @@ -8,8 +8,7 @@ import refinedstorage.apiimpl.storage.item.ItemStorageNBT; import java.util.function.Function; public class NBTStorage { - public static void constructFromDrive(ItemStack disk, int slot, ItemStorageNBT[] itemStorages, FluidStorageNBT[] fluidStorages, - Function itemStorageSupplier, Function fluidStorageNBTSupplier) { + public static void constructFromDrive(ItemStack disk, int slot, ItemStorageNBT[] itemStorages, FluidStorageNBT[] fluidStorages, Function itemStorageSupplier, Function fluidStorageNBTSupplier) { if (disk == null) { itemStorages[slot] = null; fluidStorages[slot] = null; diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index 0ce030c85..c210866bb 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -102,8 +102,7 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl super.onContentsChanged(slot); if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) { - NBTStorage.constructFromDrive(getStackInSlot(slot), slot, itemStorages, fluidStorages, - s -> new ItemStorage(s), s -> new FluidStorage(s)); + NBTStorage.constructFromDrive(getStackInSlot(slot), slot, itemStorages, fluidStorages, s -> new ItemStorage(s), s -> new FluidStorage(s)); if (network != null) { network.getItemStorage().rebuild(); diff --git a/src/main/java/refinedstorage/tile/TileDiskManipulator.java b/src/main/java/refinedstorage/tile/TileDiskManipulator.java index da3d3e58f..2d3b8c662 100644 --- a/src/main/java/refinedstorage/tile/TileDiskManipulator.java +++ b/src/main/java/refinedstorage/tile/TileDiskManipulator.java @@ -85,8 +85,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte super.onContentsChanged(slot); if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER && slot < 6) { - NBTStorage.constructFromDrive(getStackInSlot(slot), slot, itemStorages, fluidStorages, - s -> new ItemStorage(s), s -> new FluidStorage(s)); + NBTStorage.constructFromDrive(getStackInSlot(slot), slot, itemStorages, fluidStorages, s -> new ItemStorage(s), s -> new FluidStorage(s)); } } From cba0e4af2643b86f35ac0d20955611a068c2b0ef Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Sat, 17 Sep 2016 15:06:13 +0200 Subject: [PATCH 3/4] add some default IItemValidator implementations --- .../inventory/IItemValidator.java | 22 +++++++++++++++++++ .../refinedstorage/tile/TileDiskDrive.java | 14 ++---------- .../tile/TileDiskManipulator.java | 15 ++----------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/main/java/refinedstorage/inventory/IItemValidator.java b/src/main/java/refinedstorage/inventory/IItemValidator.java index c86888705..418af7f62 100755 --- a/src/main/java/refinedstorage/inventory/IItemValidator.java +++ b/src/main/java/refinedstorage/inventory/IItemValidator.java @@ -1,7 +1,29 @@ package refinedstorage.inventory; import net.minecraft.item.ItemStack; +import refinedstorage.RefinedStorageItems; +import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; +import refinedstorage.apiimpl.storage.item.ItemStorageNBT; public interface IItemValidator { + IItemValidator itemStorageDisk = new ItemValidatorBasic(RefinedStorageItems.STORAGE_DISK) { + @Override + public boolean isValid(ItemStack disk) { + return super.isValid(disk) && ItemStorageNBT.isValid(disk); + } + }; + IItemValidator fluidStorageDisk = new ItemValidatorBasic(RefinedStorageItems.FLUID_STORAGE_DISK) { + @Override + public boolean isValid(ItemStack disk) { + return super.isValid(disk) && FluidStorageNBT.isValid(disk); + } + }; + IItemValidator storageDisk = new IItemValidator() { + @Override + public boolean isValid(ItemStack stack) { + return itemStorageDisk.isValid(stack) || fluidStorageDisk.isValid(stack); + } + }; + boolean isValid(ItemStack stack); } diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index c210866bb..caf0bab31 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -23,9 +23,9 @@ import refinedstorage.apiimpl.storage.fluid.FluidUtils; import refinedstorage.apiimpl.storage.item.ItemStorageNBT; import refinedstorage.block.EnumFluidStorageType; import refinedstorage.block.EnumItemStorageType; +import refinedstorage.inventory.IItemValidator; import refinedstorage.inventory.ItemHandlerBasic; import refinedstorage.inventory.ItemHandlerFluid; -import refinedstorage.inventory.ItemValidatorBasic; import refinedstorage.tile.config.IComparable; import refinedstorage.tile.config.IFilterable; import refinedstorage.tile.config.IPrioritizable; @@ -86,17 +86,7 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl private static final String NBT_STORED = "Stored"; private static final String NBT_TYPE = "Type"; - private ItemHandlerBasic disks = new ItemHandlerBasic(8, this, new ItemValidatorBasic(RefinedStorageItems.STORAGE_DISK) { - @Override - public boolean isValid(ItemStack disk) { - return super.isValid(disk) && ItemStorageNBT.isValid(disk); - } - }, new ItemValidatorBasic(RefinedStorageItems.FLUID_STORAGE_DISK) { - @Override - public boolean isValid(ItemStack disk) { - return super.isValid(disk) && FluidStorageNBT.isValid(disk); - } - }) { + private ItemHandlerBasic disks = new ItemHandlerBasic(8, this, IItemValidator.storageDisk) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); diff --git a/src/main/java/refinedstorage/tile/TileDiskManipulator.java b/src/main/java/refinedstorage/tile/TileDiskManipulator.java index 2d3b8c662..ba3d706a9 100644 --- a/src/main/java/refinedstorage/tile/TileDiskManipulator.java +++ b/src/main/java/refinedstorage/tile/TileDiskManipulator.java @@ -11,16 +11,15 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; -import refinedstorage.RefinedStorageItems; import refinedstorage.apiimpl.storage.NBTStorage; import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; import refinedstorage.apiimpl.storage.fluid.FluidUtils; import refinedstorage.apiimpl.storage.item.ItemStorageNBT; import refinedstorage.block.EnumFluidStorageType; import refinedstorage.block.EnumItemStorageType; +import refinedstorage.inventory.IItemValidator; import refinedstorage.inventory.ItemHandlerBasic; import refinedstorage.inventory.ItemHandlerFluid; -import refinedstorage.inventory.ItemValidatorBasic; import refinedstorage.tile.config.IComparable; import refinedstorage.tile.config.IFilterable; import refinedstorage.tile.config.IType; @@ -69,17 +68,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte fluidStorages = new FluidStorage[6]; } - private ItemHandlerBasic disks = new ItemHandlerBasic(12, this, new ItemValidatorBasic(RefinedStorageItems.STORAGE_DISK) { - @Override - public boolean isValid(ItemStack disk) { - return super.isValid(disk) && ItemStorageNBT.isValid(disk); - } - }, new ItemValidatorBasic(RefinedStorageItems.FLUID_STORAGE_DISK) { - @Override - public boolean isValid(ItemStack disk) { - return super.isValid(disk) && FluidStorageNBT.isValid(disk); - } - }) { + private ItemHandlerBasic disks = new ItemHandlerBasic(12, this, IItemValidator.storageDisk) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); From 680c45da7e1414ef0068a6027c660f1e8bd88a55 Mon Sep 17 00:00:00 2001 From: way2muchnoise Date: Sat, 17 Sep 2016 15:09:38 +0200 Subject: [PATCH 4/4] code style updates --- .../java/refinedstorage/apiimpl/storage/NBTStorage.java | 2 +- .../java/refinedstorage/inventory/IItemValidator.java | 8 ++++---- src/main/java/refinedstorage/tile/TileDiskDrive.java | 2 +- .../java/refinedstorage/tile/TileDiskManipulator.java | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java b/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java index af4e33d1e..362ff1b1d 100644 --- a/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java +++ b/src/main/java/refinedstorage/apiimpl/storage/NBTStorage.java @@ -7,7 +7,7 @@ import refinedstorage.apiimpl.storage.item.ItemStorageNBT; import java.util.function.Function; -public class NBTStorage { +public final class NBTStorage { public static void constructFromDrive(ItemStack disk, int slot, ItemStorageNBT[] itemStorages, FluidStorageNBT[] fluidStorages, Function itemStorageSupplier, Function fluidStorageNBTSupplier) { if (disk == null) { itemStorages[slot] = null; diff --git a/src/main/java/refinedstorage/inventory/IItemValidator.java b/src/main/java/refinedstorage/inventory/IItemValidator.java index 418af7f62..dd99d7d8d 100755 --- a/src/main/java/refinedstorage/inventory/IItemValidator.java +++ b/src/main/java/refinedstorage/inventory/IItemValidator.java @@ -6,22 +6,22 @@ import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; import refinedstorage.apiimpl.storage.item.ItemStorageNBT; public interface IItemValidator { - IItemValidator itemStorageDisk = new ItemValidatorBasic(RefinedStorageItems.STORAGE_DISK) { + IItemValidator ITEM_STORAGE_DISK = new ItemValidatorBasic(RefinedStorageItems.STORAGE_DISK) { @Override public boolean isValid(ItemStack disk) { return super.isValid(disk) && ItemStorageNBT.isValid(disk); } }; - IItemValidator fluidStorageDisk = new ItemValidatorBasic(RefinedStorageItems.FLUID_STORAGE_DISK) { + IItemValidator FLUID_STORAGE_DISK = new ItemValidatorBasic(RefinedStorageItems.FLUID_STORAGE_DISK) { @Override public boolean isValid(ItemStack disk) { return super.isValid(disk) && FluidStorageNBT.isValid(disk); } }; - IItemValidator storageDisk = new IItemValidator() { + IItemValidator STORAGE_DISK = new IItemValidator() { @Override public boolean isValid(ItemStack stack) { - return itemStorageDisk.isValid(stack) || fluidStorageDisk.isValid(stack); + return ITEM_STORAGE_DISK.isValid(stack) || FLUID_STORAGE_DISK.isValid(stack); } }; diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index caf0bab31..5d937478f 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -86,7 +86,7 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl private static final String NBT_STORED = "Stored"; private static final String NBT_TYPE = "Type"; - private ItemHandlerBasic disks = new ItemHandlerBasic(8, this, IItemValidator.storageDisk) { + private ItemHandlerBasic disks = new ItemHandlerBasic(8, this, IItemValidator.STORAGE_DISK) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot); diff --git a/src/main/java/refinedstorage/tile/TileDiskManipulator.java b/src/main/java/refinedstorage/tile/TileDiskManipulator.java index ba3d706a9..a11bdef20 100644 --- a/src/main/java/refinedstorage/tile/TileDiskManipulator.java +++ b/src/main/java/refinedstorage/tile/TileDiskManipulator.java @@ -68,7 +68,7 @@ public class TileDiskManipulator extends TileNode implements IComparable, IFilte fluidStorages = new FluidStorage[6]; } - private ItemHandlerBasic disks = new ItemHandlerBasic(12, this, IItemValidator.storageDisk) { + private ItemHandlerBasic disks = new ItemHandlerBasic(12, this, IItemValidator.STORAGE_DISK) { @Override protected void onContentsChanged(int slot) { super.onContentsChanged(slot);