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 --- .../mc/eris_alchemy/client/ChestLikeScreen.java | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/lv/enes/mc/eris_alchemy/client/ChestLikeScreen.java (limited to 'src/main/java/lv/enes/mc/eris_alchemy/client/ChestLikeScreen.java') diff --git a/src/main/java/lv/enes/mc/eris_alchemy/client/ChestLikeScreen.java b/src/main/java/lv/enes/mc/eris_alchemy/client/ChestLikeScreen.java new file mode 100644 index 0000000..c98b356 --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/client/ChestLikeScreen.java @@ -0,0 +1,46 @@ +package lv.enes.mc.eris_alchemy.client; + +import lv.enes.mc.eris_alchemy.menu.ChestLikeBlockMenu; +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 abstract class ChestLikeScreen 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