From b545746b6fa6d36a0a7bddb5133b69889acb419f Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 22 May 2016 15:36:30 +0200 Subject: [PATCH] Better slotspecimen --- .../container/ContainerBase.java | 2 +- .../container/ContainerConstructor.java | 4 +-- .../container/ContainerDestructor.java | 4 +-- .../container/ContainerDetector.java | 2 +- .../container/ContainerExporter.java | 2 +- .../container/ContainerImporter.java | 2 +- .../container/ContainerInterface.java | 2 +- .../ContainerProcessingPatternEncoder.java | 2 +- .../container/ContainerStorage.java | 2 +- .../container/slot/SlotSpecimen.java | 26 ++++++++++++++----- .../container/slot/SlotSpecimenItemBlock.java | 17 ------------ 11 files changed, 30 insertions(+), 35 deletions(-) delete mode 100755 src/main/java/refinedstorage/container/slot/SlotSpecimenItemBlock.java diff --git a/src/main/java/refinedstorage/container/ContainerBase.java b/src/main/java/refinedstorage/container/ContainerBase.java index 10b76b5a3..cc2b49eb3 100755 --- a/src/main/java/refinedstorage/container/ContainerBase.java +++ b/src/main/java/refinedstorage/container/ContainerBase.java @@ -57,7 +57,7 @@ public abstract class ContainerBase extends Container { Slot slot = id >= 0 ? getSlot(id) : null; if (slot instanceof SlotSpecimen) { - if (((SlotSpecimen) slot).isSizeAllowed()) { + if (((SlotSpecimen) slot).isWithSize()) { if (slot.getStack() != null) { if (GuiScreen.isShiftKeyDown()) { slot.putStack(null); diff --git a/src/main/java/refinedstorage/container/ContainerConstructor.java b/src/main/java/refinedstorage/container/ContainerConstructor.java index 3dcef08c6..52a2e8d86 100755 --- a/src/main/java/refinedstorage/container/ContainerConstructor.java +++ b/src/main/java/refinedstorage/container/ContainerConstructor.java @@ -2,7 +2,7 @@ package refinedstorage.container; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.items.SlotItemHandler; -import refinedstorage.container.slot.SlotSpecimenItemBlock; +import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.tile.TileConstructor; public class ContainerConstructor extends ContainerBase { @@ -10,7 +10,7 @@ public class ContainerConstructor extends ContainerBase { public ContainerConstructor(EntityPlayer player, TileConstructor constructor) { super(player); - addSlotToContainer(new SlotSpecimenItemBlock(constructor.getFilter(), 0, 80, 20)); + addSlotToContainer(new SlotSpecimen(constructor.getFilter(), 0, 80, 20, SlotSpecimen.SPECIMEN_BLOCK)); for (int i = 0; i < 4; ++i) { addSlotToContainer(new SlotItemHandler(constructor.getUpgrades(), i, 187, 6 + (i * 18))); diff --git a/src/main/java/refinedstorage/container/ContainerDestructor.java b/src/main/java/refinedstorage/container/ContainerDestructor.java index 60306a094..d6f36acbb 100755 --- a/src/main/java/refinedstorage/container/ContainerDestructor.java +++ b/src/main/java/refinedstorage/container/ContainerDestructor.java @@ -2,7 +2,7 @@ package refinedstorage.container; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.items.SlotItemHandler; -import refinedstorage.container.slot.SlotSpecimenItemBlock; +import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.tile.TileDestructor; public class ContainerDestructor extends ContainerBase { @@ -10,7 +10,7 @@ public class ContainerDestructor extends ContainerBase { super(player); for (int i = 0; i < 9; ++i) { - addSlotToContainer(new SlotSpecimenItemBlock(destructor.getInventory(), i, 8 + (18 * i), 20)); + addSlotToContainer(new SlotSpecimen(destructor.getInventory(), i, 8 + (18 * i), 20, SlotSpecimen.SPECIMEN_BLOCK)); } for (int i = 0; i < 4; ++i) { diff --git a/src/main/java/refinedstorage/container/ContainerDetector.java b/src/main/java/refinedstorage/container/ContainerDetector.java index 6b0aed992..dcc92e29d 100755 --- a/src/main/java/refinedstorage/container/ContainerDetector.java +++ b/src/main/java/refinedstorage/container/ContainerDetector.java @@ -8,7 +8,7 @@ public class ContainerDetector extends ContainerBase { public ContainerDetector(EntityPlayer player, TileDetector detector) { super(player); - addSlotToContainer(new SlotSpecimen(detector.getInventory(), 0, 107, 20, false)); + addSlotToContainer(new SlotSpecimen(detector.getInventory(), 0, 107, 20)); addPlayerInventory(8, 55); } diff --git a/src/main/java/refinedstorage/container/ContainerExporter.java b/src/main/java/refinedstorage/container/ContainerExporter.java index d946fe925..afad8dc15 100755 --- a/src/main/java/refinedstorage/container/ContainerExporter.java +++ b/src/main/java/refinedstorage/container/ContainerExporter.java @@ -10,7 +10,7 @@ public class ContainerExporter extends ContainerBase { super(player); for (int i = 0; i < 9; ++i) { - addSlotToContainer(new SlotSpecimen(exporter.getFilters(), i, 8 + (18 * i), 20, false)); + addSlotToContainer(new SlotSpecimen(exporter.getFilters(), i, 8 + (18 * i), 20)); } for (int i = 0; i < 4; ++i) { diff --git a/src/main/java/refinedstorage/container/ContainerImporter.java b/src/main/java/refinedstorage/container/ContainerImporter.java index d08bbe362..d5b36c02e 100755 --- a/src/main/java/refinedstorage/container/ContainerImporter.java +++ b/src/main/java/refinedstorage/container/ContainerImporter.java @@ -10,7 +10,7 @@ public class ContainerImporter extends ContainerBase { super(player); for (int i = 0; i < 9; ++i) { - addSlotToContainer(new SlotSpecimen(importer.getFilters(), i, 8 + (18 * i), 20, false)); + addSlotToContainer(new SlotSpecimen(importer.getFilters(), i, 8 + (18 * i), 20)); } for (int i = 0; i < 4; ++i) { diff --git a/src/main/java/refinedstorage/container/ContainerInterface.java b/src/main/java/refinedstorage/container/ContainerInterface.java index fdfac069f..ca8dfa41a 100755 --- a/src/main/java/refinedstorage/container/ContainerInterface.java +++ b/src/main/java/refinedstorage/container/ContainerInterface.java @@ -17,7 +17,7 @@ public class ContainerInterface extends ContainerBase { } for (int i = 9; i < 18; ++i) { - addSlotToContainer(new SlotSpecimen(tile.getItems(), i, 8 + (18 * (i - 9)), 54, true)); + addSlotToContainer(new SlotSpecimen(tile.getItems(), i, 8 + (18 * (i - 9)), 54, SlotSpecimen.SPECIMEN_SIZE)); } for (int i = 18; i < 27; ++i) { diff --git a/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java b/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java index fba34a384..c907794d6 100755 --- a/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java +++ b/src/main/java/refinedstorage/container/ContainerProcessingPatternEncoder.java @@ -15,7 +15,7 @@ public class ContainerProcessingPatternEncoder extends ContainerBase { int y = 20; for (int i = 0; i < 9 * 2; ++i) { - addSlotToContainer(new SlotSpecimen(processingPatternEncoder.getConfiguration(), i, x, y, false)); + addSlotToContainer(new SlotSpecimen(processingPatternEncoder.getConfiguration(), i, x, y)); x += 18; diff --git a/src/main/java/refinedstorage/container/ContainerStorage.java b/src/main/java/refinedstorage/container/ContainerStorage.java index a35527c25..62dd6c897 100755 --- a/src/main/java/refinedstorage/container/ContainerStorage.java +++ b/src/main/java/refinedstorage/container/ContainerStorage.java @@ -17,7 +17,7 @@ public class ContainerStorage extends ContainerBase { protected void addSpecimenAndPlayerInventorySlots(IItemHandler filters) { for (int i = 0; i < 9; ++i) { - addSlotToContainer(new SlotSpecimen(filters, i, 8 + (18 * i), 20, false)); + addSlotToContainer(new SlotSpecimen(filters, i, 8 + (18 * i), 20)); } addPlayerInventory(8, 129); diff --git a/src/main/java/refinedstorage/container/slot/SlotSpecimen.java b/src/main/java/refinedstorage/container/slot/SlotSpecimen.java index a4133fac3..e12043733 100755 --- a/src/main/java/refinedstorage/container/slot/SlotSpecimen.java +++ b/src/main/java/refinedstorage/container/slot/SlotSpecimen.java @@ -1,17 +1,25 @@ package refinedstorage.container.slot; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.SlotItemHandler; public class SlotSpecimen extends SlotItemHandler { - private boolean sizeAllowed; + public static final int SPECIMEN_SIZE = 1; + public static final int SPECIMEN_BLOCK = 2; - public SlotSpecimen(IItemHandler handler, int id, int x, int y, boolean allowSize) { + private int flags = 0; + + public SlotSpecimen(IItemHandler handler, int id, int x, int y, int flags) { super(handler, id, x, y); - this.sizeAllowed = allowSize; + this.flags = flags; + } + + public SlotSpecimen(IItemHandler handler, int id, int x, int y) { + this(handler, id, x, y, 0); } @Override @@ -21,19 +29,23 @@ public class SlotSpecimen extends SlotItemHandler { @Override public boolean isItemValid(ItemStack stack) { - return true; + return isBlockOnly() ? (stack.getItem() instanceof ItemBlock) : true; } @Override public void putStack(ItemStack stack) { - if (stack != null && !sizeAllowed) { + if (stack != null && !isWithSize()) { stack.stackSize = 1; } super.putStack(stack); } - public boolean isSizeAllowed() { - return sizeAllowed; + public boolean isWithSize() { + return (flags & SPECIMEN_SIZE) == SPECIMEN_SIZE; + } + + public boolean isBlockOnly() { + return (flags & SPECIMEN_BLOCK) == SPECIMEN_BLOCK; } } diff --git a/src/main/java/refinedstorage/container/slot/SlotSpecimenItemBlock.java b/src/main/java/refinedstorage/container/slot/SlotSpecimenItemBlock.java deleted file mode 100755 index 2efeb6c29..000000000 --- a/src/main/java/refinedstorage/container/slot/SlotSpecimenItemBlock.java +++ /dev/null @@ -1,17 +0,0 @@ -package refinedstorage.container.slot; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraftforge.items.IItemHandler; - -// @TODO: This can probably be removed? -public class SlotSpecimenItemBlock extends SlotSpecimen { - public SlotSpecimenItemBlock(IItemHandler handler, int id, int x, int y) { - super(handler, id, x, y, false); - } - - @Override - public boolean isItemValid(ItemStack stack) { - return stack.getItem() instanceof ItemBlock; - } -}