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(); - } - } -}