From 000b84e87eaedb94fb87ccb11e376c51f99a1d07 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Wed, 10 Jan 2024 17:41:07 +0100 Subject: Added Energy Condenser --- .../mc/eris_alchemy/client/ChestLikeScreen.java | 4 +- .../eris_alchemy/client/EnergyCondenserScreen.java | 46 ++++++++++++++++++++++ .../mc/eris_alchemy/client/ErisAlchemyClient.java | 10 +---- .../client/ErisAlchemyClientRegistry.java | 11 +++++- .../eris_alchemy/client/ErisAlchemyMaterials.java | 5 +++ 5 files changed, 64 insertions(+), 12 deletions(-) create mode 100644 src/main/java/lv/enes/mc/eris_alchemy/client/EnergyCondenserScreen.java (limited to 'src/main/java/lv/enes/mc/eris_alchemy/client') 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 index c98b356..b8967b1 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/client/ChestLikeScreen.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/client/ChestLikeScreen.java @@ -1,13 +1,13 @@ package lv.enes.mc.eris_alchemy.client; -import lv.enes.mc.eris_alchemy.menu.ChestLikeBlockMenu; +import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; 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 abstract class ChestLikeScreen extends AbstractContainerScreen { public ChestLikeScreen(M menu, Inventory inventory, Component title) { super(menu, inventory, title); diff --git a/src/main/java/lv/enes/mc/eris_alchemy/client/EnergyCondenserScreen.java b/src/main/java/lv/enes/mc/eris_alchemy/client/EnergyCondenserScreen.java new file mode 100644 index 0000000..b6762c8 --- /dev/null +++ b/src/main/java/lv/enes/mc/eris_alchemy/client/EnergyCondenserScreen.java @@ -0,0 +1,46 @@ +package lv.enes.mc.eris_alchemy.client; + +import lv.enes.mc.eris_alchemy.EMC; +import lv.enes.mc.eris_alchemy.ErisAlchemy; +import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; + +public class EnergyCondenserScreen extends ChestLikeScreen { + public static final ResourceLocation TEXTURE = + new ResourceLocation(ErisAlchemy.ID, "textures/gui/container/energy_condenser.png"); + + public static final int TEXTURE_WIDTH = 248; + public static final int TEXTURE_HEIGHT = 237; + + public EnergyCondenserScreen(EnergyCondenserMenu menu, Inventory inventory, Component title) { + super(menu, inventory, title); + } + + @Override + protected ResourceLocation getTexture() { + return TEXTURE; + } + + @Override + protected int getTextureWidth() { + return TEXTURE_WIDTH; + } + + @Override + protected int getTextureHeight() { + return TEXTURE_HEIGHT; + } + + @Override + protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) { + graphics.drawString(font, EMC.formatEmc(menu.getStoredEmc()), 28, 6, 0xFFFFFF); + } + + @Override + protected boolean shouldRenderLabels() { + return false; + } +} diff --git a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClient.java b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClient.java index 86cc467..a69d2e1 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClient.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClient.java @@ -9,8 +9,6 @@ import org.quiltmc.loader.api.ModContainer; import org.quiltmc.qsl.base.api.entrypoint.client.ClientModInitializer; import org.quiltmc.qsl.tooltip.api.client.ItemTooltipCallback; -import java.text.DecimalFormat; - @SuppressWarnings("unused") public class ErisAlchemyClient implements ClientModInitializer { @Override @@ -19,14 +17,10 @@ public class ErisAlchemyClient implements ClientModInitializer { ErisAlchemyClientRegistry.ItemRenderers.consume(BuiltinItemRendererRegistry.INSTANCE::register); ErisAlchemyClientRegistry.MenuScreens.consume(MenuScreens::register); - // MenuScreens.register(ErisAlchemyRegistry.Menus.ALCHEMICAL_CHEST, AlchemicalChestScreen::new); - - var doubleFormat = new DecimalFormat("0"); - doubleFormat.setMaximumFractionDigits(1); ItemTooltipCallback.EVENT.register((stack, player, context, tooltip) -> { var world = player == null ? null : player.level(); - var emc = EMC.getInstance(world).get(stack.getItem()); - emc.ifPresent(value -> tooltip.add(Component.literal("EMC %s".formatted(doubleFormat.format(value))))); + var emc = EMC.getInstance(world).get(stack); + emc.ifPresent(value -> tooltip.add(Component.literal("EMC %s".formatted(EMC.formatEmc(value))))); }); } } diff --git a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClientRegistry.java b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClientRegistry.java index 3680fd5..30c6690 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClientRegistry.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyClientRegistry.java @@ -1,6 +1,7 @@ package lv.enes.mc.eris_alchemy.client; -import lv.enes.mc.eris_alchemy.block.entity.AlchemicalChestBlockEntity; +import lv.enes.mc.eris_alchemy.block.entity.AlchemicalChestEntity; +import lv.enes.mc.eris_alchemy.block.entity.EnergyCondenserEntity; import net.fabricmc.fabric.api.client.rendering.v1.BuiltinItemRendererRegistry.DynamicItemRenderer; import net.minecraft.client.gui.screens.MenuScreens.ScreenConstructor; import net.minecraft.client.gui.screens.Screen; @@ -54,6 +55,7 @@ public final class ErisAlchemyClientRegistry { static { register(BlockEntities.ALCHEMICAL_CHEST, ChestRenderer::new); + register(BlockEntities.ENERGY_CONDENSER, ChestRenderer::new); } } @@ -73,7 +75,11 @@ public final class ErisAlchemyClientRegistry { static { register( Items.ALCHEMICAL_CHEST, - new ChestItemRenderer<>(Blocks.ALCHEMICAL_CHEST, AlchemicalChestBlockEntity::new)::renderByItem + new ChestItemRenderer<>(Blocks.ALCHEMICAL_CHEST, AlchemicalChestEntity::new)::renderByItem + ); + register( + Items.ENERGY_CONDENSER, + new ChestItemRenderer<>(Blocks.ENERGY_CONDENSER, EnergyCondenserEntity::new)::renderByItem ); } } @@ -111,6 +117,7 @@ public final class ErisAlchemyClientRegistry { static { register(Menus.ALCHEMICAL_CHEST, AlchemicalChestScreen::new); + register(Menus.ENERGY_CONDENSER, EnergyCondenserScreen::new); } } } diff --git a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyMaterials.java b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyMaterials.java index 15d9209..686d83f 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyMaterials.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyMaterials.java @@ -11,5 +11,10 @@ public final class ErisAlchemyMaterials { new ResourceLocation(ErisAlchemy.ID, "entity/chest/alchemical_chest") ); + public static final Material ENERGY_CONDENSER = new Material( + Sheets.CHEST_SHEET, + new ResourceLocation(ErisAlchemy.ID, "entity/chest/energy_condenser") + ); + private ErisAlchemyMaterials() {} } -- cgit v1.2.3