用更诡异的方式修复渲染问题

This commit is contained in:
17146 2025-06-02 18:30:56 +08:00
parent 0fcfdee2ee
commit 72babcffe1
2 changed files with 41 additions and 3 deletions

View file

@ -1,7 +1,10 @@
package com.atsuishio.superbwarfare.client; package com.atsuishio.superbwarfare.client;
import com.atsuishio.superbwarfare.client.overlay.*; 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.*;
import com.atsuishio.superbwarfare.client.tooltip.component.*; import com.atsuishio.superbwarfare.client.tooltip.component.*;
import com.atsuishio.superbwarfare.init.ModBlockEntities; import com.atsuishio.superbwarfare.init.ModBlockEntities;
@ -33,7 +36,6 @@ public class ClientRenderHandler {
event.registerBlockEntityRenderer(ModBlockEntities.CONTAINER.get(), context -> new ContainerBlockEntityRenderer()); event.registerBlockEntityRenderer(ModBlockEntities.CONTAINER.get(), context -> new ContainerBlockEntityRenderer());
event.registerBlockEntityRenderer(ModBlockEntities.FUMO_25.get(), context -> new FuMO25BlockEntityRenderer()); event.registerBlockEntityRenderer(ModBlockEntities.FUMO_25.get(), context -> new FuMO25BlockEntityRenderer());
event.registerBlockEntityRenderer(ModBlockEntities.CHARGING_STATION.get(), context -> new ChargingStationBlockEntityRenderer()); 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()); event.registerBlockEntityRenderer(ModBlockEntities.SMALL_CONTAINER.get(), context -> new SmallContainerBlockEntityRenderer());
} }
@ -49,6 +51,7 @@ public class ClientRenderHandler {
event.registerBelowAll(Yx100SwarmDroneHudOverlay.ID, new Yx100SwarmDroneHudOverlay()); event.registerBelowAll(Yx100SwarmDroneHudOverlay.ID, new Yx100SwarmDroneHudOverlay());
event.registerBelowAll(AmmoBarOverlay.ID, new AmmoBarOverlay()); event.registerBelowAll(AmmoBarOverlay.ID, new AmmoBarOverlay());
event.registerBelowAll(AmmoCountOverlay.ID, new AmmoCountOverlay()); event.registerBelowAll(AmmoCountOverlay.ID, new AmmoCountOverlay());
event.registerBelowAll(ItemRendererFixOverlay.ID, new ItemRendererFixOverlay());
event.registerBelowAll(CannonHudOverlay.ID, new CannonHudOverlay()); event.registerBelowAll(CannonHudOverlay.ID, new CannonHudOverlay());
event.registerBelowAll(CrossHairOverlay.ID, new CrossHairOverlay()); event.registerBelowAll(CrossHairOverlay.ID, new CrossHairOverlay());
event.registerBelowAll(DroneHudOverlay.ID, new DroneHudOverlay()); event.registerBelowAll(DroneHudOverlay.ID, new DroneHudOverlay());

View file

@ -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();
}
}
}