From 89d3e8538bb7f2295fc114ab7b51b35772d04640 Mon Sep 17 00:00:00 2001 From: Ourten Date: Sat, 7 Jan 2017 15:59:59 +0100 Subject: [PATCH] Cleanup some ContainerBuilder code --- .../ContainerPlayerInventoryBuilder.java | 58 ++++--------------- .../ContainerTileInventoryBuilder.java | 10 +++- .../container/builder/slot/ArmorSlot.java | 20 ------- .../builder/slot/EnergyChargeSlot.java | 16 ----- .../techreborn/client/gui/GuiChargeBench.java | 2 +- .../client/gui/GuiQuantumChest.java | 2 +- 6 files changed, 22 insertions(+), 86 deletions(-) delete mode 100644 src/main/java/techreborn/client/container/builder/slot/ArmorSlot.java delete mode 100644 src/main/java/techreborn/client/container/builder/slot/EnergyChargeSlot.java diff --git a/src/main/java/techreborn/client/container/builder/ContainerPlayerInventoryBuilder.java b/src/main/java/techreborn/client/container/builder/ContainerPlayerInventoryBuilder.java index e7b3785d7..5e141fdce 100644 --- a/src/main/java/techreborn/client/container/builder/ContainerPlayerInventoryBuilder.java +++ b/src/main/java/techreborn/client/container/builder/ContainerPlayerInventoryBuilder.java @@ -1,10 +1,13 @@ package techreborn.client.container.builder; +import org.apache.commons.lang3.Range; + import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.EntityEquipmentSlot; -import org.apache.commons.lang3.Range; + import reborncore.client.gui.slots.BaseSlot; -import techreborn.client.container.builder.slot.ArmorSlot; + +import techreborn.client.container.builder.slot.FilteredSlot; public final class ContainerPlayerInventoryBuilder { @@ -44,47 +47,8 @@ public final class ContainerPlayerInventoryBuilder { return this.hotbar(8, 152); } - public ContainerPlayerInventoryBuilder inventory(boolean old) { - if (old) { - return this.inventory(8, 84); - } else { - return inventory(); - } - } - - public ContainerPlayerInventoryBuilder hotbar(boolean old) { - if (old) { - return this.hotbar(8, 142); - } else { - return hotbar(); - } - } - - private ContainerPlayerInventoryBuilder armor(final int index, final int xStart, final int yStart, - final EntityEquipmentSlot slotType) { - this.parent.slots.add(new ArmorSlot(slotType, this.player, index, xStart, yStart)); - return this; - } - - public ContainerPlayerInventoryBuilder helmet(final int xStart, final int yStart) { - return this.armor(this.player.getSizeInventory() - 2, xStart, yStart, EntityEquipmentSlot.HEAD); - } - - public ContainerPlayerInventoryBuilder chestplate(final int xStart, final int yStart) { - return this.armor(this.player.getSizeInventory() - 3, xStart, yStart, EntityEquipmentSlot.CHEST); - } - - public ContainerPlayerInventoryBuilder leggings(final int xStart, final int yStart) { - return this.armor(this.player.getSizeInventory() - 4, xStart, yStart, EntityEquipmentSlot.LEGS); - } - - public ContainerPlayerInventoryBuilder boots(final int xStart, final int yStart) { - return this.armor(this.player.getSizeInventory() - 5, xStart, yStart, EntityEquipmentSlot.FEET); - } - - public ContainerPlayerInventoryBuilder armor(final int xStart, final int yStart) { - return this.helmet(xStart, yStart).chestplate(xStart, yStart + 19).leggings(xStart, yStart + 38).boots(xStart, - yStart + 57); + public ContainerPlayerArmorInventoryBuilder armor() { + return new ContainerPlayerArmorInventoryBuilder(this); } public ContainerBuilder addInventory() { @@ -108,8 +72,10 @@ public final class ContainerPlayerInventoryBuilder { } private ContainerPlayerArmorInventoryBuilder armor(final int index, final int xStart, final int yStart, - final EntityEquipmentSlot slotType) { - this.parent.parent.slots.add(new ArmorSlot(slotType, this.parent.player, index, xStart, yStart)); + final EntityEquipmentSlot slotType) { + + this.parent.parent.slots.add(new FilteredSlot(this.parent.player, index, xStart, yStart) + .setFilter(stack -> stack.getItem().isValidArmor(stack, slotType, this.parent.player.player))); return this; } @@ -131,7 +97,7 @@ public final class ContainerPlayerInventoryBuilder { public ContainerPlayerArmorInventoryBuilder complete(final int xStart, final int yStart) { return this.helmet(xStart, yStart).chestplate(xStart, yStart + 19).leggings(xStart, yStart + 38) - .boots(xStart, yStart + 57); + .boots(xStart, yStart + 57); } public ContainerPlayerInventoryBuilder addArmor() { diff --git a/src/main/java/techreborn/client/container/builder/ContainerTileInventoryBuilder.java b/src/main/java/techreborn/client/container/builder/ContainerTileInventoryBuilder.java index d6761c8b1..f01e8e96c 100644 --- a/src/main/java/techreborn/client/container/builder/ContainerTileInventoryBuilder.java +++ b/src/main/java/techreborn/client/container/builder/ContainerTileInventoryBuilder.java @@ -4,12 +4,15 @@ import org.apache.commons.lang3.Range; import org.apache.commons.lang3.tuple.Pair; import net.minecraft.inventory.IInventory; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.energy.CapabilityEnergy; +import reborncore.api.power.IEnergyInterfaceItem; import reborncore.client.gui.slots.BaseSlot; import reborncore.client.gui.slots.SlotFake; import reborncore.client.gui.slots.SlotOutput; -import techreborn.client.container.builder.slot.EnergyChargeSlot; +import techreborn.client.container.builder.slot.FilteredSlot; import java.util.function.IntConsumer; import java.util.function.IntSupplier; @@ -41,8 +44,11 @@ public class ContainerTileInventoryBuilder { return this; } + @SuppressWarnings("null") public ContainerTileInventoryBuilder energySlot(final int index, final int x, final int y) { - this.parent.slots.add(new EnergyChargeSlot(this.tile, index, x, y)); + this.parent.slots.add(new FilteredSlot(this.tile, index, x, y) + .setFilter(stack -> stack.hasCapability(CapabilityEnergy.ENERGY, EnumFacing.UP) + || stack.getItem() instanceof IEnergyInterfaceItem)); return this; } diff --git a/src/main/java/techreborn/client/container/builder/slot/ArmorSlot.java b/src/main/java/techreborn/client/container/builder/slot/ArmorSlot.java deleted file mode 100644 index 09c6a0389..000000000 --- a/src/main/java/techreborn/client/container/builder/slot/ArmorSlot.java +++ /dev/null @@ -1,20 +0,0 @@ -package techreborn.client.container.builder.slot; - -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.util.ResourceLocation; - -import techreborn.lib.ModInfo; - -public class ArmorSlot extends FilteredSlot { - - public ArmorSlot(final EntityEquipmentSlot armorType, final InventoryPlayer inventory, final int index, final int xPosition, final int yPosition) { - super(inventory, index, xPosition, yPosition); - this.setFilter(stack -> stack != null && stack.getItem().isValidArmor(stack, armorType, inventory.player)); - } - - @Override - public int getSlotStackLimit() { - return 1; - } -} diff --git a/src/main/java/techreborn/client/container/builder/slot/EnergyChargeSlot.java b/src/main/java/techreborn/client/container/builder/slot/EnergyChargeSlot.java deleted file mode 100644 index 9b3696eb8..000000000 --- a/src/main/java/techreborn/client/container/builder/slot/EnergyChargeSlot.java +++ /dev/null @@ -1,16 +0,0 @@ -package techreborn.client.container.builder.slot; - -import net.minecraft.inventory.IInventory; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.energy.CapabilityEnergy; -import reborncore.api.power.IEnergyInterfaceItem; - -public class EnergyChargeSlot extends FilteredSlot { - - @SuppressWarnings("null") - public EnergyChargeSlot(final IInventory inventory, final int index, final int xPosition, final int yPosition) { - super(inventory, index, xPosition, yPosition); - this.setFilter(stack -> stack.hasCapability(CapabilityEnergy.ENERGY, EnumFacing.UP) || stack.getItem() instanceof IEnergyInterfaceItem); - } - -} diff --git a/src/main/java/techreborn/client/gui/GuiChargeBench.java b/src/main/java/techreborn/client/gui/GuiChargeBench.java index 44b19b5a4..724a2f742 100644 --- a/src/main/java/techreborn/client/gui/GuiChargeBench.java +++ b/src/main/java/techreborn/client/gui/GuiChargeBench.java @@ -15,7 +15,7 @@ public class GuiChargeBench extends GuiContainer { TileChargeBench chargebench; public GuiChargeBench(final EntityPlayer player, final TileChargeBench tile) { - super(new ContainerBuilder().player(player.inventory).inventory(true).hotbar(true).addInventory().tile(tile) + super(new ContainerBuilder().player(player.inventory).inventory(8, 84).hotbar(8, 152).addInventory().tile(tile) .energySlot(0, 62, 21).energySlot(1, 80, 21).energySlot(2, 98, 21).energySlot(3, 62, 39).energySlot(4, 80, 39) .energySlot(5, 98, 39).syncIntegerValue(() -> (int) tile.getEnergy(), tile::setEnergy).addInventory() .create()); diff --git a/src/main/java/techreborn/client/gui/GuiQuantumChest.java b/src/main/java/techreborn/client/gui/GuiQuantumChest.java index 8fb515efb..54fd18138 100644 --- a/src/main/java/techreborn/client/gui/GuiQuantumChest.java +++ b/src/main/java/techreborn/client/gui/GuiQuantumChest.java @@ -19,7 +19,7 @@ public class GuiQuantumChest extends GuiContainer { TileQuantumChest tile; public GuiQuantumChest(final EntityPlayer player, final TileQuantumChest tile) { - super(new ContainerBuilder().player(player.inventory).inventory(true).hotbar(true).addInventory().tile(tile) + super(new ContainerBuilder().player(player.inventory).inventory(8, 64).hotbar(8, 152).addInventory().tile(tile) .slot(0, 80, 17).outputSlot(1, 80, 53).fakeSlot(2, 59, 42).addInventory().create()); this.xSize = 176; this.ySize = 167;