From 605d93eb522aa25a5fd1770c4e418b88e86c0d0b Mon Sep 17 00:00:00 2001 From: Mari023 <38946771+Mari023@users.noreply.github.com> Date: Mon, 30 Sep 2024 23:39:34 +0200 Subject: [PATCH] move ClientTerminalHandler back into CraftingTerminalHandler, there is no need for this to be its own class --- .../de/mari_023/ae2wtlib/AE2wtlibForge.java | 4 +- .../ae2wtlib/mixin/RestockRender.java | 5 +- .../networking/RestockAmountPacket.java | 7 +-- .../ae2wtlib/wct/ClientTerminalHandler.java | 55 ------------------- .../ae2wtlib/wct/CraftingTerminalHandler.java | 29 ++++++++++ 5 files changed, 36 insertions(+), 64 deletions(-) delete mode 100644 src/main/java/de/mari_023/ae2wtlib/wct/ClientTerminalHandler.java diff --git a/src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java b/src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java index 6b802224..a3027bd4 100644 --- a/src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java +++ b/src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java @@ -33,7 +33,7 @@ import de.mari_023.ae2wtlib.api.AE2wtlibAPI; import de.mari_023.ae2wtlib.api.terminal.ItemWT; import de.mari_023.ae2wtlib.networking.*; -import de.mari_023.ae2wtlib.wct.ClientTerminalHandler; +import de.mari_023.ae2wtlib.wct.CraftingTerminalHandler; @Mod(AE2wtlibAPI.MOD_NAME) @EventBusSubscriber @@ -150,6 +150,6 @@ public static void handle(ArrowLooseEvent event) { public static void handle(ClientTickEvent.Post event) { if (Minecraft.getInstance().player == null) return; - ClientTerminalHandler.get(Minecraft.getInstance().player).checkTerminal(); + CraftingTerminalHandler.getCraftingTerminalHandler(Minecraft.getInstance().player).checkTerminal(); } } diff --git a/src/main/java/de/mari_023/ae2wtlib/mixin/RestockRender.java b/src/main/java/de/mari_023/ae2wtlib/mixin/RestockRender.java index 356268db..a796b7d6 100644 --- a/src/main/java/de/mari_023/ae2wtlib/mixin/RestockRender.java +++ b/src/main/java/de/mari_023/ae2wtlib/mixin/RestockRender.java @@ -15,7 +15,7 @@ import appeng.util.ReadableNumberConverter; -import de.mari_023.ae2wtlib.wct.ClientTerminalHandler; +import de.mari_023.ae2wtlib.wct.CraftingTerminalHandler; @Mixin(value = GuiGraphics.class, remap = false) public abstract class RestockRender { @@ -26,7 +26,8 @@ public abstract class RestockRender { public void renderGuiItemOverlay(Font font, ItemStack stack, int x, int y, CallbackInfo ci) { if (Minecraft.getInstance().player == null || Minecraft.getInstance().player.isCreative()) return; - ClientTerminalHandler handler = ClientTerminalHandler.get(Minecraft.getInstance().player); + CraftingTerminalHandler handler = CraftingTerminalHandler + .getCraftingTerminalHandler(Minecraft.getInstance().player); if (!handler.isRestockEnabled() || stack.getCount() == 1 || !handler.isRestockAble(stack)) return; renderItemDecorations(font, stack, x, y, ReadableNumberConverter.format(handler.getAccessibleAmount(stack), 3)); diff --git a/src/main/java/de/mari_023/ae2wtlib/networking/RestockAmountPacket.java b/src/main/java/de/mari_023/ae2wtlib/networking/RestockAmountPacket.java index 6c2ec5ba..e651905d 100644 --- a/src/main/java/de/mari_023/ae2wtlib/networking/RestockAmountPacket.java +++ b/src/main/java/de/mari_023/ae2wtlib/networking/RestockAmountPacket.java @@ -4,7 +4,6 @@ import com.google.common.collect.Maps; -import net.minecraft.client.player.LocalPlayer; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.network.RegistryFriendlyByteBuf; @@ -15,7 +14,7 @@ import net.minecraft.world.item.Item; import de.mari_023.ae2wtlib.api.AE2wtlibAPI; -import de.mari_023.ae2wtlib.wct.ClientTerminalHandler; +import de.mari_023.ae2wtlib.wct.CraftingTerminalHandler; public record RestockAmountPacket(HashMap, Long> items) implements AE2wtlibPacket { public static final Type ID = new Type<>(AE2wtlibAPI.id("restock_amounts")); @@ -28,9 +27,7 @@ public record RestockAmountPacket(HashMap, Long> items) implements public void processPacketData(Player player) { HashMap map = Maps.newHashMapWithExpectedSize(items().size()); items().forEach((item, count) -> map.put(item.value(), count)); - if (!(player instanceof LocalPlayer localPlayer)) - return; - ClientTerminalHandler.get(localPlayer).setRestockAbleItems(map); + CraftingTerminalHandler.getCraftingTerminalHandler(player).setRestockAbleItems(map); } @Override diff --git a/src/main/java/de/mari_023/ae2wtlib/wct/ClientTerminalHandler.java b/src/main/java/de/mari_023/ae2wtlib/wct/ClientTerminalHandler.java deleted file mode 100644 index 966b5be2..00000000 --- a/src/main/java/de/mari_023/ae2wtlib/wct/ClientTerminalHandler.java +++ /dev/null @@ -1,55 +0,0 @@ -package de.mari_023.ae2wtlib.wct; - -import java.util.HashMap; - -import org.jetbrains.annotations.Nullable; - -import net.minecraft.client.player.LocalPlayer; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; - -import de.mari_023.ae2wtlib.api.AE2wtlibComponents; - -public class ClientTerminalHandler { - @Nullable - private static ClientTerminalHandler instance; - - private final Player player; - private final CraftingTerminalHandler craftingHandler; - private HashMap restockAbleItems = new HashMap<>(); - private boolean restockEnabled = false; - - public ClientTerminalHandler(Player player) { - this.player = player; - craftingHandler = CraftingTerminalHandler.getCraftingTerminalHandler(player); - } - - public static ClientTerminalHandler get(LocalPlayer player) { - if (instance == null || instance.player != player) - instance = new ClientTerminalHandler(player); - - return instance; - } - - public long getAccessibleAmount(ItemStack stack) { - return stack.getCount() - + (restockAbleItems.get(stack.getItem()) == null ? 0 : restockAbleItems.get(stack.getItem())); - } - - public boolean isRestockAble(ItemStack stack) { - return restockAbleItems.containsKey(stack.getItem()); - } - - public void setRestockAbleItems(HashMap items) { - restockAbleItems = items; - } - - public boolean isRestockEnabled() { - return restockEnabled; - } - - public void checkTerminal() { - restockEnabled = craftingHandler.getCraftingTerminal().getOrDefault(AE2wtlibComponents.RESTOCK, false); - } -} diff --git a/src/main/java/de/mari_023/ae2wtlib/wct/CraftingTerminalHandler.java b/src/main/java/de/mari_023/ae2wtlib/wct/CraftingTerminalHandler.java index d47862cd..14b03773 100644 --- a/src/main/java/de/mari_023/ae2wtlib/wct/CraftingTerminalHandler.java +++ b/src/main/java/de/mari_023/ae2wtlib/wct/CraftingTerminalHandler.java @@ -1,9 +1,12 @@ package de.mari_023.ae2wtlib.wct; +import java.util.HashMap; + import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import appeng.api.networking.IGrid; @@ -11,6 +14,7 @@ import appeng.menu.locator.ItemMenuHostLocator; import de.mari_023.ae2wtlib.AE2wtlibAdditionalComponents; +import de.mari_023.ae2wtlib.api.AE2wtlibComponents; import de.mari_023.ae2wtlib.api.terminal.WTMenuHost; import de.mari_023.ae2wtlib.api.terminal.WUTHandler; import de.mari_023.ae2wtlib.wct.magnet_card.MagnetHost; @@ -24,6 +28,8 @@ public class CraftingTerminalHandler { private ItemMenuHostLocator locator; @Nullable private MagnetHost magnetHost; + private HashMap restockAbleItems = new HashMap<>(); + private boolean restockEnabled = false; @ApiStatus.Internal public CraftingTerminalHandler(Player player) { @@ -38,6 +44,8 @@ protected void invalidateCache() { menuHost = null; locator = null; magnetHost = null; + restockAbleItems.clear(); + restockEnabled = false; } public ItemStack getCraftingTerminal() { @@ -116,4 +124,25 @@ public MagnetHost getMagnetHost() { } return magnetHost; } + + public long getAccessibleAmount(ItemStack stack) { + return stack.getCount() + + (restockAbleItems.get(stack.getItem()) == null ? 0 : restockAbleItems.get(stack.getItem())); + } + + public boolean isRestockAble(ItemStack stack) { + return restockAbleItems.containsKey(stack.getItem()); + } + + public void setRestockAbleItems(HashMap items) { + restockAbleItems = items; + } + + public boolean isRestockEnabled() { + return restockEnabled; + } + + public void checkTerminal() { + restockEnabled = getCraftingTerminal().getOrDefault(AE2wtlibComponents.RESTOCK, false); + } }