diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/Type63InfoOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/Type63InfoOverlay.java index 171d18184..cd5f2684b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/Type63InfoOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/Type63InfoOverlay.java @@ -5,7 +5,6 @@ import com.atsuishio.superbwarfare.component.ModDataComponents; import com.atsuishio.superbwarfare.entity.vehicle.Type63Entity; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.item.FiringParameters; -import com.atsuishio.superbwarfare.item.common.ammo.MediumRocketItem; import com.atsuishio.superbwarfare.tools.*; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.ChatFormatting; @@ -37,6 +36,10 @@ public class Type63InfoOverlay implements LayeredDraw.Layer { public static final ResourceLocation ID = Mod.loc("type_63_info"); + private static final ItemStack AP = new ItemStack(ModItems.MEDIUM_ROCKET_AP.get()); + private static final ItemStack HE = new ItemStack(ModItems.MEDIUM_ROCKET_HE.get()); + private static final ItemStack CM = new ItemStack(ModItems.MEDIUM_ROCKET_CM.get()); + @Override public void render(GuiGraphics guiGraphics, @NotNull DeltaTracker deltaTracker) { Minecraft mc = Minecraft.getInstance(); @@ -70,9 +73,9 @@ public class Type63InfoOverlay implements LayeredDraw.Layer { int type = items.get(i); ItemStack stack = switch (type) { - case 0 -> new ItemStack(ModItems.MEDIUM_ROCKET_AP.get()); - case 1 -> new ItemStack(ModItems.MEDIUM_ROCKET_HE.get()); - case 2 -> new ItemStack(ModItems.MEDIUM_ROCKET_CM.get()); + case 0 -> AP; + case 1 -> HE; + case 2 -> CM; default -> ItemStack.EMPTY; }; @@ -83,20 +86,27 @@ public class Type63InfoOverlay implements LayeredDraw.Layer { poseStack.pushPose(); float x = (float) point.x; float y = (float) point.y; - poseStack.translate(x, y, 0); - var component = Component.literal("[").append(stack.getHoverName()).append("]"); + var component = stack.getHoverName(); - if (!(stack.getItem() instanceof MediumRocketItem)) { - component = Component.literal("[").append(Component.translatable("tips.superbwarfare.barrel_empty")).append("]"); + if (stack.isEmpty()) { + component = Component.translatable("tips.superbwarfare.barrel_empty"); + int width = Minecraft.getInstance().font.width(component); + + poseStack.translate(x - width / 2F, y, 0); + guiGraphics.drawString(Minecraft.getInstance().font, component, 0, 0, -1, false); + } else { + int width = Minecraft.getInstance().font.width(component) + 20; + + poseStack.pushPose(); + poseStack.translate(x - width / 2F, y, 0); + guiGraphics.renderFakeItem(stack, 0, 0); + + poseStack.translate(20, 4, 0); + guiGraphics.drawString(Minecraft.getInstance().font, component, 0, 0, -1, false); } - int width = Minecraft.getInstance().font.width(component); - guiGraphics.drawString(Minecraft.getInstance().font, component, -width / 2, -4, -1, false); - poseStack.popPose(); - - } }