From c27088bb3ba8e83d9fd4b5bd0d944be54c1482b2 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Wed, 10 Jan 2024 02:05:34 +0100 Subject: Move out common chest logic to separate files --- .../mc/eris_alchemy/menu/AlchemicalChestMenu.java | 58 ++++------------------ 1 file changed, 9 insertions(+), 49 deletions(-) (limited to 'src/main/java/lv/enes/mc/eris_alchemy/menu/AlchemicalChestMenu.java') diff --git a/src/main/java/lv/enes/mc/eris_alchemy/menu/AlchemicalChestMenu.java b/src/main/java/lv/enes/mc/eris_alchemy/menu/AlchemicalChestMenu.java index a464f3f..1dc3364 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/menu/AlchemicalChestMenu.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/menu/AlchemicalChestMenu.java @@ -1,38 +1,31 @@ package lv.enes.mc.eris_alchemy.menu; -import jakarta.annotation.Nonnull; import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry; import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.Slot; -import net.minecraft.world.item.ItemStack; -public class AlchemicalChestMenu extends AbstractContainerMenu { +public class AlchemicalChestMenu extends ChestLikeBlockMenu { private static final int WIDTH = 13; private static final int HEIGHT = 8; - private final Container container; - public AlchemicalChestMenu(int syncId, Inventory playerInventory) { this(syncId, playerInventory, new SimpleContainer(WIDTH * HEIGHT)); } - public AlchemicalChestMenu(int syncId, Inventory playerInventory, Container inventory) { - super(ErisAlchemyRegistry.Menus.ALCHEMICAL_CHEST, syncId); - checkContainerSize(inventory, WIDTH * HEIGHT); - - this.container = inventory; - inventory.startOpen(playerInventory.player); + public AlchemicalChestMenu(int syncId, Inventory playerInventory, Container container) { + super(ErisAlchemyRegistry.Menus.ALCHEMICAL_CHEST, syncId, playerInventory, container); + } + @Override + protected void addSlots(Inventory playerInventory) { var x_off = 8; var y_off = 8; for (var y = 0; y < HEIGHT; y++) { for (var x = 0; x < WIDTH; x++ ) { - addSlot(new Slot(inventory, y * WIDTH + x, x_off + x * 18, y_off + y * 18)); + addSlot(new Slot(container, y * WIDTH + x, x_off + x * 18, y_off + y * 18)); } } @@ -52,41 +45,8 @@ public class AlchemicalChestMenu extends AbstractContainerMenu { } } - public Container getContainer() { - return container; - } - - @Nonnull - @Override - public ItemStack quickMoveStack(Player player, int fromIndex) { - var newStack = ItemStack.EMPTY; - var slot = slots.get(fromIndex); - if (!slot.hasItem()) { - return newStack; - } - - var originalStack = slot.getItem(); - newStack = originalStack.copy(); - - if (fromIndex < container.getContainerSize()) { - if (!moveItemStackTo(originalStack, container.getContainerSize(), slots.size(), true)) { - return ItemStack.EMPTY; - } - } else if (!moveItemStackTo(originalStack, 0, container.getContainerSize(), false)) { - return ItemStack.EMPTY; - } - - if (originalStack.isEmpty()) { - slot.setByPlayer(ItemStack.EMPTY); - } else { - slot.setChanged(); - } - - return newStack; - } - @Override - public boolean stillValid(Player player) { - return container.stillValid(player); + protected int getRequiredSize() { + return WIDTH * HEIGHT; } } -- cgit v1.2.3