diff options
Diffstat (limited to 'src/main/java/lv/enes/mc/eris_alchemy/client')
5 files changed, 64 insertions, 12 deletions
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 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.client; | 1 | package lv.enes.mc.eris_alchemy.client; |
| 2 | 2 | ||
| 3 | import lv.enes.mc.eris_alchemy.menu.ChestLikeBlockMenu; | 3 | import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; |
| 4 | import net.minecraft.client.gui.GuiGraphics; | 4 | import net.minecraft.client.gui.GuiGraphics; |
| 5 | import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; | 5 | import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; |
| 6 | import net.minecraft.network.chat.Component; | 6 | import net.minecraft.network.chat.Component; |
| 7 | import net.minecraft.resources.ResourceLocation; | 7 | import net.minecraft.resources.ResourceLocation; |
| 8 | import net.minecraft.world.entity.player.Inventory; | 8 | import net.minecraft.world.entity.player.Inventory; |
| 9 | 9 | ||
| 10 | public abstract class ChestLikeScreen<M extends ChestLikeBlockMenu> extends AbstractContainerScreen<M> { | 10 | public abstract class ChestLikeScreen<M extends ChestLikeMenu> extends AbstractContainerScreen<M> { |
| 11 | public ChestLikeScreen(M menu, Inventory inventory, Component title) { | 11 | public ChestLikeScreen(M menu, Inventory inventory, Component title) { |
| 12 | super(menu, inventory, title); | 12 | super(menu, inventory, title); |
| 13 | 13 | ||
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 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.client; | ||
| 2 | |||
| 3 | import lv.enes.mc.eris_alchemy.EMC; | ||
| 4 | import lv.enes.mc.eris_alchemy.ErisAlchemy; | ||
| 5 | import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; | ||
| 6 | import net.minecraft.client.gui.GuiGraphics; | ||
| 7 | import net.minecraft.network.chat.Component; | ||
| 8 | import net.minecraft.resources.ResourceLocation; | ||
| 9 | import net.minecraft.world.entity.player.Inventory; | ||
| 10 | |||
| 11 | public class EnergyCondenserScreen extends ChestLikeScreen<EnergyCondenserMenu> { | ||
| 12 | public static final ResourceLocation TEXTURE = | ||
| 13 | new ResourceLocation(ErisAlchemy.ID, "textures/gui/container/energy_condenser.png"); | ||
| 14 | |||
| 15 | public static final int TEXTURE_WIDTH = 248; | ||
| 16 | public static final int TEXTURE_HEIGHT = 237; | ||
| 17 | |||
| 18 | public EnergyCondenserScreen(EnergyCondenserMenu menu, Inventory inventory, Component title) { | ||
| 19 | super(menu, inventory, title); | ||
| 20 | } | ||
| 21 | |||
| 22 | @Override | ||
| 23 | protected ResourceLocation getTexture() { | ||
| 24 | return TEXTURE; | ||
| 25 | } | ||
| 26 | |||
| 27 | @Override | ||
| 28 | protected int getTextureWidth() { | ||
| 29 | return TEXTURE_WIDTH; | ||
| 30 | } | ||
| 31 | |||
| 32 | @Override | ||
| 33 | protected int getTextureHeight() { | ||
| 34 | return TEXTURE_HEIGHT; | ||
| 35 | } | ||
| 36 | |||
| 37 | @Override | ||
| 38 | protected void renderLabels(GuiGraphics graphics, int mouseX, int mouseY) { | ||
| 39 | graphics.drawString(font, EMC.formatEmc(menu.getStoredEmc()), 28, 6, 0xFFFFFF); | ||
| 40 | } | ||
| 41 | |||
| 42 | @Override | ||
| 43 | protected boolean shouldRenderLabels() { | ||
| 44 | return false; | ||
| 45 | } | ||
| 46 | } | ||
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; | |||
| 9 | import org.quiltmc.qsl.base.api.entrypoint.client.ClientModInitializer; | 9 | import org.quiltmc.qsl.base.api.entrypoint.client.ClientModInitializer; |
| 10 | import org.quiltmc.qsl.tooltip.api.client.ItemTooltipCallback; | 10 | import org.quiltmc.qsl.tooltip.api.client.ItemTooltipCallback; |
| 11 | 11 | ||
| 12 | import java.text.DecimalFormat; | ||
| 13 | |||
| 14 | @SuppressWarnings("unused") | 12 | @SuppressWarnings("unused") |
| 15 | public class ErisAlchemyClient implements ClientModInitializer { | 13 | public class ErisAlchemyClient implements ClientModInitializer { |
| 16 | @Override | 14 | @Override |
| @@ -19,14 +17,10 @@ public class ErisAlchemyClient implements ClientModInitializer { | |||
| 19 | ErisAlchemyClientRegistry.ItemRenderers.consume(BuiltinItemRendererRegistry.INSTANCE::register); | 17 | ErisAlchemyClientRegistry.ItemRenderers.consume(BuiltinItemRendererRegistry.INSTANCE::register); |
| 20 | ErisAlchemyClientRegistry.MenuScreens.consume(MenuScreens::register); | 18 | ErisAlchemyClientRegistry.MenuScreens.consume(MenuScreens::register); |
| 21 | 19 | ||
| 22 | // MenuScreens.register(ErisAlchemyRegistry.Menus.ALCHEMICAL_CHEST, AlchemicalChestScreen::new); | ||
| 23 | |||
| 24 | var doubleFormat = new DecimalFormat("0"); | ||
| 25 | doubleFormat.setMaximumFractionDigits(1); | ||
| 26 | ItemTooltipCallback.EVENT.register((stack, player, context, tooltip) -> { | 20 | ItemTooltipCallback.EVENT.register((stack, player, context, tooltip) -> { |
| 27 | var world = player == null ? null : player.level(); | 21 | var world = player == null ? null : player.level(); |
| 28 | var emc = EMC.getInstance(world).get(stack.getItem()); | 22 | var emc = EMC.getInstance(world).get(stack); |
| 29 | emc.ifPresent(value -> tooltip.add(Component.literal("EMC %s".formatted(doubleFormat.format(value))))); | 23 | emc.ifPresent(value -> tooltip.add(Component.literal("EMC %s".formatted(EMC.formatEmc(value))))); |
| 30 | }); | 24 | }); |
| 31 | } | 25 | } |
| 32 | } | 26 | } |
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 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.client; | 1 | package lv.enes.mc.eris_alchemy.client; |
| 2 | 2 | ||
| 3 | import lv.enes.mc.eris_alchemy.block.entity.AlchemicalChestBlockEntity; | 3 | import lv.enes.mc.eris_alchemy.block.entity.AlchemicalChestEntity; |
| 4 | import lv.enes.mc.eris_alchemy.block.entity.EnergyCondenserEntity; | ||
| 4 | import net.fabricmc.fabric.api.client.rendering.v1.BuiltinItemRendererRegistry.DynamicItemRenderer; | 5 | import net.fabricmc.fabric.api.client.rendering.v1.BuiltinItemRendererRegistry.DynamicItemRenderer; |
| 5 | import net.minecraft.client.gui.screens.MenuScreens.ScreenConstructor; | 6 | import net.minecraft.client.gui.screens.MenuScreens.ScreenConstructor; |
| 6 | import net.minecraft.client.gui.screens.Screen; | 7 | import net.minecraft.client.gui.screens.Screen; |
| @@ -54,6 +55,7 @@ public final class ErisAlchemyClientRegistry { | |||
| 54 | 55 | ||
| 55 | static { | 56 | static { |
| 56 | register(BlockEntities.ALCHEMICAL_CHEST, ChestRenderer::new); | 57 | register(BlockEntities.ALCHEMICAL_CHEST, ChestRenderer::new); |
| 58 | register(BlockEntities.ENERGY_CONDENSER, ChestRenderer::new); | ||
| 57 | } | 59 | } |
| 58 | } | 60 | } |
| 59 | 61 | ||
| @@ -73,7 +75,11 @@ public final class ErisAlchemyClientRegistry { | |||
| 73 | static { | 75 | static { |
| 74 | register( | 76 | register( |
| 75 | Items.ALCHEMICAL_CHEST, | 77 | Items.ALCHEMICAL_CHEST, |
| 76 | new ChestItemRenderer<>(Blocks.ALCHEMICAL_CHEST, AlchemicalChestBlockEntity::new)::renderByItem | 78 | new ChestItemRenderer<>(Blocks.ALCHEMICAL_CHEST, AlchemicalChestEntity::new)::renderByItem |
| 79 | ); | ||
| 80 | register( | ||
| 81 | Items.ENERGY_CONDENSER, | ||
| 82 | new ChestItemRenderer<>(Blocks.ENERGY_CONDENSER, EnergyCondenserEntity::new)::renderByItem | ||
| 77 | ); | 83 | ); |
| 78 | } | 84 | } |
| 79 | } | 85 | } |
| @@ -111,6 +117,7 @@ public final class ErisAlchemyClientRegistry { | |||
| 111 | 117 | ||
| 112 | static { | 118 | static { |
| 113 | register(Menus.ALCHEMICAL_CHEST, AlchemicalChestScreen::new); | 119 | register(Menus.ALCHEMICAL_CHEST, AlchemicalChestScreen::new); |
| 120 | register(Menus.ENERGY_CONDENSER, EnergyCondenserScreen::new); | ||
| 114 | } | 121 | } |
| 115 | } | 122 | } |
| 116 | } | 123 | } |
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 { | |||
| 11 | new ResourceLocation(ErisAlchemy.ID, "entity/chest/alchemical_chest") | 11 | new ResourceLocation(ErisAlchemy.ID, "entity/chest/alchemical_chest") |
| 12 | ); | 12 | ); |
| 13 | 13 | ||
| 14 | public static final Material ENERGY_CONDENSER = new Material( | ||
| 15 | Sheets.CHEST_SHEET, | ||
| 16 | new ResourceLocation(ErisAlchemy.ID, "entity/chest/energy_condenser") | ||
| 17 | ); | ||
| 18 | |||
| 14 | private ErisAlchemyMaterials() {} | 19 | private ErisAlchemyMaterials() {} |
| 15 | } | 20 | } |