From 03950c631ea805f240f9d298700c79e189536520 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Sun, 9 Mar 2025 00:03:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=BD=BD=E5=85=B7=E4=B9=98?= =?UTF-8?q?=E5=91=98=E6=98=BE=E7=A4=BA=E7=9A=84=E7=8B=97=E7=89=8C=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/overlay/VehicleHudOverlay.java | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java index c28549904..9032ea94b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java @@ -33,6 +33,9 @@ import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import org.joml.Math; +import top.theillusivec4.curios.api.CuriosApi; + +import java.util.concurrent.atomic.AtomicReference; import static com.atsuishio.superbwarfare.client.RenderHelper.preciseBlit; import static com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay.*; @@ -460,11 +463,30 @@ public class VehicleHudOverlay { var passenger = passengers.get(i); int y = h - 50 - index * 12; - String name = passenger == null ? "---" : passenger.getName().getString(); - guiGraphics.drawString(Minecraft.getInstance().font, name, 22, y, 0x66ff00, true); - guiGraphics.drawString(Minecraft.getInstance().font, "[" + (i + 1) + "]", 80, y, 0x66ff00, true); + AtomicReference name = new AtomicReference<>("---"); - preciseBlit(guiGraphics, index == passengers.size() - 1 ? DRIVER : PASSENGER, 10, y + 1, 100, 0, 0, 8, 8, 8, 8); + if (passenger != null) { + name.set(passenger.getName().getString()); + } + + if (passenger instanceof Player player) { + CuriosApi.getCuriosInventory(player).ifPresent( + c -> c.findFirstCurio(ModItems.DOG_TAG.get()).ifPresent( + s -> { + if (s.stack().hasCustomHoverName()) { + name.set(s.stack().getHoverName().getString()); + } + } + ) + ); + } + + guiGraphics.drawString(Minecraft.getInstance().font, name.get(), 37, y, 0x66ff00, true); + + String num = "[" + (i + 1) + "]"; + guiGraphics.drawString(Minecraft.getInstance().font, num, 15 - Minecraft.getInstance().font.width(num), y, 0x66ff00, true); + + preciseBlit(guiGraphics, index == passengers.size() - 1 ? DRIVER : PASSENGER, 25, y + 1, 100, 0, 0, 8, 8, 8, 8); index++; } }