From 91a51864d73b14acd8a560a7b7000ff0c1befb0b Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Sat, 11 May 2024 15:08:43 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99=E8=BF=AB=E5=87=BB=E7=82=AEGU?= =?UTF-8?q?I=E8=A7=92=E5=BA=A6=E8=B0=83=E6=95=B4=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network/MortarGUIButtonMessage.java | 75 ++++++++++++++++--- .../procedures/AngleAddMiniProcedure.java | 23 ------ .../procedures/AngleAddPlusProcedure.java | 23 ------ .../target/procedures/AngleAddProcedure.java | 23 ------ .../procedures/AngleReduceMiniProcedure.java | 23 ------ .../procedures/AngleReducePlusProcedure.java | 23 ------ .../procedures/AngleReduceProcedure.java | 22 ------ 7 files changed, 65 insertions(+), 147 deletions(-) delete mode 100644 src/main/java/net/mcreator/target/procedures/AngleAddMiniProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/AngleAddPlusProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/AngleAddProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/AngleReduceMiniProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/AngleReducePlusProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/AngleReduceProcedure.java diff --git a/src/main/java/net/mcreator/target/network/MortarGUIButtonMessage.java b/src/main/java/net/mcreator/target/network/MortarGUIButtonMessage.java index fc29b47c6..139e69002 100644 --- a/src/main/java/net/mcreator/target/network/MortarGUIButtonMessage.java +++ b/src/main/java/net/mcreator/target/network/MortarGUIButtonMessage.java @@ -1,10 +1,11 @@ package net.mcreator.target.network; import net.mcreator.target.TargetMod; -import net.mcreator.target.procedures.*; -import net.mcreator.target.world.inventory.MortarGUIMenu; +import net.mcreator.target.tools.TraceTool; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -12,7 +13,6 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.network.NetworkEvent; -import java.util.HashMap; import java.util.function.Supplier; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) @@ -55,18 +55,73 @@ public class MortarGUIButtonMessage { public static void handleButtonAction(Player entity, int buttonID, int x, int y, int z) { Level world = entity.level(); - HashMap guistate = MortarGUIMenu.guistate; // security measure to prevent arbitrary chunk generation if (!world.hasChunkAt(new BlockPos(x, y, z))) return; + handleButtonAction(entity, buttonID); + } + + private static void handleButtonAction(Player player, int buttonID) { + Entity looking = TraceTool.findLookingEntity(player, 6); + if (looking == null) return; + + boolean validXRot = true; + switch (buttonID) { - case 0 -> AngleAddProcedure.execute(entity); - case 1 -> AngleReduceProcedure.execute(entity); - case 2 -> AngleAddPlusProcedure.execute(entity); - case 3 -> AngleReducePlusProcedure.execute(entity); - case 4 -> AngleReduceMiniProcedure.execute(entity); - case 5 -> AngleAddMiniProcedure.execute(entity); + case 0 -> { + if (looking.getXRot() <= -88) { + validXRot = false; + } else { + looking.setXRot(looking.getXRot() - 1); + } + } + case 1 -> { + if (looking.getXRot() >= -20) { + validXRot = false; + } else { + looking.setXRot(looking.getXRot() + 1); + } + } + case 2 -> { + if (looking.getXRot() <= -78) { + validXRot = false; + } else { + looking.setXRot(looking.getXRot() - 10); + } + } + case 3 -> { + if (looking.getXRot() >= -30) { + validXRot = false; + } else { + looking.setXRot(looking.getXRot() + 10); + } + } + case 4 -> { + if (looking.getXRot() >= -20.5) { + validXRot = false; + } else { + looking.setXRot(looking.getXRot() + 0.5f); + } + } + case 5 -> { + if (looking.getXRot() <= -87.5) { + validXRot = false; + } else { + looking.setXRot(looking.getXRot() - 0.5f); + } + } + } + + if (!validXRot) return; + looking.setYRot(looking.getYRot()); + looking.setYBodyRot(looking.getYRot()); + looking.setYHeadRot(looking.getYRot()); + looking.yRotO = looking.getYRot(); + looking.xRotO = looking.getXRot(); + if (looking instanceof LivingEntity living) { + living.yBodyRotO = living.getYRot(); + living.yHeadRotO = living.getYRot(); } } diff --git a/src/main/java/net/mcreator/target/procedures/AngleAddMiniProcedure.java b/src/main/java/net/mcreator/target/procedures/AngleAddMiniProcedure.java deleted file mode 100644 index 2c6f95d37..000000000 --- a/src/main/java/net/mcreator/target/procedures/AngleAddMiniProcedure.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.tools.TraceTool; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; - -public class AngleAddMiniProcedure { - public static void execute(Entity entity) { - Entity looking = TraceTool.findLookingEntity(entity, 6); - if (looking == null || looking.getXRot() <= -87.5) return; - - looking.setYRot(looking.getYRot()); - looking.setXRot((float) (looking.getXRot() - 0.5)); - looking.setYBodyRot(looking.getYRot()); - looking.setYHeadRot(looking.getYRot()); - looking.yRotO = looking.getYRot(); - looking.xRotO = looking.getXRot(); - if (looking instanceof LivingEntity living) { - living.yBodyRotO = living.getYRot(); - living.yHeadRotO = living.getYRot(); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/AngleAddPlusProcedure.java b/src/main/java/net/mcreator/target/procedures/AngleAddPlusProcedure.java deleted file mode 100644 index c0fce9558..000000000 --- a/src/main/java/net/mcreator/target/procedures/AngleAddPlusProcedure.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.tools.TraceTool; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; - -public class AngleAddPlusProcedure { - public static void execute(Entity entity) { - Entity looking = TraceTool.findLookingEntity(entity, 6); - if (looking == null || looking.getXRot() <= -78) return; - - looking.setYRot(looking.getYRot()); - looking.setXRot(looking.getXRot() - 10); - looking.setYBodyRot(looking.getYRot()); - looking.setYHeadRot(looking.getYRot()); - looking.yRotO = looking.getYRot(); - looking.xRotO = looking.getXRot(); - if (looking instanceof LivingEntity living) { - living.yBodyRotO = living.getYRot(); - living.yHeadRotO = living.getYRot(); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/AngleAddProcedure.java b/src/main/java/net/mcreator/target/procedures/AngleAddProcedure.java deleted file mode 100644 index 57d8d7723..000000000 --- a/src/main/java/net/mcreator/target/procedures/AngleAddProcedure.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.tools.TraceTool; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; - -public class AngleAddProcedure { - public static void execute(Entity entity) { - Entity looking = TraceTool.findLookingEntity(entity, 6); - if (looking == null || looking.getXRot() <= -88) return; - - looking.setYRot(looking.getYRot()); - looking.setXRot(looking.getXRot() - 1); - looking.setYBodyRot(looking.getYRot()); - looking.setYHeadRot(looking.getYRot()); - looking.yRotO = looking.getYRot(); - looking.xRotO = looking.getXRot(); - if (looking instanceof LivingEntity living) { - living.yBodyRotO = living.getYRot(); - living.yHeadRotO = living.getYRot(); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/AngleReduceMiniProcedure.java b/src/main/java/net/mcreator/target/procedures/AngleReduceMiniProcedure.java deleted file mode 100644 index 09e0cf7b7..000000000 --- a/src/main/java/net/mcreator/target/procedures/AngleReduceMiniProcedure.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.tools.TraceTool; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; - -public class AngleReduceMiniProcedure { - public static void execute(Entity entity) { - Entity looking = TraceTool.findLookingEntity(entity, 6); - if (looking == null || looking.getXRot() >= -20.5) return; - - looking.setYRot(looking.getYRot()); - looking.setXRot((float) (looking.getXRot() + 0.5)); - looking.setYBodyRot(looking.getYRot()); - looking.setYHeadRot(looking.getYRot()); - looking.yRotO = looking.getYRot(); - looking.xRotO = looking.getXRot(); - if (looking instanceof LivingEntity living) { - living.yBodyRotO = living.getYRot(); - living.yHeadRotO = living.getYRot(); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/AngleReducePlusProcedure.java b/src/main/java/net/mcreator/target/procedures/AngleReducePlusProcedure.java deleted file mode 100644 index c2a43d943..000000000 --- a/src/main/java/net/mcreator/target/procedures/AngleReducePlusProcedure.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.tools.TraceTool; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; - -public class AngleReducePlusProcedure { - public static void execute(Entity entity) { - Entity looking = TraceTool.findLookingEntity(entity, 6); - if (looking == null || looking.getXRot() >= -30) return; - - looking.setYRot(looking.getYRot()); - looking.setXRot(looking.getXRot() + 10); - looking.setYBodyRot(looking.getYRot()); - looking.setYHeadRot(looking.getYRot()); - looking.yRotO = looking.getYRot(); - looking.xRotO = looking.getXRot(); - if (looking instanceof LivingEntity living) { - living.yBodyRotO = living.getYRot(); - living.yHeadRotO = living.getYRot(); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/AngleReduceProcedure.java b/src/main/java/net/mcreator/target/procedures/AngleReduceProcedure.java deleted file mode 100644 index c59c1e87d..000000000 --- a/src/main/java/net/mcreator/target/procedures/AngleReduceProcedure.java +++ /dev/null @@ -1,22 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.tools.TraceTool; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; - -public class AngleReduceProcedure { - public static void execute(Entity entity) { - Entity looking = TraceTool.findLookingEntity(entity, 6); - if (looking == null || looking.getXRot() >= -20) return; - looking.setYRot(looking.getYRot()); - looking.setXRot(looking.getXRot() + 1); - looking.setYBodyRot(looking.getYRot()); - looking.setYHeadRot(looking.getYRot()); - looking.yRotO = looking.getYRot(); - looking.xRotO = looking.getXRot(); - if (looking instanceof LivingEntity living) { - living.yBodyRotO = living.getYRot(); - living.yHeadRotO = living.getYRot(); - } - } -}