From 72babcffe1d5899f0cbd2dfcd4b6765d54d4944e Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 2 Jun 2025 18:30:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=9B=B4=E8=AF=A1=E5=BC=82=E7=9A=84?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E4=BF=AE=E5=A4=8D=E6=B8=B2=E6=9F=93=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/ClientRenderHandler.java | 9 +++-- .../overlay/ItemRendererFixOverlay.java | 35 +++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/atsuishio/superbwarfare/client/overlay/ItemRendererFixOverlay.java diff --git a/src/main/java/com/atsuishio/superbwarfare/client/ClientRenderHandler.java b/src/main/java/com/atsuishio/superbwarfare/client/ClientRenderHandler.java index 3df505a33..4c87e22d7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/ClientRenderHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/ClientRenderHandler.java @@ -1,7 +1,10 @@ package com.atsuishio.superbwarfare.client; import com.atsuishio.superbwarfare.client.overlay.*; -import com.atsuishio.superbwarfare.client.renderer.block.*; +import com.atsuishio.superbwarfare.client.renderer.block.ChargingStationBlockEntityRenderer; +import com.atsuishio.superbwarfare.client.renderer.block.ContainerBlockEntityRenderer; +import com.atsuishio.superbwarfare.client.renderer.block.FuMO25BlockEntityRenderer; +import com.atsuishio.superbwarfare.client.renderer.block.SmallContainerBlockEntityRenderer; import com.atsuishio.superbwarfare.client.tooltip.*; import com.atsuishio.superbwarfare.client.tooltip.component.*; import com.atsuishio.superbwarfare.init.ModBlockEntities; @@ -33,7 +36,6 @@ public class ClientRenderHandler { event.registerBlockEntityRenderer(ModBlockEntities.CONTAINER.get(), context -> new ContainerBlockEntityRenderer()); event.registerBlockEntityRenderer(ModBlockEntities.FUMO_25.get(), context -> new FuMO25BlockEntityRenderer()); event.registerBlockEntityRenderer(ModBlockEntities.CHARGING_STATION.get(), context -> new ChargingStationBlockEntityRenderer()); - event.registerBlockEntityRenderer(ModBlockEntities.CREATIVE_CHARGING_STATION.get(), context -> new CreativeChargingStationBlockEntityRenderer()); event.registerBlockEntityRenderer(ModBlockEntities.SMALL_CONTAINER.get(), context -> new SmallContainerBlockEntityRenderer()); } @@ -49,6 +51,7 @@ public class ClientRenderHandler { event.registerBelowAll(Yx100SwarmDroneHudOverlay.ID, new Yx100SwarmDroneHudOverlay()); event.registerBelowAll(AmmoBarOverlay.ID, new AmmoBarOverlay()); event.registerBelowAll(AmmoCountOverlay.ID, new AmmoCountOverlay()); + event.registerBelowAll(ItemRendererFixOverlay.ID, new ItemRendererFixOverlay()); event.registerBelowAll(CannonHudOverlay.ID, new CannonHudOverlay()); event.registerBelowAll(CrossHairOverlay.ID, new CrossHairOverlay()); event.registerBelowAll(DroneHudOverlay.ID, new DroneHudOverlay()); @@ -60,4 +63,4 @@ public class ClientRenderHandler { event.registerBelowAll(AircraftOverlay.ID, new AircraftOverlay()); event.registerBelowAll(MortarInfoOverlay.ID, new MortarInfoOverlay()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/ItemRendererFixOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/ItemRendererFixOverlay.java new file mode 100644 index 000000000..38bff1355 --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/ItemRendererFixOverlay.java @@ -0,0 +1,35 @@ +package com.atsuishio.superbwarfare.client.overlay; + +import com.atsuishio.superbwarfare.Mod; +import net.minecraft.client.DeltaTracker; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.LayeredDraw; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemDisplayContext; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; + +import javax.annotation.ParametersAreNonnullByDefault; + +@OnlyIn(Dist.CLIENT) +public class ItemRendererFixOverlay implements LayeredDraw.Layer { + + public static final ResourceLocation ID = Mod.loc("item_renderer_fix"); + + @Override + @ParametersAreNonnullByDefault + public void render(GuiGraphics guiGraphics, DeltaTracker deltaTracker) { + Minecraft mc = Minecraft.getInstance(); + Player entity = mc.player; + + if (entity != null) { + guiGraphics.pose().pushPose(); + guiGraphics.pose().translate(-1145.0D, 0.0D, 0.0D); + mc.gameRenderer.itemInHandRenderer.renderItem(entity, entity.getMainHandItem(), + ItemDisplayContext.THIRD_PERSON_RIGHT_HAND, false, guiGraphics.pose(), guiGraphics.bufferSource(), 0); + guiGraphics.pose().popPose(); + } + } +}