From 000b84e87eaedb94fb87ccb11e376c51f99a1d07 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Wed, 10 Jan 2024 17:41:07 +0100 Subject: Added Energy Condenser --- .../mc/eris_alchemy/menu/EnergyCondenserMenu.java | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/main/java/lv/enes/mc/eris_alchemy/menu/EnergyCondenserMenu.java (limited to 'src/main/java/lv/enes/mc/eris_alchemy/menu/EnergyCondenserMenu.java') diff --git a/src/main/java/lv/enes/mc/eris_alchemy/menu/EnergyCondenserMenu.java b/src/main/java/lv/enes/mc/eris_alchemy/menu/EnergyCondenserMenu.java new file mode 100644 index 0000000..bdba77b --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/menu/EnergyCondenserMenu.java @@ -0,0 +1,60 @@ +package lv.enes.mc.eris_alchemy.menu; + +import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry; +import lv.enes.mc.eris_alchemy.block.entity.EnergyCondenserEntity; +import lv.enes.mc.eris_alchemy.utils.SyncedValue.SyncedDouble; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.Container; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.Slot; + +public class EnergyCondenserMenu extends ChestLikeMenu { + private static final int WIDTH = 13; + private static final int HEIGHT = 7; + + private final SyncedDouble storedEmc; + + public EnergyCondenserMenu(int syncId, Inventory playerInventory, FriendlyByteBuf buf) { + this(syncId, playerInventory, new SimpleContainer(WIDTH * HEIGHT + 1), SyncedDouble.deserialize(buf)); + } + + public EnergyCondenserMenu(int syncId, Inventory playerInventory, EnergyCondenserEntity entity) { + this(syncId, playerInventory, entity, entity.getStoredEmcSyncer()); + } + + public EnergyCondenserMenu(int syncId, Inventory playerInventory, Container container, SyncedDouble storedEmc) { + super(ErisAlchemyRegistry.Menus.ENERGY_CONDENSER, syncId, playerInventory, container); + this.storedEmc = storedEmc; + } + + @Override + protected void addSlots(Inventory playerInventory) { + addSlot(new Slot(container, 0, 8, 7)); + + var xOff = 8; + var yOff = 28; + for (var y = 0; y < HEIGHT; y++) { + for (var x = 0; x < WIDTH; x++) { + addSlot(new Slot(container, y * WIDTH + x + 1, xOff + x * 18, yOff + y * 18)); + } + } + + addPlayerInventorySlots(playerInventory, 44, 157); + addPlayerHotbarSlots(playerInventory, 44, 213); + } + + @Override + protected int getQuickMoveStart() { + return 1; + } + + @Override + protected int getRequiredSize() { + return WIDTH * HEIGHT + 1; + } + + public double getStoredEmc() { + return storedEmc.getValue(); + } +} -- cgit v1.2.3