summaryrefslogtreecommitdiff
path: root/src/main/java/lv/enes/mc/eris_alchemy/menu/ChestLikeBlockMenu.java
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2024-01-10 17:41:07 +0100
committerGravatar Uko Kokņevičs2024-01-10 17:41:07 +0100
commit000b84e87eaedb94fb87ccb11e376c51f99a1d07 (patch)
treedd9519e7dadf613a71e01b04cac7be9c121a9f18 /src/main/java/lv/enes/mc/eris_alchemy/menu/ChestLikeBlockMenu.java
parentMove out common chest logic to separate files also in client code (diff)
downloadmc-eris-alchemy-000b84e87eaedb94fb87ccb11e376c51f99a1d07.tar.gz
mc-eris-alchemy-000b84e87eaedb94fb87ccb11e376c51f99a1d07.tar.xz
mc-eris-alchemy-000b84e87eaedb94fb87ccb11e376c51f99a1d07.zip
Added Energy Condenser
Diffstat (limited to 'src/main/java/lv/enes/mc/eris_alchemy/menu/ChestLikeBlockMenu.java')
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/menu/ChestLikeBlockMenu.java67
1 files changed, 0 insertions, 67 deletions
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/menu/ChestLikeBlockMenu.java b/src/main/java/lv/enes/mc/eris_alchemy/menu/ChestLikeBlockMenu.java
deleted file mode 100644
index 897abe9..0000000
--- a/src/main/java/lv/enes/mc/eris_alchemy/menu/ChestLikeBlockMenu.java
+++ /dev/null
@@ -1,67 +0,0 @@
1package lv.enes.mc.eris_alchemy.menu;
2
3import jakarta.annotation.Nonnull;
4import net.minecraft.world.Container;
5import net.minecraft.world.entity.player.Inventory;
6import net.minecraft.world.entity.player.Player;
7import net.minecraft.world.inventory.AbstractContainerMenu;
8import net.minecraft.world.inventory.MenuType;
9import net.minecraft.world.item.ItemStack;
10
11public abstract class ChestLikeBlockMenu extends AbstractContainerMenu {
12 protected final Container container;
13
14 public ChestLikeBlockMenu(
15 MenuType<? extends ChestLikeBlockMenu> type,
16 int syncId,
17 Inventory playerInventory,
18 Container container
19 ) {
20 super(type, syncId);
21 checkContainerSize(container, getRequiredSize());
22 this.container = container;
23 container.startOpen(playerInventory.player);
24 addSlots(playerInventory);
25 }
26
27 protected abstract void addSlots(Inventory playerInventory);
28 protected abstract int getRequiredSize();
29
30 public Container getContainer() {
31 return container;
32 }
33
34 @Nonnull
35 @Override
36 public ItemStack quickMoveStack(Player player, int fromIndex) {
37 var newStack = ItemStack.EMPTY;
38 var slot = slots.get(fromIndex);
39 if (!slot.hasItem()) {
40 return newStack;
41 }
42
43 var originalStack = slot.getItem();
44 newStack = originalStack.copy();
45
46 if (fromIndex < container.getContainerSize()) {
47 if (!moveItemStackTo(originalStack, container.getContainerSize(), slots.size(), true)) {
48 return ItemStack.EMPTY;
49 }
50 } else if (!moveItemStackTo(originalStack, 0, container.getContainerSize(), false)) {
51 return ItemStack.EMPTY;
52 }
53
54 if (originalStack.isEmpty()) {
55 slot.setByPlayer(ItemStack.EMPTY);
56 } else {
57 slot.setChanged();
58 }
59
60 return newStack;
61 }
62
63 @Override
64 public boolean stillValid(Player player) {
65 return container.stillValid(player);
66 }
67}