优化hud

This commit is contained in:
Atsuihsio 2024-09-22 03:50:17 +08:00
parent 5d1f788d73
commit d165483b1a
3 changed files with 20 additions and 17 deletions

View file

@ -20,7 +20,6 @@ import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import org.lwjgl.glfw.GLFW;
import static net.mcreator.superbwarfare.tools.RenderTool.preciseBlit; import static net.mcreator.superbwarfare.tools.RenderTool.preciseBlit;
@ -53,7 +52,7 @@ public class CrossHairOverlay {
if (shouldRenderCrossHair(player) || stack.is(ModItems.MINIGUN.get()) || (stack.is(ModItems.BOCEK.get()) && stack.getOrCreateTag().getBoolean("HoloHidden"))) { if (shouldRenderCrossHair(player) || stack.is(ModItems.MINIGUN.get()) || (stack.is(ModItems.BOCEK.get()) && stack.getOrCreateTag().getBoolean("HoloHidden"))) {
preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/point.png"), w / 2f - 7.5f + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/point.png"), w / 2f - 7.5f + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16);
if (!player.isSprinting()) { if (!player.isSprinting() || player.getPersistentData().getDouble("noRun") > 0) {
preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 13.5f - 2.8f * spread) + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 13.5f - 2.8f * spread) + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 2.5f + 2.8f * spread) + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexheng.png"), (float) (w / 2f - 2.5f + 2.8f * spread) + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexshu.png"), w / 2f - 7.5f + moveX, (float) (h / 2f - 2.5f + 2.8f * spread) + moveY, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/rexshu.png"), w / 2f - 7.5f + moveX, (float) (h / 2f - 2.5f + 2.8f * spread) + moveY, 0, 0, 16, 16, 16, 16);
@ -101,7 +100,7 @@ public class CrossHairOverlay {
if (player == null) return false; if (player == null) return false;
if (player.isSpectator()) return false; if (player.isSpectator()) return false;
if (!player.getMainHandItem().is(ModTags.Items.GUN) || GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) if (!player.getMainHandItem().is(ModTags.Items.GUN) || ClientEventHandler.zoomTime > 0.8)
return false; return false;
return !(player.getMainHandItem().getItem() == ModItems.M_79.get() || player.getMainHandItem().getItem() == ModItems.BOCEK.get()) return !(player.getMainHandItem().getItem() == ModItems.M_79.get() || player.getMainHandItem().getItem() == ModItems.BOCEK.get())

View file

@ -3,6 +3,7 @@ package net.mcreator.superbwarfare.client.screens;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.event.ClientEventHandler;
import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModItems;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.GameRenderer;
@ -18,6 +19,8 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
import static net.mcreator.superbwarfare.tools.RenderTool.preciseBlit;
@Mod.EventBusSubscriber(value = Dist.CLIENT) @Mod.EventBusSubscriber(value = Dist.CLIENT)
public class JavelinHudOverlay { public class JavelinHudOverlay {
@ -39,23 +42,25 @@ public class JavelinHudOverlay {
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
RenderSystem.setShaderColor(1, 1, 1, 1); RenderSystem.setShaderColor(1, 1, 1, 1);
float deltaFrame = Minecraft.getInstance().getDeltaFrameTime(); float deltaFrame = Minecraft.getInstance().getDeltaFrameTime();
scopeScale = Mth.lerp(0.5F * deltaFrame, scopeScale, 1.35F); float moveX = (float) (-32 * ClientEventHandler.turnRot[1] - (player.isSprinting() ? 100 : 67) * ClientEventHandler.movePosX + 3 * ClientEventHandler.cameraRot[2]);
float moveY = (float) (-32 * ClientEventHandler.turnRot[0] + 100 * (float)ClientEventHandler.velocityY - (player.isSprinting() ? 100 : 67) * ClientEventHandler.movePosY - 12 * ClientEventHandler.firePos + 3 * ClientEventHandler.cameraRot[1]);
scopeScale = (float) Mth.lerp(0.5F * deltaFrame, scopeScale, 1.35F + (0.2f * ClientEventHandler.firePos));
float f = (float)Math.min(w, h); float f = (float)Math.min(w, h);
float f1 = Math.min((float)w / f, (float)h / f) * scopeScale; float f1 = Math.min((float)w / f, (float)h / f) * scopeScale;
int i = Mth.floor(f * f1); float i = Mth.floor(f * f1);
int j = Mth.floor(f * f1); float j = Mth.floor(f * f1);
int k = (w - i) / 2; float k = ((w - i) / 2) + moveX;
int l = (h - j) / 2; float l = ((h - j) / 2) + moveY;
int i1 = k + i; float i1 = k + i;
int j1 = l + j; float j1 = l + j;
event.getGuiGraphics().blit(new ResourceLocation(ModUtils.MODID, "textures/screens/javelin/javelin_hud.png"), k, l, -90, 0.0F, 0.0F, i, j, i, j); preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/javelin/javelin_hud.png"), k, l, 0, 0.0F, i, j, i, j);
event.getGuiGraphics().blit(new ResourceLocation(ModUtils.MODID, stack.getOrCreateTag().getBoolean("TopMode") ? "textures/screens/javelin/top.png" : "textures/screens/javelin/dir.png"), k, l, -90, 0.0F, 0.0F, i, j, i, j); preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, stack.getOrCreateTag().getBoolean("TopMode") ? "textures/screens/javelin/top.png" : "textures/screens/javelin/dir.png"), k, l, 0, 0.0F, i, j, i, j);
event.getGuiGraphics().blit(new ResourceLocation(ModUtils.MODID, stack.getOrCreateTag().getInt("ammo") > 0 ? "textures/screens/javelin/missile_green.png" : "textures/screens/javelin/missile_red.png"), k, l, -90, 0.0F, 0.0F, i, j, i, j); preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, stack.getOrCreateTag().getInt("ammo") > 0 ? "textures/screens/javelin/missile_green.png" : "textures/screens/javelin/missile_red.png"), k, l, 0, 0.0F, i, j, i, j);
if (stack.getOrCreateTag().getInt("SeekTime") > 1 && stack.getOrCreateTag().getInt("SeekTime") < 20) { if (stack.getOrCreateTag().getInt("SeekTime") > 1 && stack.getOrCreateTag().getInt("SeekTime") < 20) {
event.getGuiGraphics().blit(new ResourceLocation(ModUtils.MODID, "textures/screens/javelin/seek.png"), k, l, -90, 0.0F, 0.0F, i, j, i, j); preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/javelin/seek.png"), k, l, 0, 0.0F, i, j, i, j);
} }
event.getGuiGraphics().fill(RenderType.guiOverlay(), 0, l, k, j1, -90, -16777216); event.getGuiGraphics().fill(RenderType.guiOverlay(), 0, (int) l, (int) k + 3, (int) j1, -90, -16777216);
event.getGuiGraphics().fill(RenderType.guiOverlay(), i1, l, w, j1, -90, -16777216); event.getGuiGraphics().fill(RenderType.guiOverlay(), (int) i1, (int) l, w, (int) j1, -90, -16777216);
RenderSystem.depthMask(true); RenderSystem.depthMask(true);
RenderSystem.defaultBlendFunc(); RenderSystem.defaultBlendFunc();
RenderSystem.enableDepthTest(); RenderSystem.enableDepthTest();

View file

@ -154,7 +154,6 @@ public class ShootMessage {
playGunSounds(player); playGunSounds(player);
stack.getOrCreateTag().putBoolean("shoot", true); stack.getOrCreateTag().putBoolean("shoot", true);
} }
} }
} }