summaryrefslogtreecommitdiff
path: root/src/main/java/lv/enes/mc/eris_alchemy/menu/EnergyCondenserMenu.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/lv/enes/mc/eris_alchemy/menu/EnergyCondenserMenu.java')
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/menu/EnergyCondenserMenu.java60
1 files changed, 60 insertions, 0 deletions
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 @@
1package lv.enes.mc.eris_alchemy.menu;
2
3import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry;
4import lv.enes.mc.eris_alchemy.block.entity.EnergyCondenserEntity;
5import lv.enes.mc.eris_alchemy.utils.SyncedValue.SyncedDouble;
6import net.minecraft.network.FriendlyByteBuf;
7import net.minecraft.world.Container;
8import net.minecraft.world.SimpleContainer;
9import net.minecraft.world.entity.player.Inventory;
10import net.minecraft.world.inventory.Slot;
11
12public class EnergyCondenserMenu extends ChestLikeMenu {
13 private static final int WIDTH = 13;
14 private static final int HEIGHT = 7;
15
16 private final SyncedDouble storedEmc;
17
18 public EnergyCondenserMenu(int syncId, Inventory playerInventory, FriendlyByteBuf buf) {
19 this(syncId, playerInventory, new SimpleContainer(WIDTH * HEIGHT + 1), SyncedDouble.deserialize(buf));
20 }
21
22 public EnergyCondenserMenu(int syncId, Inventory playerInventory, EnergyCondenserEntity entity) {
23 this(syncId, playerInventory, entity, entity.getStoredEmcSyncer());
24 }
25
26 public EnergyCondenserMenu(int syncId, Inventory playerInventory, Container container, SyncedDouble storedEmc) {
27 super(ErisAlchemyRegistry.Menus.ENERGY_CONDENSER, syncId, playerInventory, container);
28 this.storedEmc = storedEmc;
29 }
30
31 @Override
32 protected void addSlots(Inventory playerInventory) {
33 addSlot(new Slot(container, 0, 8, 7));
34
35 var xOff = 8;
36 var yOff = 28;
37 for (var y = 0; y < HEIGHT; y++) {
38 for (var x = 0; x < WIDTH; x++) {
39 addSlot(new Slot(container, y * WIDTH + x + 1, xOff + x * 18, yOff + y * 18));
40 }
41 }
42
43 addPlayerInventorySlots(playerInventory, 44, 157);
44 addPlayerHotbarSlots(playerInventory, 44, 213);
45 }
46
47 @Override
48 protected int getQuickMoveStart() {
49 return 1;
50 }
51
52 @Override
53 protected int getRequiredSize() {
54 return WIDTH * HEIGHT + 1;
55 }
56
57 public double getStoredEmc() {
58 return storedEmc.getValue();
59 }
60}