From 916bf22b6ae36713b0a9156603fa97d70b6c9243 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Wed, 10 Jan 2024 02:16:42 +0100 Subject: Move out common chest logic to separate files also in client code --- .../eris_alchemy/client/AlchemicalChestScreen.java | 26 ++++++------ .../mc/eris_alchemy/client/ChestLikeScreen.java | 46 ++++++++++++++++++++++ 2 files changed, 57 insertions(+), 15 deletions(-) create mode 100644 src/main/java/lv/enes/mc/eris_alchemy/client/ChestLikeScreen.java diff --git a/src/main/java/lv/enes/mc/eris_alchemy/client/AlchemicalChestScreen.java b/src/main/java/lv/enes/mc/eris_alchemy/client/AlchemicalChestScreen.java index 319dea8..0e0f029 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/client/AlchemicalChestScreen.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/client/AlchemicalChestScreen.java @@ -2,13 +2,11 @@ package lv.enes.mc.eris_alchemy.client; import lv.enes.mc.eris_alchemy.ErisAlchemy; import lv.enes.mc.eris_alchemy.menu.AlchemicalChestMenu; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Inventory; -public class AlchemicalChestScreen extends AbstractContainerScreen { +public class AlchemicalChestScreen extends ChestLikeScreen { public static final ResourceLocation TEXTURE = new ResourceLocation(ErisAlchemy.ID, "textures/gui/container/alchemical_chest.png"); @@ -17,27 +15,25 @@ public class AlchemicalChestScreen extends AbstractContainerScreen extends AbstractContainerScreen { + public ChestLikeScreen(M menu, Inventory inventory, Component title) { + super(menu, inventory, title); + + imageWidth = getTextureWidth(); + imageHeight = getTextureHeight(); + } + + protected abstract ResourceLocation getTexture(); + protected abstract int getTextureWidth(); + protected abstract int getTextureHeight(); + + protected boolean shouldRenderLabels() { + return true; + } + + @Override + public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { + renderBackground(graphics); + super.render(graphics, mouseX, mouseY, delta); + renderTooltip(graphics, mouseX, mouseY); + } + + @Override + protected void renderBg(GuiGraphics graphics, float delta, int mouseX, int mouseY) { + int x = (width - imageWidth) / 2; + int y = (height - imageHeight) / 2; + graphics.blit(getTexture(), x, y, 0, 0, imageWidth, imageHeight); + } + + @Override + protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) { + if (shouldRenderLabels()) { + super.renderLabels(graphics, mouseX, mouseY); + } + } +} -- cgit v1.2.3