diff --git a/src/main/java/net/mcreator/target/TargetMod.java b/src/main/java/net/mcreator/target/TargetMod.java index de7782095..52a7c7708 100644 --- a/src/main/java/net/mcreator/target/TargetMod.java +++ b/src/main/java/net/mcreator/target/TargetMod.java @@ -105,13 +105,7 @@ public class TargetMod { addNetworkMessage(AdjustZoomFovMessage.class, AdjustZoomFovMessage::encode, AdjustZoomFovMessage::decode, AdjustZoomFovMessage::handler); addNetworkMessage(AdjustMortarAngleMessage.class, AdjustMortarAngleMessage::encode, AdjustMortarAngleMessage::decode, AdjustMortarAngleMessage::handler); addNetworkMessage(InteractMessage.class, InteractMessage::encode, InteractMessage::decode, InteractMessage::handler); - - addNetworkMessage(DroneMoveLeftMessage.class, DroneMoveLeftMessage::encode, DroneMoveLeftMessage::decode, DroneMoveLeftMessage::handler); - addNetworkMessage(DroneMoveRightMessage.class, DroneMoveRightMessage::encode, DroneMoveRightMessage::decode, DroneMoveRightMessage::handler); - addNetworkMessage(DroneMoveForwardMessage.class, DroneMoveForwardMessage::encode, DroneMoveForwardMessage::decode, DroneMoveForwardMessage::handler); - addNetworkMessage(DroneMoveBackwardMessage.class, DroneMoveBackwardMessage::encode, DroneMoveBackwardMessage::decode, DroneMoveBackwardMessage::handler); - addNetworkMessage(DroneMoveUpMessage.class, DroneMoveUpMessage::encode, DroneMoveUpMessage::decode, DroneMoveUpMessage::handler); - addNetworkMessage(DroneMoveDownMessage.class, DroneMoveDownMessage::encode, DroneMoveDownMessage::decode, DroneMoveDownMessage::handler); + addNetworkMessage(DroneMovementMessage.class, DroneMovementMessage::encode, DroneMovementMessage::decode, DroneMovementMessage::handler); addNetworkMessage(DroneFireMessage.class, DroneFireMessage::buffer, DroneFireMessage::new, DroneFireMessage::handler); event.enqueueWork(() -> BrewingRecipeRegistry.addRecipe(Ingredient.of(PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER)), diff --git a/src/main/java/net/mcreator/target/client/ClickHandler.java b/src/main/java/net/mcreator/target/client/ClickHandler.java index 2b9536691..b332b5422 100644 --- a/src/main/java/net/mcreator/target/client/ClickHandler.java +++ b/src/main/java/net/mcreator/target/client/ClickHandler.java @@ -2,18 +2,15 @@ package net.mcreator.target.client; import com.mojang.blaze3d.platform.InputConstants; import net.mcreator.target.TargetMod; -import net.mcreator.target.client.gui.RangeHelper; import net.mcreator.target.entity.Mk42Entity; import net.mcreator.target.entity.MortarEntity; import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.init.TargetModKeyMappings; import net.mcreator.target.init.TargetModMobEffects; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.message.*; import net.mcreator.target.tools.TraceTool; import net.minecraft.client.Minecraft; -import net.minecraft.network.chat.Component; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -151,54 +148,37 @@ public class ClickHandler { @SubscribeEvent public static void onKeyPressed(InputEvent.Key event) { if (notInGame()) return; - if (event.getAction() != InputConstants.PRESS) return; - setKeyState(event.getKey(), 1); + + boolean clicked; + if (event.getAction() == InputConstants.PRESS) { + clicked = true; + } else if (event.getAction() == InputConstants.RELEASE) { + clicked = false; + } else { + return; + } + + setKeyState(event.getKey(), clicked ? 1 : 0); int button = event.getKey(); if (button == GLFW.GLFW_KEY_A) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveLeftMessage(true)); + TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(0, clicked)); } if (button == GLFW.GLFW_KEY_D) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveRightMessage(true)); + TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(1, clicked)); } if (button == GLFW.GLFW_KEY_W) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveForwardMessage(true)); + TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(2, clicked)); } if (button == GLFW.GLFW_KEY_S) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveBackwardMessage(true)); + TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(3, clicked)); } if (button == GLFW.GLFW_KEY_SPACE) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveUpMessage(true)); + TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(4, clicked)); } - if (button == GLFW.GLFW_KEY_LEFT_CONTROL) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveDownMessage(true)); + if (button == GLFW.GLFW_KEY_LEFT_SHIFT) { + TargetMod.PACKET_HANDLER.sendToServer(new DroneMovementMessage(5, clicked)); } } - @SubscribeEvent - public static void onKeyReleased(InputEvent.Key event) { - if (notInGame()) return; - if (event.getAction() != InputConstants.RELEASE) return; - setKeyState(event.getKey(), 0); - - int button = event.getKey(); - if (button == GLFW.GLFW_KEY_A) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveLeftMessage(false)); - } - if (button == GLFW.GLFW_KEY_D) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveRightMessage(false)); - } - if (button == GLFW.GLFW_KEY_W) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveForwardMessage(false)); - } - if (button == GLFW.GLFW_KEY_S) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveBackwardMessage(false)); - } - if (button == GLFW.GLFW_KEY_SPACE) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveUpMessage(false)); - } - if (button == GLFW.GLFW_KEY_LEFT_CONTROL) { - TargetMod.PACKET_HANDLER.sendToServer(new DroneMoveDownMessage(false)); - } - } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/target/entity/DroneEntity.java b/src/main/java/net/mcreator/target/entity/DroneEntity.java index 82448caa9..da225e132 100644 --- a/src/main/java/net/mcreator/target/entity/DroneEntity.java +++ b/src/main/java/net/mcreator/target/entity/DroneEntity.java @@ -1,14 +1,19 @@ - package net.mcreator.target.entity; -import net.mcreator.target.init.*; -import net.mcreator.target.item.common.ammo.CannonShellItem; +import net.mcreator.target.init.TargetModEntities; +import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.init.TargetModSounds; +import net.mcreator.target.item.Monitor; import net.mcreator.target.tools.SoundTool; import net.minecraft.ChatFormatting; -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; @@ -16,41 +21,29 @@ import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.*; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation; +import net.minecraft.world.entity.ai.navigation.PathNavigation; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; import net.minecraftforge.items.ItemHandlerHelper; -import net.minecraftforge.registries.ForgeRegistries; -import software.bernie.geckolib.util.GeckoLibUtil; -import software.bernie.geckolib.core.object.PlayState; -import software.bernie.geckolib.core.animation.RawAnimation; -import software.bernie.geckolib.core.animation.AnimationState; -import software.bernie.geckolib.core.animation.AnimationController; -import software.bernie.geckolib.core.animation.AnimatableManager; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.animatable.GeoEntity; - -import net.minecraftforge.network.PlayMessages; import net.minecraftforge.network.NetworkHooks; - -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.Level; -import net.minecraft.world.entity.ai.navigation.PathNavigation; -import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation; -import net.minecraft.world.entity.ai.attributes.Attributes; -import net.minecraft.world.entity.ai.attributes.AttributeSupplier; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.network.syncher.SynchedEntityData; -import net.minecraft.network.syncher.EntityDataSerializers; -import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.network.protocol.game.ClientGamePacketListener; -import net.minecraft.network.protocol.Packet; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.core.BlockPos; - -import net.mcreator.target.item.Monitor; +import net.minecraftforge.network.PlayMessages; +import net.minecraftforge.registries.ForgeRegistries; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.util.GeckoLibUtil; import java.util.Objects; @@ -64,7 +57,6 @@ public class DroneEntity extends PathfinderMob implements GeoEntity { private float moveZ = 0; private boolean move = false; - public String animationprocedure = "empty"; public DroneEntity(PlayMessages.SpawnEntity packet, Level world) { diff --git a/src/main/java/net/mcreator/target/item/Monitor.java b/src/main/java/net/mcreator/target/item/Monitor.java index e2c68dd8f..dd92fa2fe 100644 --- a/src/main/java/net/mcreator/target/item/Monitor.java +++ b/src/main/java/net/mcreator/target/item/Monitor.java @@ -5,7 +5,6 @@ import net.mcreator.target.tools.ItemNBTTool; import net.mcreator.target.tools.TooltipTool; import net.minecraft.client.CameraType; import net.minecraft.client.Minecraft; -import net.minecraft.client.player.LocalPlayer; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; @@ -37,9 +36,13 @@ public class Monitor extends Item { @Override public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { - InteractionResultHolder ar = super.use(world, player, hand); - Minecraft mc = Minecraft.getInstance(); ItemStack stack = player.getMainHandItem(); + + if (!ItemNBTTool.getBoolean(stack, LINKED, false)) { + return super.use(world, player, hand); + } + + Minecraft mc = Minecraft.getInstance(); if (!stack.getOrCreateTag().getBoolean("Using")) { stack.getOrCreateTag().putBoolean("Using", true); mc.options.setCameraType(CameraType.THIRD_PERSON_BACK); @@ -50,17 +53,18 @@ public class Monitor extends Item { DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null); - if (drone != null) { - drone.getPersistentData().putBoolean("left",false); - drone.getPersistentData().putBoolean("right",false); - drone.getPersistentData().putBoolean("forward",false); - drone.getPersistentData().putBoolean("backward",false); - drone.getPersistentData().putBoolean("up",false); - drone.getPersistentData().putBoolean("down",false); - } - return ar; - } + if (drone != null) { + drone.getPersistentData().putBoolean("left", false); + drone.getPersistentData().putBoolean("right", false); + drone.getPersistentData().putBoolean("forward", false); + drone.getPersistentData().putBoolean("backward", false); + drone.getPersistentData().putBoolean("up", false); + drone.getPersistentData().putBoolean("down", false); + } + + return super.use(world, player, hand); + } @Override public void appendHoverText(ItemStack stack, Level world, List list, TooltipFlag flag) { diff --git a/src/main/java/net/mcreator/target/network/message/DroneMoveBackwardMessage.java b/src/main/java/net/mcreator/target/network/message/DroneMoveBackwardMessage.java deleted file mode 100644 index 93a3f5069..000000000 --- a/src/main/java/net/mcreator/target/network/message/DroneMoveBackwardMessage.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.mcreator.target.network.message; - -import net.mcreator.target.entity.DroneEntity; -import net.mcreator.target.init.TargetModItems; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.network.NetworkEvent; - -import java.util.function.Supplier; - -public class DroneMoveBackwardMessage { - private final boolean backward; - - public DroneMoveBackwardMessage(boolean backward) { - this.backward = backward; - } - - public static DroneMoveBackwardMessage decode(FriendlyByteBuf buffer) { - return new DroneMoveBackwardMessage(buffer.readBoolean()); - } - - public static void encode(DroneMoveBackwardMessage message, FriendlyByteBuf buffer) { - buffer.writeBoolean(message.backward); - } - - public static void handler(DroneMoveBackwardMessage message, Supplier contextSupplier) { - NetworkEvent.Context context = contextSupplier.get(); - context.enqueueWork(() -> { - if (context.getSender() != null) { - pressAction(context.getSender(), message.backward); - } - }); - context.setPacketHandled(true); - } - - public static void pressAction(Player player, boolean backward) { - ItemStack stack = player.getMainHandItem(); - if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) { - DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) - .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null); - if (drone != null) { - if (backward) { - drone.getPersistentData().putBoolean("backward",true); - } else { - drone.getPersistentData().putBoolean("backward",false); - } - } - } - } -} diff --git a/src/main/java/net/mcreator/target/network/message/DroneMoveDownMessage.java b/src/main/java/net/mcreator/target/network/message/DroneMoveDownMessage.java deleted file mode 100644 index 17e68e87a..000000000 --- a/src/main/java/net/mcreator/target/network/message/DroneMoveDownMessage.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.mcreator.target.network.message; - -import net.mcreator.target.entity.DroneEntity; -import net.mcreator.target.init.TargetModItems; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.network.NetworkEvent; - -import java.util.function.Supplier; - -public class DroneMoveDownMessage { - private final boolean down; - - public DroneMoveDownMessage(boolean down) { - this.down = down; - } - - public static DroneMoveDownMessage decode(FriendlyByteBuf buffer) { - return new DroneMoveDownMessage(buffer.readBoolean()); - } - - public static void encode(DroneMoveDownMessage message, FriendlyByteBuf buffer) { - buffer.writeBoolean(message.down); - } - - public static void handler(DroneMoveDownMessage message, Supplier contextSupplier) { - NetworkEvent.Context context = contextSupplier.get(); - context.enqueueWork(() -> { - if (context.getSender() != null) { - pressAction(context.getSender(), message.down); - } - }); - context.setPacketHandled(true); - } - - public static void pressAction(Player player, boolean down) { - ItemStack stack = player.getMainHandItem(); - if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) { - DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) - .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null); - if (drone != null) { - if (down) { - drone.getPersistentData().putBoolean("down",true); - } else { - drone.getPersistentData().putBoolean("down",false); - } - } - } - } -} diff --git a/src/main/java/net/mcreator/target/network/message/DroneMoveForwardMessage.java b/src/main/java/net/mcreator/target/network/message/DroneMoveForwardMessage.java deleted file mode 100644 index 599dfdb00..000000000 --- a/src/main/java/net/mcreator/target/network/message/DroneMoveForwardMessage.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.mcreator.target.network.message; - -import net.mcreator.target.entity.DroneEntity; -import net.mcreator.target.init.TargetModItems; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.network.NetworkEvent; - -import java.util.function.Supplier; - -public class DroneMoveForwardMessage { - private final boolean forward; - - public DroneMoveForwardMessage(boolean forward) { - this.forward = forward; - } - - public static DroneMoveForwardMessage decode(FriendlyByteBuf buffer) { - return new DroneMoveForwardMessage(buffer.readBoolean()); - } - - public static void encode(DroneMoveForwardMessage message, FriendlyByteBuf buffer) { - buffer.writeBoolean(message.forward); - } - - public static void handler(DroneMoveForwardMessage message, Supplier contextSupplier) { - NetworkEvent.Context context = contextSupplier.get(); - context.enqueueWork(() -> { - if (context.getSender() != null) { - pressAction(context.getSender(), message.forward); - } - }); - context.setPacketHandled(true); - } - - public static void pressAction(Player player, boolean forward) { - ItemStack stack = player.getMainHandItem(); - if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) { - DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) - .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null); - if (drone != null) { - if (forward) { - drone.getPersistentData().putBoolean("forward",true); - } else { - drone.getPersistentData().putBoolean("forward",false); - } - } - } - } -} diff --git a/src/main/java/net/mcreator/target/network/message/DroneMoveLeftMessage.java b/src/main/java/net/mcreator/target/network/message/DroneMoveLeftMessage.java deleted file mode 100644 index 493dcb2e6..000000000 --- a/src/main/java/net/mcreator/target/network/message/DroneMoveLeftMessage.java +++ /dev/null @@ -1,52 +0,0 @@ -package net.mcreator.target.network.message; - -import net.mcreator.target.entity.DroneEntity; -import net.mcreator.target.init.TargetModItems; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraftforge.network.NetworkEvent; - -import java.util.function.Supplier; - -public class DroneMoveLeftMessage { - private final boolean left; - - public DroneMoveLeftMessage(boolean left) { - this.left = left; - } - - public static DroneMoveLeftMessage decode(FriendlyByteBuf buffer) { - return new DroneMoveLeftMessage(buffer.readBoolean()); - } - - public static void encode(DroneMoveLeftMessage message, FriendlyByteBuf buffer) { - buffer.writeBoolean(message.left); - } - - public static void handler(DroneMoveLeftMessage message, Supplier contextSupplier) { - NetworkEvent.Context context = contextSupplier.get(); - context.enqueueWork(() -> { - if (context.getSender() != null) { - pressAction(context.getSender(), message.left); - } - }); - context.setPacketHandled(true); - } - - public static void pressAction(Player player, boolean left) { - ItemStack stack = player.getMainHandItem(); - if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) { - DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) - .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null); - if (drone != null) { - if (left) { - drone.getPersistentData().putBoolean("left",true); - } else { - drone.getPersistentData().putBoolean("left",false); - } - } - } - } -} diff --git a/src/main/java/net/mcreator/target/network/message/DroneMoveRightMessage.java b/src/main/java/net/mcreator/target/network/message/DroneMoveRightMessage.java deleted file mode 100644 index 23b71f37a..000000000 --- a/src/main/java/net/mcreator/target/network/message/DroneMoveRightMessage.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.mcreator.target.network.message; - -import net.mcreator.target.entity.DroneEntity; -import net.mcreator.target.init.TargetModItems; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.network.NetworkEvent; - -import java.util.function.Supplier; - -public class DroneMoveRightMessage { - private final boolean right; - - public DroneMoveRightMessage(boolean right) { - this.right = right; - } - - public static DroneMoveRightMessage decode(FriendlyByteBuf buffer) { - return new DroneMoveRightMessage(buffer.readBoolean()); - } - - public static void encode(DroneMoveRightMessage message, FriendlyByteBuf buffer) { - buffer.writeBoolean(message.right); - } - - public static void handler(DroneMoveRightMessage message, Supplier contextSupplier) { - NetworkEvent.Context context = contextSupplier.get(); - context.enqueueWork(() -> { - if (context.getSender() != null) { - pressAction(context.getSender(), message.right); - } - }); - context.setPacketHandled(true); - } - - public static void pressAction(Player player, boolean left) { - ItemStack stack = player.getMainHandItem(); - if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) { - DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) - .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null); - if (drone != null) { - if (left) { - drone.getPersistentData().putBoolean("right",true); - } else { - drone.getPersistentData().putBoolean("right",false); - } - } - } - } -} diff --git a/src/main/java/net/mcreator/target/network/message/DroneMoveUpMessage.java b/src/main/java/net/mcreator/target/network/message/DroneMoveUpMessage.java deleted file mode 100644 index 31b7e085d..000000000 --- a/src/main/java/net/mcreator/target/network/message/DroneMoveUpMessage.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.mcreator.target.network.message; - -import net.mcreator.target.entity.DroneEntity; -import net.mcreator.target.init.TargetModItems; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.network.NetworkEvent; - -import java.util.function.Supplier; - -public class DroneMoveUpMessage { - private final boolean up; - - public DroneMoveUpMessage(boolean up) { - this.up = up; - } - - public static DroneMoveUpMessage decode(FriendlyByteBuf buffer) { - return new DroneMoveUpMessage(buffer.readBoolean()); - } - - public static void encode(DroneMoveUpMessage message, FriendlyByteBuf buffer) { - buffer.writeBoolean(message.up); - } - - public static void handler(DroneMoveUpMessage message, Supplier contextSupplier) { - NetworkEvent.Context context = contextSupplier.get(); - context.enqueueWork(() -> { - if (context.getSender() != null) { - pressAction(context.getSender(), message.up); - } - }); - context.setPacketHandled(true); - } - - public static void pressAction(Player player, boolean up) { - ItemStack stack = player.getMainHandItem(); - if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) { - DroneEntity drone = player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) - .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst().orElse(null); - if (drone != null) { - if (up) { - drone.getPersistentData().putBoolean("up",true); - } else { - drone.getPersistentData().putBoolean("up",false); - } - } - } - } -} diff --git a/src/main/java/net/mcreator/target/network/message/DroneMovementMessage.java b/src/main/java/net/mcreator/target/network/message/DroneMovementMessage.java new file mode 100644 index 000000000..f74a6b30b --- /dev/null +++ b/src/main/java/net/mcreator/target/network/message/DroneMovementMessage.java @@ -0,0 +1,68 @@ +package net.mcreator.target.network.message; + +import net.mcreator.target.entity.DroneEntity; +import net.mcreator.target.init.TargetModItems; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.network.NetworkEvent; + +import java.util.function.Supplier; + +public class DroneMovementMessage { + private final int direction; + private final boolean clicked; + + public DroneMovementMessage(int direction, boolean clicked) { + this.direction = direction; + this.clicked = clicked; + } + + public static DroneMovementMessage decode(FriendlyByteBuf buffer) { + return new DroneMovementMessage(buffer.readInt(), buffer.readBoolean()); + } + + public static void encode(DroneMovementMessage message, FriendlyByteBuf buffer) { + buffer.writeInt(message.direction); + buffer.writeBoolean(message.clicked); + } + + public static void handler(DroneMovementMessage message, Supplier contextSupplier) { + NetworkEvent.Context context = contextSupplier.get(); + context.enqueueWork(() -> { + if (context.getSender() != null) { + Player player = context.getSender(); + + ItemStack stack = player.getMainHandItem(); + + if (stack.is(TargetModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) { + player.level().getEntitiesOfClass(DroneEntity.class, player.getBoundingBox().inflate(512)) + .stream().filter(e -> e.getStringUUID().equals(stack.getOrCreateTag().getString("LinkedDrone"))).findFirst() + .ifPresent(drone -> { + switch (message.direction) { + case 0: + drone.getPersistentData().putBoolean("left", message.clicked); + break; + case 1: + drone.getPersistentData().putBoolean("right", message.clicked); + break; + case 2: + drone.getPersistentData().putBoolean("forward", message.clicked); + break; + case 3: + drone.getPersistentData().putBoolean("backward", message.clicked); + break; + case 4: + drone.getPersistentData().putBoolean("up", message.clicked); + break; + case 5: + drone.getPersistentData().putBoolean("down", message.clicked); + break; + } + }); + } + } + }); + context.setPacketHandled(true); + } +}