diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/ItemRendererFixOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/ItemRendererFixOverlay.java index 38bff1355..35d1aa2d2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/ItemRendererFixOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/ItemRendererFixOverlay.java @@ -1,6 +1,7 @@ package com.atsuishio.superbwarfare.client.overlay; import com.atsuishio.superbwarfare.Mod; +import com.atsuishio.superbwarfare.item.gun.GunItem; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; @@ -8,11 +9,16 @@ 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.minecraft.world.item.ItemStack; 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 { @@ -22,14 +28,15 @@ public class ItemRendererFixOverlay implements LayeredDraw.Layer { @ParametersAreNonnullByDefault public void render(GuiGraphics guiGraphics, DeltaTracker deltaTracker) { Minecraft mc = Minecraft.getInstance(); - Player entity = mc.player; + Player player = mc.player; + if (player == null) return; + ItemStack stack = player.getMainHandItem(); + if (!(stack.getItem() instanceof GunItem)) return; - 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(); - } + guiGraphics.pose().pushPose(); + guiGraphics.pose().translate(-1145.0D, 0.0D, 0.0D); + mc.gameRenderer.itemInHandRenderer.renderItem(player, stack, + ItemDisplayContext.THIRD_PERSON_RIGHT_HAND, false, guiGraphics.pose(), guiGraphics.bufferSource(), 0); + guiGraphics.pose().popPose(); } }