优化hud代码

This commit is contained in:
17146 2024-11-01 03:18:00 +08:00
parent dc0a7423b1
commit fe9d843e6d

View file

@ -27,7 +27,6 @@ import net.minecraftforge.fml.common.Mod;
import org.lwjgl.glfw.GLFW;
import java.text.DecimalFormat;
import java.util.Objects;
import static net.mcreator.superbwarfare.client.RenderHelper.preciseBlit;
@ -44,14 +43,19 @@ public class CannonHudOverlay {
int w = event.getWindow().getGuiScaledWidth();
int h = event.getWindow().getGuiScaledHeight();
Player player = Minecraft.getInstance().player;
if (!shouldRenderCrossHair(player)) return;
Entity cannon = player.getVehicle();
if (cannon == null) return;
RenderSystem.disableDepthTest();
RenderSystem.depthMask(false);
RenderSystem.enableBlend();
RenderSystem.setShader(GameRenderer::getPositionTexShader);
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
RenderSystem.setShaderColor(1, 1, 1, 1);
if (shouldRenderCrossHair(player)) {
Entity cannon = Objects.requireNonNull(player.getVehicle());
float yRotOffset = Mth.lerp(event.getPartialTick(), player.yRotO, player.getYRot());
float xRotOffset = Mth.lerp(event.getPartialTick(), player.xRotO, player.getXRot());
float diffY = cannon.getViewYRot(event.getPartialTick()) - yRotOffset;
@ -77,7 +81,6 @@ public class CannonHudOverlay {
double entity_range = 0;
if (lookingEntity instanceof LivingEntity living) {
lookAtEntity = true;
entity_range = player.distanceTo(living);
@ -118,7 +121,7 @@ public class CannonHudOverlay {
guiGraphics.blit(HEALTH_FRAME, w - 83, h - 12, 0, 0, 80, 8, 80, 8);
guiGraphics.blit(HEALTH, w - 83, h - 12, 0, 0, (int) (80 * health / maxHealth), 8, 80, 8);
guiGraphics.pose().popPose();
}
RenderSystem.depthMask(true);
RenderSystem.defaultBlendFunc();
RenderSystem.enableDepthTest();