Cleanup some ContainerBuilder code
This commit is contained in:
parent
0f172ddf52
commit
89d3e8538b
6 changed files with 22 additions and 86 deletions
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
|
@ -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());
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue