diff --git a/src/main/java/net/mcreator/target/client/ClickHandler.java b/src/main/java/net/mcreator/target/client/ClickHandler.java index 5cad0bd78..1b9436e00 100644 --- a/src/main/java/net/mcreator/target/client/ClickHandler.java +++ b/src/main/java/net/mcreator/target/client/ClickHandler.java @@ -2,13 +2,10 @@ package net.mcreator.target.client; import com.mojang.blaze3d.platform.InputConstants; import net.mcreator.target.TargetMod; +import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.FireMessage; import net.minecraft.client.Minecraft; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.ItemTags; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -17,124 +14,68 @@ import org.lwjgl.glfw.GLFW; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) public class ClickHandler { - private static boolean isInGame() { + private static boolean notInGame() { Minecraft mc = Minecraft.getInstance(); - if (mc.player == null) - return false; - if (mc.getOverlay() != null) - return false; - if (mc.screen != null) - return false; - if (!mc.mouseHandler.isMouseGrabbed()) - return false; - return mc.isWindowActive(); + if (mc.player == null) return true; + if (mc.getOverlay() != null) return true; + if (mc.screen != null) return true; + if (!mc.mouseHandler.isMouseGrabbed()) return true; + return !mc.isWindowActive(); } @SubscribeEvent public static void onKeyReleased(InputEvent.MouseButton.Pre event) { - if (!isInGame()) { - return; - } + if (notInGame()) return; + if (event.getAction() != InputConstants.RELEASE) return; - if (event.getAction() != InputConstants.RELEASE) { - return; - } - - Minecraft mc = Minecraft.getInstance(); - Player player = mc.player; - if (player == null) { - return; - } + Player player = Minecraft.getInstance().player; + if (player == null) return; int button = event.getButton(); if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { TargetMod.PACKET_HANDLER.sendToServer(new FireMessage(1)); } - } @SubscribeEvent public static void onKeyPressed(InputEvent.MouseButton.Pre event) { - if (!isInGame()) { - return; - } + if (notInGame()) return; + if (event.getAction() != InputConstants.PRESS) return; - if (event.getAction() != InputConstants.PRESS) { - return; - } - - Minecraft mc = Minecraft.getInstance(); - Player player = mc.player; - if (player == null) { - return; - } - - ItemStack heldItem = player.getMainHandItem(); + Player player = Minecraft.getInstance().player; + if (player == null) return; int button = event.getButton(); - if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { - if ((player.getMainHandItem()).is(ItemTags.create(new ResourceLocation("target:gun")))) { - event.setCanceled(true); - TargetMod.PACKET_HANDLER.sendToServer(new FireMessage(0)); - } + if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT && player.getMainHandItem().is(TargetModTags.Items.GUN)) { + event.setCanceled(true); + TargetMod.PACKET_HANDLER.sendToServer(new FireMessage(0)); + } + } + + private static void setKeyState(int key, int state) { + Player player = Minecraft.getInstance().player; + if (player == null) return; + + var data = player.getPersistentData(); + switch (key) { + case GLFW.GLFW_KEY_D -> data.putDouble("move_left", state); + case GLFW.GLFW_KEY_A -> data.putDouble("move_right", state); + case GLFW.GLFW_KEY_W -> data.putDouble("move_forward", state); + case GLFW.GLFW_KEY_S -> data.putDouble("move_backward", state); } } @SubscribeEvent public static void onKeyPressed(InputEvent.Key event) { - if (!isInGame()) { - return; - } - - if (event.getAction() != InputConstants.PRESS) { - return; - } - - Minecraft mc = Minecraft.getInstance(); - Player player = mc.player; - - int button = event.getKey(); - CompoundTag persistentData = player.getPersistentData(); - if (button == GLFW.GLFW_KEY_D) { - persistentData.putDouble("mover", 1); - } - if (button == GLFW.GLFW_KEY_A) { - persistentData.putDouble("movel", 1); - } - if (button == GLFW.GLFW_KEY_W) { - persistentData.putDouble("qian", 1); - } - if (button == GLFW.GLFW_KEY_W) { - persistentData.putDouble("tui", 1); - } + if (notInGame()) return; + if (event.getAction() != InputConstants.PRESS) return; + setKeyState(event.getKey(), 1); } @SubscribeEvent public static void onKeyReleased(InputEvent.Key event) { - if (!isInGame()) { - return; - } - - Minecraft mc = Minecraft.getInstance(); - Player player = mc.player; - - if (event.getAction() != InputConstants.RELEASE) { - return; - } - - int button = event.getKey(); - CompoundTag persistentData = player.getPersistentData(); - if (button == GLFW.GLFW_KEY_D) { - persistentData.putDouble("mover", 0); - } - if (button == GLFW.GLFW_KEY_A) { - persistentData.putDouble("movel", 0); - } - if (button == GLFW.GLFW_KEY_W) { - persistentData.putDouble("qian", 0); - } - if (button == GLFW.GLFW_KEY_W) { - persistentData.putDouble("tui", 0); - } + if (notInGame()) return; + if (event.getAction() != InputConstants.RELEASE) return; + setKeyState(event.getKey(), 0); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/target/event/ClientEventHandler.java b/src/main/java/net/mcreator/target/event/ClientEventHandler.java index 9c0751421..df55614c2 100644 --- a/src/main/java/net/mcreator/target/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/target/event/ClientEventHandler.java @@ -47,11 +47,11 @@ public class ClientEventHandler { entity.getPersistentData().putDouble("move", ((entity.getPersistentData().getDouble("move") - 1 * times * Math.pow(entity.getPersistentData().getDouble("move"), 2) * (1 - 1 * entity.getPersistentData().getDouble("zoomtime"))) * (1 - 1 * entity.getPersistentData().getDouble("zoomtime")))); } - if (entity.getPersistentData().getDouble("movel") == 1) { + if (entity.getPersistentData().getDouble("move_right") == 1) { entity.getPersistentData().putDouble("move", ((entity.getPersistentData().getDouble("move") + Math.pow(Math.abs(entity.getPersistentData().getDouble("move")) + 0.05, 2) * 0.2 * times * (1 - 0.1 * entity.getPersistentData().getDouble("zoomtime"))) * (1 - 0.1 * entity.getPersistentData().getDouble("zoomtime")))); - } else if (entity.getPersistentData().getDouble("mover") == 1) { + } else if (entity.getPersistentData().getDouble("move_left") == 1) { entity.getPersistentData().putDouble("move", ((entity.getPersistentData().getDouble("move") - Math.pow(Math.abs(entity.getPersistentData().getDouble("move")) + 0.05, 2) * 0.2 * times * (1 - 0.1 * entity.getPersistentData().getDouble("zoomtime"))) * (1 - 0.1 * entity.getPersistentData().getDouble("zoomtime")))); diff --git a/src/main/java/net/mcreator/target/event/GunEventHandler.java b/src/main/java/net/mcreator/target/event/GunEventHandler.java index bb2508c08..0c99659e3 100644 --- a/src/main/java/net/mcreator/target/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/target/event/GunEventHandler.java @@ -64,8 +64,8 @@ public class GunEventHandler { double ride = player.isPassenger() ? (-0.5) * basic : 0; double walk; - if (player.getPersistentData().getDouble("qian") == 1 || player.getPersistentData().getDouble("tui") == 1 || - player.getPersistentData().getDouble("mover") == 1 || player.getPersistentData().getDouble("movel") == 1) { + if (player.getPersistentData().getDouble("move_forward") == 1 || player.getPersistentData().getDouble("move_backward") == 1 || + player.getPersistentData().getDouble("move_left") == 1 || player.getPersistentData().getDouble("move_right") == 1) { walk = 0.2 * basic; } else { walk = 0;