From a542b319eb0dd0d8c642d958e094d615c7155918 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Sat, 21 Dec 2024 16:07:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A0=87=E6=9E=AA=E5=92=8C?= =?UTF-8?q?=E7=BA=A2=E4=B8=89=E8=A7=92hud?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/screens/JavelinHudOverlay.java | 7 +++++-- .../client/screens/RedTriangleOverlay.java | 4 +++- .../textures/screens/javelin/frame.png | Bin 245 -> 245 bytes .../textures/screens/javelin/frame_lock.png | Bin 460 -> 544 bytes .../textures/screens/javelin/frame_target.png | Bin 0 -> 348 bytes 5 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/javelin/frame_target.png diff --git a/src/main/java/com/atsuishio/superbwarfare/client/screens/JavelinHudOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/screens/JavelinHudOverlay.java index 015506e91..9f5a4b3c9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/screens/JavelinHudOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/screens/JavelinHudOverlay.java @@ -35,6 +35,7 @@ import static com.atsuishio.superbwarfare.client.RenderHelper.preciseBlit; public class JavelinHudOverlay { private static final ResourceLocation FRAME = ModUtils.loc("textures/screens/javelin/frame.png"); + private static final ResourceLocation FRAME_TARGET = ModUtils.loc("textures/screens/javelin/frame_target.png"); private static final ResourceLocation FRAME_LOCK = ModUtils.loc("textures/screens/javelin/frame_lock.png"); private static float scopeScale = 1; @@ -90,8 +91,9 @@ public class JavelinHudOverlay { Entity targetEntity = EntityFindUtil.findEntity(player.level(), stack.getOrCreateTag().getString("TargetEntity")); List entities = SeekTool.seekLivingEntities(player, player.level(), 512, 10); + Entity naerestEntity = SeekTool.seekLivingEntity(player, player.level(), 512, 10); - double zoom = 3.6; + double zoom = 3; for (var e : entities) { Vec3 pos = new Vec3(e.getX(), e.getEyeY(), e.getZ()); @@ -102,12 +104,13 @@ public class JavelinHudOverlay { if (p == null) return; boolean lockOn = stack.getOrCreateTag().getInt("SeekTime") > 20 && e == targetEntity; + boolean nearest = e == naerestEntity; poseStack.pushPose(); int x = (int) p.x; int y = (int) p.y; - HudUtil.blit(poseStack, lockOn ? FRAME_LOCK : FRAME, x - 12, y - 12, 0, 0, 24, 24, 24, 24, 1f); + HudUtil.blit(poseStack, lockOn ? FRAME_LOCK : nearest ? FRAME_TARGET : FRAME, x - 12, y - 12, 0, 0, 24, 24, 24, 24, 1f); poseStack.popPose(); } } else { diff --git a/src/main/java/com/atsuishio/superbwarfare/client/screens/RedTriangleOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/screens/RedTriangleOverlay.java index 32ec5feee..b47def666 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/screens/RedTriangleOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/screens/RedTriangleOverlay.java @@ -43,7 +43,9 @@ public class RedTriangleOverlay { if (idf == null) return; - Vec3 p = RenderHelper.worldToScreen(new Vec3(idf.getX(), idf.getEyeY() + 2,idf.getZ()), cameraPos); + double distance = idf.position().distanceTo(cameraPos); + + Vec3 p = RenderHelper.worldToScreen(new Vec3(idf.getX(), idf.getEyeY() + 0.5 + 0.07 * distance, idf.getZ()), cameraPos); if (p == null) return; diff --git a/src/main/resources/assets/superbwarfare/textures/screens/javelin/frame.png b/src/main/resources/assets/superbwarfare/textures/screens/javelin/frame.png index 29c93af169e88b298014d03d9992eba320e19eea..129e2fd3909e7dba67f798e63dc7505130690265 100644 GIT binary patch delta 113 zcmV-%0FM9l0rdfpVlR>;>2@kS{~B45JGuv->6`c7pY$1ts(L5q;{X#Qx+da}1UR)n z!={nn?=kU^f036hH#7s#184@I2hb+(2Cs5e{*#da^c8s`4nSRvOOhl>lBBjTsud2R THdSSr00000NkvXXu0mjf$rmuw delta 108 zcmV-y0F(dq0rdfpVlBF<3eUerR^*QE!DssBz4s@5Mxv_T$@w_I#E7nm_#**M?a#1j zdq9 zHearB=eHm3?KV$aP%1Fz>6f)~HnYDot($hqwKADy`FMeJy_4Ir1 z#S_bqv1|}dNM^dhxxtX}4aGky=^_&;^N-sgZv^Vb9bdkv# z`!dobR2NJ;trXS8ZkM4M6KwOrktu6tR%`>eou}XQri@an-3&i+Ba4j>R!&$m@q&`V zo4I%9d)?<2IJ(_q#Vpn&+ex$5E$N;-t(>Pn`R}$hU#2GLHQva-^rIm?@lN*brW=!j jwYDdoJnHrMs+sfuzO@^F^v*L3WdH(CS3j3^P6kOcHq_v{)rdX#($s4$6LJQ zPm5vC@gJ;9TsRb41d0OH(tpZ4I&}VW)Q8*EPjlyrzqhpU*?#c1y%7?r1cQ78~uNXXN$&Uj1gzmvv4FO#lmUyTt$i diff --git a/src/main/resources/assets/superbwarfare/textures/screens/javelin/frame_target.png b/src/main/resources/assets/superbwarfare/textures/screens/javelin/frame_target.png new file mode 100644 index 0000000000000000000000000000000000000000..37f9425a9a9cfaf6872915e8b6d9e3ccc07fefb5 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|O(U zr;B4q#hkaZ9EF+;1X$Ql&;Q9>Bk;8O3;Q13xGySEPG+|QX71Z;dfVYd*o2;!vlbTq zHC%B{dBr*Q=V7h)r&R8`9%CPqcYTFU_t$8#dc(Y_AF}q{ygR*!#Y0*p#YF!p=Y%ki z6IpSmL>2xjDsHaSjBohj>{RwyNZBE3f`f^_@w7^<)OlTxzHzrFha5jU+csb~$GfK= z@9wDxJI}PW`fpTLdh3M56<-g0>gD)3@p8g9bDJk$tzAVdjl>+-7i?s(V(4YPz?h-a zz~_+6Si&I1y@2^b1cPkDF{T#`CRmlsI