From 89960620c804409bfe095d4c04a53233dd09aa7d Mon Sep 17 00:00:00 2001 From: yuvalK Date: Fri, 26 Apr 2024 08:16:08 +0300 Subject: [PATCH] Fixed incorrect display of energy capacity --- .../client/screen/ReaperGeneratorScreen.java | 14 ++++++++++++-- .../reaper/common/block/ReaperGeneratorData.java | 5 ++++- .../reaper/common/block/ReaperGeneratorMenu.java | 4 +++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/earth/terrarium/reaper/client/screen/ReaperGeneratorScreen.java b/common/src/main/java/earth/terrarium/reaper/client/screen/ReaperGeneratorScreen.java index 031cffc..ab09026 100644 --- a/common/src/main/java/earth/terrarium/reaper/client/screen/ReaperGeneratorScreen.java +++ b/common/src/main/java/earth/terrarium/reaper/client/screen/ReaperGeneratorScreen.java @@ -47,7 +47,8 @@ protected void renderBg(@NotNull PoseStack matrixStack, float f, int i, int j) { RenderSystem.setShaderTexture(0, TEXTURE); RenderSystem.setShaderColor(1, 1, 1, 1f); blit(matrixStack, leftPos, topPos, 0, 0, imageWidth, imageHeight); - int energyBarHeight = Mth.clamp((int) (66F * (getEnergyLevel().get() / (float) 1000000)), 0, 66); + int energyBarHeight = Mth.clamp((int) (66F * (getEnergyLevel().get() / (float) getEnergyCapacity().get())), 0, + 66); blit(matrixStack, leftPos + 133, topPos + 19 + (66 - energyBarHeight), 176, 66 - energyBarHeight, 12, energyBarHeight); int tickBarHeight = Mth.clamp((int) (66F * (getTicks().get() / (getMaxTicks().get() + 0.001f))), 0, 66); blit(matrixStack, leftPos + 119, topPos + 19 + (66 - tickBarHeight), 188, 66 - tickBarHeight, 6, tickBarHeight); @@ -57,6 +58,10 @@ public Supplier getEnergyLevel() { return () -> menu.getContainerData().get(ReaperGeneratorData.ENERGY); } + public Supplier getEnergyCapacity() { + return () -> menu.getContainerData().get(ReaperGeneratorData.CAPACITY); + } + public Supplier getTicks() { return () -> menu.getContainerData().get(ReaperGeneratorData.COOLDOWN); } @@ -78,7 +83,12 @@ public void render(@NotNull PoseStack poseStack, int mouseX, int mouseY, float f super.render(poseStack, mouseX, mouseY, f); this.renderTooltip(poseStack, mouseX, mouseY); if(mouseX > leftPos + 130 && mouseX < 147 + leftPos && mouseY > 16 + topPos && mouseY < 87 + topPos) { - this.renderTooltip(poseStack, Component.translatable("gui." + Reaper.MODID + ".energy_tooltip", Component.literal(String.valueOf(getEnergyLevel().get())).withStyle(ChatFormatting.GOLD), Component.literal("1000000").withStyle(ChatFormatting.GOLD)).withStyle(ChatFormatting.AQUA), mouseX, mouseY); + this.renderTooltip(poseStack, + Component.translatable("gui." + Reaper.MODID + ".energy_tooltip", + Component.literal(String.valueOf(getEnergyLevel().get())).withStyle(ChatFormatting.GOLD), + Component.literal(String.valueOf(getEnergyCapacity().get())).withStyle(ChatFormatting.GOLD)) + .withStyle(ChatFormatting.AQUA), + mouseX, mouseY); } else if(mouseX > leftPos + 116 && mouseX < 127 + leftPos && mouseY > 16 + topPos && mouseY < 87 + topPos) { this.renderTooltip(poseStack, Component.translatable("gui." + Reaper.MODID + ".work_tooltip", Component.literal(String.valueOf(getTicks().get())).withStyle(ChatFormatting.GOLD), Component.literal(String.valueOf(getMaxTicks().get())).withStyle(ChatFormatting.GOLD)).withStyle(ChatFormatting.AQUA), mouseX, mouseY); } diff --git a/common/src/main/java/earth/terrarium/reaper/common/block/ReaperGeneratorData.java b/common/src/main/java/earth/terrarium/reaper/common/block/ReaperGeneratorData.java index 7a07c59..c6a4b49 100644 --- a/common/src/main/java/earth/terrarium/reaper/common/block/ReaperGeneratorData.java +++ b/common/src/main/java/earth/terrarium/reaper/common/block/ReaperGeneratorData.java @@ -11,6 +11,8 @@ public class ReaperGeneratorData implements ContainerData { public static final int PRODUCTION = 3; public static final int MAX_COOLDOWN = 4; public static final int RANGE = 5; + public static final int CAPACITY = 6; + public static final int COUNT = 7; public ReaperGeneratorData(ReaperGeneratorBlockEntity reaperGeneratorBlockEntity) { this.gen = reaperGeneratorBlockEntity; @@ -25,6 +27,7 @@ public int get(int i) { case PRODUCTION -> gen.getEnergyGeneration(); case MAX_COOLDOWN -> gen.getMaxCooldown(); case RANGE -> gen.getMaxRange(); + case CAPACITY -> (int) gen.getEnergyStorage().getMaxCapacity(); default -> 0; }; } @@ -35,6 +38,6 @@ public void set(int i, int j) { @Override public int getCount() { - return 6; + return COUNT; } } diff --git a/common/src/main/java/earth/terrarium/reaper/common/block/ReaperGeneratorMenu.java b/common/src/main/java/earth/terrarium/reaper/common/block/ReaperGeneratorMenu.java index 3cb3be6..cb9817e 100644 --- a/common/src/main/java/earth/terrarium/reaper/common/block/ReaperGeneratorMenu.java +++ b/common/src/main/java/earth/terrarium/reaper/common/block/ReaperGeneratorMenu.java @@ -1,5 +1,6 @@ package earth.terrarium.reaper.common.block; +import earth.terrarium.reaper.Reaper; import earth.terrarium.reaper.common.blockentity.ReaperGeneratorBlockEntity; import earth.terrarium.reaper.common.registry.ReaperRegistry; import net.minecraft.network.FriendlyByteBuf; @@ -38,7 +39,8 @@ public ReaperGeneratorMenu(Container container, ContainerData data, int i, Inven } public ReaperGeneratorMenu(int syncId, Inventory inventory, FriendlyByteBuf buf) { - this(new SimpleContainer(8), new SimpleContainerData(6), syncId, inventory, (ReaperGeneratorBlockEntity) inventory.player.level.getBlockEntity(buf.readBlockPos())); + this(new SimpleContainer(8), new SimpleContainerData(ReaperGeneratorData.COUNT), syncId, inventory, + (ReaperGeneratorBlockEntity) inventory.player.level.getBlockEntity(buf.readBlockPos())); } @Override