From afa4d77d2ef633279a6b6d949aa55bdfa2259f07 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Tue, 10 Sep 2024 22:53:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E4=BA=86=E4=B8=80=E4=B8=AA=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...42UIOverlay.java => CannonHudOverlay.java} | 31 +++++++++++++----- .../superbwarfare/entity/Mk42Entity.java | 5 +-- .../superbwarfare/entity/Mle1934Entity.java | 18 ++++------ .../event/PlayerEventHandler.java | 17 ---------- .../screens/cannon/cannon_crosshair.png | Bin 0 -> 2187 bytes .../textures/screens/cannon/indicator.png | Bin 0 -> 1225 bytes .../textures/screens/mk_42_rex.png | Bin 12184 -> 0 bytes 7 files changed, 33 insertions(+), 38 deletions(-) rename src/main/java/net/mcreator/superbwarfare/client/screens/{Mk42UIOverlay.java => CannonHudOverlay.java} (62%) create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/cannon/cannon_crosshair.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/cannon/indicator.png delete mode 100644 src/main/resources/assets/superbwarfare/textures/screens/mk_42_rex.png diff --git a/src/main/java/net/mcreator/superbwarfare/client/screens/Mk42UIOverlay.java b/src/main/java/net/mcreator/superbwarfare/client/screens/CannonHudOverlay.java similarity index 62% rename from src/main/java/net/mcreator/superbwarfare/client/screens/Mk42UIOverlay.java rename to src/main/java/net/mcreator/superbwarfare/client/screens/CannonHudOverlay.java index 52c53e7b1..be07549dd 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/screens/Mk42UIOverlay.java +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/CannonHudOverlay.java @@ -5,10 +5,10 @@ import com.mojang.blaze3d.systems.RenderSystem; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.entity.ICannonEntity; import net.mcreator.superbwarfare.item.gun.GunItem; -import net.mcreator.superbwarfare.tools.RenderTool; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.RenderGuiEvent; @@ -17,10 +17,12 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import org.lwjgl.glfw.GLFW; +import java.util.Objects; + +import static net.mcreator.superbwarfare.tools.RenderTool.preciseBlit; + @Mod.EventBusSubscriber(value = Dist.CLIENT) -public class Mk42UIOverlay { - public static final int TEXTURE_WIDTH = 771; - public static final int TEXTURE_HEIGHT = 1006; +public class CannonHudOverlay { @SubscribeEvent(priority = EventPriority.NORMAL) public static void eventHandler(RenderGuiEvent.Pre event) { @@ -34,10 +36,23 @@ public class Mk42UIOverlay { 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)) { - RenderTool.preciseBlit(event.getGuiGraphics(), - new ResourceLocation(ModUtils.MODID, "textures/screens/mk_42_rex.png"), - (float) w / 2 - (float) TEXTURE_WIDTH / 10f, (float) h / 2 - (float) TEXTURE_HEIGHT / 10f, - 0, 0, TEXTURE_WIDTH / 5f, TEXTURE_HEIGHT / 5f, TEXTURE_WIDTH / 5f, TEXTURE_HEIGHT / 5f); + float yRotOffset = Mth.lerp(event.getPartialTick(), player.yRotO, player.getYRot()); + float xRotOffset = Mth.lerp(event.getPartialTick(), player.xRotO, player.getXRot()); + float diffY = 13 * (Objects.requireNonNull(player.getVehicle()).getViewYRot(event.getPartialTick()) - yRotOffset); + float diffX = 13 * (Objects.requireNonNull(player.getVehicle()).getViewXRot(event.getPartialTick()) - xRotOffset + 1.3f); + if (diffY > 180.0f) { + diffY -= 360.0f; + } else if (diffY < -180.0f) { + diffY += 360.0f; + } + float f = (float)Math.min(w, h); + float f1 = Math.min((float)w / f, (float)h / f); + int i = Mth.floor(f * f1); + int j = Mth.floor(f * f1); + int k = (w - i) / 2; + int l = (h - j) / 2; + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/cannon/cannon_crosshair.png"), k, l, 0, 0.0F, i, j, i, j); + preciseBlit(event.getGuiGraphics(), new ResourceLocation(ModUtils.MODID, "textures/screens/cannon/indicator.png"), k + diffY, l + diffX, 0, 0.0F, i, j, i, j); } RenderSystem.depthMask(true); RenderSystem.defaultBlendFunc(); diff --git a/src/main/java/net/mcreator/superbwarfare/entity/Mk42Entity.java b/src/main/java/net/mcreator/superbwarfare/entity/Mk42Entity.java index 1f41b42cb..bb361e945 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/Mk42Entity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/Mk42Entity.java @@ -311,7 +311,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity, ICannonEntit } if (stack != null && this.isVehicle() && !stack.is(ModTags.Items.GUN)) { float diffY = entity.getYHeadRot() - this.getYRot(); - float diffX = entity.getXRot() - this.getXRot(); + float diffX = entity.getXRot() - 1.3f - this.getXRot(); if (diffY > 180.0f) { diffY -= 360.0f; } else if (diffY < -180.0f) { @@ -319,10 +319,11 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity, ICannonEntit } diffY = diffY * 0.15f; diffX = diffX * 0.15f; + if (Math.abs(diffY) < 60f && Math.abs(diffX) < 60f) { this.setYRot(this.getYRot() + Mth.clamp(diffY, -1.75f, 1.75f)); this.yRotO = this.getYRot(); - this.setXRot(Mth.clamp(this.getXRot() - 0.11f + Mth.clamp(diffX, -3f, 3f), -85, 15)); + this.setXRot(Mth.clamp(this.getXRot() + Mth.clamp(diffX, -3f, 3f), -85, 15)); this.setRot(this.getYRot(), this.getXRot()); this.yBodyRot = this.getYRot() + Mth.clamp(diffY, -1.75f, 1.75f); this.yHeadRot = this.getYRot() + Mth.clamp(diffY, -1.75f, 1.75f); diff --git a/src/main/java/net/mcreator/superbwarfare/entity/Mle1934Entity.java b/src/main/java/net/mcreator/superbwarfare/entity/Mle1934Entity.java index b7832adc4..511a38e6f 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/Mle1934Entity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/Mle1934Entity.java @@ -35,6 +35,7 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.PlayMessages; +import org.jetbrains.annotations.NotNull; import org.joml.Vector3d; import software.bernie.geckolib.animatable.GeoEntity; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; @@ -332,7 +333,7 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn } @Override - public void travel(Vec3 dir) { + public void travel(@NotNull Vec3 dir) { Player entity = this.getPassengers().isEmpty() ? null : (Player) this.getPassengers().get(0); ItemStack stack = null; if (entity != null) { @@ -340,7 +341,7 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn } if (stack != null && this.isVehicle() && !stack.is(ModTags.Items.GUN)) { float diffY = entity.getYHeadRot() - this.getYRot(); - float diffX = entity.getXRot() - this.getXRot(); + float diffX = entity.getXRot() - 1.3f - this.getXRot(); if (diffY > 180.0f) { diffY -= 360.0f; } else if (diffY < -180.0f) { @@ -349,23 +350,18 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn diffY = diffY * 0.15f; diffX = diffX * 0.15f; if (Math.abs(diffY) < 60f && Math.abs(diffX) < 60f) { - this.setYRot(this.getYRot() + Mth.clamp(diffY,-1.25f,1.25f)); + this.setYRot(this.getYRot() + Mth.clamp(diffY, -1.25f, 1.25f)); this.yRotO = this.getYRot(); - this.setXRot(Mth.clamp(this.getXRot() - 0.1f + Mth.clamp(diffX,-2f,2f), -30, 4)); + this.setXRot(Mth.clamp(this.getXRot() + Mth.clamp(diffX, -2f, 2f), -30, 4)); this.setRot(this.getYRot(), this.getXRot()); - this.yBodyRot = this.getYRot() + Mth.clamp(diffY,-1.25f,1.25f); - this.yHeadRot = this.getYRot() + Mth.clamp(diffY,-1.25f,1.25f); + this.yBodyRot = this.getYRot() + Mth.clamp(diffY, -1.25f, 1.25f); + this.yHeadRot = this.getYRot() + Mth.clamp(diffY, -1.25f, 1.25f); } return; } super.travel(dir); } - @Override - public EntityDimensions getDimensions(Pose p_33597_) { - return super.getDimensions(p_33597_).scale((float) 1); - } - @Override public void aiStep() { super.aiStep(); diff --git a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java index 4dc360fc9..f6221c83d 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java @@ -87,7 +87,6 @@ public class PlayerEventHandler { handlePlayerSprint(player); handleWeaponLevel(player); handleAmmoCount(player); - handlePrepareZoom(player); handleSpecialWeaponAmmo(player); handleChangeFireRate(player); handleBocekPulling(player); @@ -338,22 +337,6 @@ public class PlayerEventHandler { } } - private static void handlePrepareZoom(Player player) { -// ItemStack stack = player.getMainHandItem(); -// -// if (stack.is(ModTags.Items.GUN) && !player.isSpectator()) { -// if (player.getMainHandItem().getItem() != ModItems.MINIGUN.get()) { -// if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zoom) { -// player.setSprinting(false); -// player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { -// capability.zooming = true; -// capability.syncPlayerVariables(player); -// }); -// } -// } -// } - } - private static void handleSpecialWeaponAmmo(Player player) { ItemStack stack = player.getMainHandItem(); diff --git a/src/main/resources/assets/superbwarfare/textures/screens/cannon/cannon_crosshair.png b/src/main/resources/assets/superbwarfare/textures/screens/cannon/cannon_crosshair.png new file mode 100644 index 0000000000000000000000000000000000000000..c11ce5e7141ed56ab8b355960597cdd2ed617c59 GIT binary patch literal 2187 zcmeHH`%l|d9Q}NutUP3`LQ-&P%f}YKu{QuKr&4jY%3E9tu14YZPZZ+;V~$PwWFlP(v?zZq4jnoEc*jUO!Ou<_uk~( zo6k9)bMBY#q_X{epZ5g-e@;qL8h{7ddVu#nw5;(b>}c^RPRZZ__yxEp20t_h0eCYw zNeS=qn^!brg-!W^UyNyAG`a4ne!KW%*vmUbcuNvwXEfw6-*ru%TAUfaV(K>x=z^oGq$1j+P1YJNY^>{`C`UB0 z%hY(AnY~##F`%*}%h{r=T9GNHNM*TXvz4_k*3JdTXZ(jH28Yuuva%svJMe!JP|7L7r%V&$ z-?N?2m>iLxw&`17_h3YaDuWA$3S7ewB${pzxp39yixclT2VsPNJUpk90y@#Wank6!hd)?o^K~3@X#Nk4s@(l`<@=-kr^~~PSC2#_V+_M28Lo~?GC|aEw^_bf@csq2r zn~y2sKhJx~wuK?9!4JCIGxJDi586)&-OcxOzJ+C#LOXFo<)BvASzL`?tDWLwV$8aR!EY>I@7E z6c`y8SUDLOG(4~b&H;tDebay2u=9NWsO|t(;@}8Oms~;&3;`1u7#f)!(T%+uA+Wt~$(69B^nOospf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/screens/mk_42_rex.png b/src/main/resources/assets/superbwarfare/textures/screens/mk_42_rex.png deleted file mode 100644 index bef16dfed0a975a141cd805a80ff87afd29d30a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12184 zcmeHN3rtg48ve^$k%!1agYsC}>^eJVGLGdn%}QKFVYkAS zAqeBTyF4t^#|C25;#i?noVJKl#uccuM9NEB<60aFv`m9kXkpK-w?wioArUt-~&pe!-qQyTdB6 z-opPJT#CG$QJkUvw9%P=yofbII@i9ByBghAPxMb~kH%u{1{iues^Wa2RV+{6@eObC zCvolf1AfrUvtNU5pIugbyFCh%DqL=lNe684v_lted8@LFen1&&SD`JBALxA`(3Ocx zdNKs@!$x*^XeU|Y!%&IUzv~?vxJz#x3Q-C&!<>tg1s5}`4#hP|5;Y+Ql;Y~ocDrLs zf0p^ka}{IgctHTuSE!{o^^Td}S5lff>M#4M>Nu4Lmod$E14v@N4ez|8%wCIDOPPGKH)aTl8F+-xE3Ce2)O?~znx1F}oeQNaEC2Dxr}lHvCt1s-Omn6MP-q z+MK@{WFJlUM67Ii-jg-SSL965nu>*+K_6!x=cOP_)YS<^f1sjok8DS1H}ZEkw4Xpa zO-}r@B~ZuC__xROpUXEW`PPr1{g*Ivy*_RmJDr%-FTW&Z4{8D@d&UO(>Hg*$VxIj} z8@;t0*GLlL){8A#TAQ!t8HQo}|M3uzxastJ+fuLz&eV{R9S zPh5y!wKQ+q+)9yGGTARSt<2w#&bFUU;{>IA!C8kPVtJ#yR&)IwC(s+rbqE`2>M|R+ zft?7g@7*Z9h~}IR;ClffqR80dZW`uzqfPomqwo6<{UgBGr}AHh1Wb{bgxm8yvQT$B zPSc3YU;}#Fudr2=wIm(KDUUOmLxS!*PXsrx$%V}iRYbXCGU|6Ys09Vv zUt^Y*V`hz{3Uv?pS?q+V!^&|bZs@o{4*y9xe$Vn~cV-FFeU(AvT0@(VIfE>Qor~Ij z$neq5(I~876puaKBNcqvq@V45m#p50i7on(6lfSk9An(8JtJjO?V!-8d|+$YwMv^l zhHhBWdiL679S5V_;hcQ7y9X|{K?0G*Yn-qbD9C`&uyVmKdb0GgBO;~s+LeB^M3xHx zH3?@;R;M$h`5!8#bREk`)?eJLDmm3r3b4^Sj~mx)-X?$al5+dQT|pgDEg9BNhI&ey zg!*+ne-a##;i!fQ{1C}^h6%qL@1dSw8wp&ev&e=KuM$|!#6SW|!Y+|ZECA^cKE80g z@)FBy^^Xl5oi&I#>x3vDL4zXs!5)k`U1Y|UF_D)8f8#)3`oF{;pmzKQ7nn0>jCeSr ztmYQ0@9}t65If89aonaj8!!b>U#7(xOMqJS{GWRtrR+c1U_fqv`!>!S`HlG4XFp=>sLqM=2n+i4o< zxUEQIqm-0{hZsZSF?3!#3~gSjl)e)UK>CGa`F6b9nmfk10mu$^b$SaD%Q|wNZGC2P zf;8J%X35i3td%GlmZXwwAiDcy0cQwXN65o|ouO>8jRXAt%vaZgO^jxWZk1h?WGTc9X|HX1pJK%oYhN=yKP3`OUv-qhi zdTmgCdTl<$F(<3MGHHAB({liB5!i15{@;1l+i`Q80}dpFBX_Rd7n|6~jt?0)A9&sn z2r?Jk4$E7y96zlxrNJ1{_uCuxPT-!5C%8X5>zj{4Idp8d1y^18S=ChZ^AApyl`&5R zp|V#fCo`@}>w}HAP`-Yq<8P>@EyM-pq|8}Z7F;dkCz+2GZI0dS5kf>EA_~o?>LsEO z-nxAA$hU~25D|G0dt3W*^I_x#GphLnmpK(8BF_SLrwF!OFvBL;a>2UNZzoTGgL2%+ z8Gaa5lppCH`NNU#&2{}kXHv5JU&#|vk$1e8Di7<)bKgAPzA-h<$(ygAOo-(mLATj^mA71jed^k5GEC_{uQr+KLux&f3Cml;gO0y3EMv05iR&2Deph|nv9PC