From 9e0e39a2fd19700fcf74908724096e94ea6cb10c Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Sun, 19 May 2024 00:42:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/client/CrossHairHandler.java | 25 ----------- .../mcreator/target/client/RenderHandler.java | 32 --------------- .../target/event/ClientEventHandler.java | 41 +++++++++++++++++-- 3 files changed, 37 insertions(+), 61 deletions(-) delete mode 100644 src/main/java/net/mcreator/target/client/CrossHairHandler.java delete mode 100644 src/main/java/net/mcreator/target/client/RenderHandler.java diff --git a/src/main/java/net/mcreator/target/client/CrossHairHandler.java b/src/main/java/net/mcreator/target/client/CrossHairHandler.java deleted file mode 100644 index 4b31e1c95..000000000 --- a/src/main/java/net/mcreator/target/client/CrossHairHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.mcreator.target.client; - -import net.mcreator.target.init.TargetModTags; -import net.minecraft.client.Minecraft; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.RenderGuiOverlayEvent; -import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -@Mod.EventBusSubscriber(modid = "target", value = Dist.CLIENT) -public class CrossHairHandler { - @SubscribeEvent - public static void onRenderOverlay(RenderGuiOverlayEvent.Pre event) { - if (event.getOverlay() != VanillaGuiOverlay.CROSSHAIR.type()) return; - - Minecraft mc = Minecraft.getInstance(); - if (mc.player == null) return; - if (!mc.options.getCameraType().isFirstPerson()) return; - - if (mc.player.getMainHandItem().is(TargetModTags.Items.GUN)) { - event.setCanceled(true); - } - } -} diff --git a/src/main/java/net/mcreator/target/client/RenderHandler.java b/src/main/java/net/mcreator/target/client/RenderHandler.java deleted file mode 100644 index 847cbd019..000000000 --- a/src/main/java/net/mcreator/target/client/RenderHandler.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.mcreator.target.client; - -import net.mcreator.target.init.TargetModTags; -import net.minecraft.client.Minecraft; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.ViewportEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) -public class RenderHandler { - - @SubscribeEvent - public static void onFovUpdate(ViewportEvent.ComputeFov event) { - if (!event.usedConfiguredFov()) return; - - Player player = Minecraft.getInstance().player; - if (player == null) return; - - ItemStack stack = player.getMainHandItem(); - - double p = player.getPersistentData().getDouble("zoom_pos"); - double zoom = stack.getOrCreateTag().getDouble("zoom"); - - if (stack.is(TargetModTags.Items.GUN)) { - event.setFOV(event.getFOV() / (1.0 + p * (zoom - 1))); - player.getPersistentData().putDouble("fov", event.getFOV()); - } - } -} diff --git a/src/main/java/net/mcreator/target/event/ClientEventHandler.java b/src/main/java/net/mcreator/target/event/ClientEventHandler.java index 267f95ba9..f0e5d9d11 100644 --- a/src/main/java/net/mcreator/target/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/target/event/ClientEventHandler.java @@ -11,13 +11,16 @@ import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.RenderGuiOverlayEvent; import net.minecraftforge.client.event.ViewportEvent; +import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -@Mod.EventBusSubscriber(value = Dist.CLIENT) +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) public class ClientEventHandler { @SubscribeEvent @@ -51,9 +54,9 @@ public class ClientEventHandler { } if ((data.getDouble("move_left") == 1 - || data.getDouble("move_right") == 1 - || data.getDouble("move_forward") == 1 - || data.getDouble("move_backward") == 1) && data.getDouble("firetime") == 0) { + || data.getDouble("move_right") == 1 + || data.getDouble("move_forward") == 1 + || data.getDouble("move_backward") == 1) && data.getDouble("firetime") == 0) { if (data.getDouble("gun_moveY_time") < 1.25) { data.putDouble("gun_moveY_time", data.getDouble("gun_moveY_time") + on_ground * times * move_speed); @@ -417,4 +420,34 @@ public class ClientEventHandler { persistentData.putDouble("bowpos", (0.5 * Math.cos(Math.PI * Math.pow(Math.pow(persistentData.getDouble("bowtime"), 2) - 1, 2)) + 0.5)); } + @SubscribeEvent + public static void onFovUpdate(ViewportEvent.ComputeFov event) { + if (!event.usedConfiguredFov()) return; + + Player player = Minecraft.getInstance().player; + if (player == null) return; + + ItemStack stack = player.getMainHandItem(); + + double p = player.getPersistentData().getDouble("zoom_pos"); + double zoom = stack.getOrCreateTag().getDouble("zoom"); + + if (stack.is(TargetModTags.Items.GUN)) { + event.setFOV(event.getFOV() / (1.0 + p * (zoom - 1))); + player.getPersistentData().putDouble("fov", event.getFOV()); + } + } + + @SubscribeEvent + public static void handleRenderCrossHair(RenderGuiOverlayEvent.Pre event) { + if (event.getOverlay() != VanillaGuiOverlay.CROSSHAIR.type()) return; + + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null) return; + if (!mc.options.getCameraType().isFirstPerson()) return; + + if (mc.player.getMainHandItem().is(TargetModTags.Items.GUN)) { + event.setCanceled(true); + } + } }