From 4c59702669992ed2ed60636f5a35c6a05216a0c0 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 7 May 2024 22:42:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E6=AD=A6=E5=99=A8procedure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClientEventHandler.java} | 146 ++++++++++++++---- .../target/procedures/WeaponZomProcedure.java | 69 --------- .../procedures/WeaponfireProcedure.java | 116 -------------- 3 files changed, 117 insertions(+), 214 deletions(-) rename src/main/java/net/mcreator/target/{procedures/WeaponMoveProcedure.java => event/ClientEventHandler.java} (63%) delete mode 100644 src/main/java/net/mcreator/target/procedures/WeaponZomProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/WeaponfireProcedure.java diff --git a/src/main/java/net/mcreator/target/procedures/WeaponMoveProcedure.java b/src/main/java/net/mcreator/target/event/ClientEventHandler.java similarity index 63% rename from src/main/java/net/mcreator/target/procedures/WeaponMoveProcedure.java rename to src/main/java/net/mcreator/target/event/ClientEventHandler.java index ee39a67fa..72a185f2e 100644 --- a/src/main/java/net/mcreator/target/procedures/WeaponMoveProcedure.java +++ b/src/main/java/net/mcreator/target/event/ClientEventHandler.java @@ -1,50 +1,33 @@ -package net.mcreator.target.procedures; +package net.mcreator.target.event; +import net.mcreator.target.init.TargetModTags; +import net.mcreator.target.network.TargetModVariables; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.ItemTags; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.Vec3; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.ViewportEvent; -import net.minecraftforge.eventbus.api.Event; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -import javax.annotation.Nullable; - @Mod.EventBusSubscriber(value = Dist.CLIENT) -public class WeaponMoveProcedure { - private static ViewportEvent.ComputeCameraAngles _provider = null; - - private static void setAngles(float yaw, float pitch, float roll) { - _provider.setYaw(yaw); - _provider.setPitch(pitch); - _provider.setRoll(roll); - } +public class ClientEventHandler { @SubscribeEvent - public static void computeCameraangles(ViewportEvent.ComputeCameraAngles event) { - _provider = event; + public static void computeCameraAngles(ViewportEvent.ComputeCameraAngles event) { ClientLevel level = Minecraft.getInstance().level; - Entity entity = _provider.getCamera().getEntity(); - if (level != null && entity != null) { - Vec3 entPos = entity.getPosition((float) _provider.getPartialTick()); - execute(_provider, entity); + Entity entity = event.getCamera().getEntity(); + if (level != null && entity instanceof LivingEntity living) { + handleWeaponMove(living); + handleWeaponZoom(living); + handleWeaponFire(event, living); } } - public static void execute(Entity entity) { - execute(null, entity); - } - - private static void execute(@Nullable Event event, Entity entity) { - if (entity == null) - return; - if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).is(ItemTags.create(new ResourceLocation("target:gun")))) { + private static void handleWeaponMove(LivingEntity entity) { + if (entity.getMainHandItem().is(TargetModTags.Items.GUN)) { float fps = Minecraft.getInstance().getFps(); if (fps <= 0) { fps = 1f; @@ -223,4 +206,109 @@ public class WeaponMoveProcedure { } } } + + private static void handleWeaponZoom(LivingEntity entity) { + float fps = Minecraft.getInstance().getFps(); + if (fps <= 0) { + fps = 1f; + } + float times = 110f / fps; + if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming) { + if (entity.getPersistentData().getDouble("zoomtime") < 1) { + entity.getPersistentData().putDouble("zoomtime", + (entity.getPersistentData().getDouble("zoomtime") + entity.getMainHandItem().getOrCreateTag().getDouble("zoomspeed") * 0.02 * times)); + } else { + entity.getPersistentData().putDouble("zoomtime", 1); + } + } else { + if (entity.getPersistentData().getDouble("zoomtime") > 0) { + entity.getPersistentData().putDouble("zoomtime", (entity.getPersistentData().getDouble("zoomtime") - 0.02 * times)); + } else { + entity.getPersistentData().putDouble("zoomtime", 0); + } + } + entity.getPersistentData().putDouble("zoompos", (0.5 * Math.cos(Math.PI * Math.pow(Math.pow(entity.getPersistentData().getDouble("zoomtime"), 2) - 1, 2)) + 0.5)); + entity.getPersistentData().putDouble("zoomposz", (-Math.pow(2 * entity.getPersistentData().getDouble("zoomtime") - 1, 2) + 1)); + } + + private static void handleWeaponFire(ViewportEvent.ComputeCameraAngles event, LivingEntity entity) { + double yaw = event.getYaw(); + double pitch = event.getPitch(); + double roll = event.getRoll(); + + double pose; + double amplitude; + float fps = Minecraft.getInstance().getFps(); + if (fps <= 0) { + fps = 1f; + } + + ItemStack stack = entity.getMainHandItem(); + + float times = 45f / fps; + amplitude = 15000 * stack.getOrCreateTag().getDouble("recoily") + * stack.getOrCreateTag().getDouble("recoilx"); + if (entity.isShiftKeyDown() && entity.getBbHeight() >= 1 && entity.getPersistentData().getDouble("prone") == 0) { + pose = 0.9; + } else if (entity.getPersistentData().getDouble("prone") > 0) { + if (stack.getOrCreateTag().getDouble("bipod") == 1) { + pose = 0.75; + } else { + pose = 0.8; + } + } else { + pose = 1; + } + + if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).firing > 0) { + entity.getPersistentData().putDouble("firetime", 0.2); + if (0.3 > entity.getPersistentData().getDouble("firepos2")) { + entity.getPersistentData().putDouble("firepos2", (entity.getPersistentData().getDouble("firepos2") + 0.04 * times)); + } + } + if (0 < entity.getPersistentData().getDouble("firepos2")) { + entity.getPersistentData().putDouble("firepos2", (entity.getPersistentData().getDouble("firepos2") - 0.02 * times)); + } else { + entity.getPersistentData().putDouble("firepos2", 0); + } + if (0 < entity.getPersistentData().getDouble("firetime")) { + entity.getPersistentData().putDouble("firetime", (entity.getPersistentData().getDouble("firetime") + 0.075 * times)); + } + if (0 < entity.getPersistentData().getDouble("firetime") && entity.getPersistentData().getDouble("firetime") < 0.2) { + entity.getPersistentData().putDouble("firepos", + (pose * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + entity.getPersistentData().getDouble("firepos2")))); + if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilhorizon == 1) { + event.setYaw((float) (yaw - 0.2 * amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1)))); + event.setPitch((float) (pitch + 0.2 * amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1)))); + event.setRoll((float) (roll + amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1)))); + } else if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilhorizon == -1) { + event.setYaw((float) (yaw - 0.2 * amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1)))); + event.setPitch((float) (pitch + 0.2 * amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1)))); + event.setRoll((float) (roll - amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1)))); + } + } + if (0.2 <= entity.getPersistentData().getDouble("firetime") && entity.getPersistentData().getDouble("firetime") < 1) { + entity.getPersistentData().putDouble("firepos", + (pose * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + entity.getPersistentData().getDouble("firepos2")))); + if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilhorizon == 1) { + event.setYaw((float) (yaw - 0.2 * amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1)))); + event.setPitch((float) (pitch + 0.2 * amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1)))); + event.setRoll((float) (roll + amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1)))); + } else if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilhorizon == -1) { + event.setYaw((float) (yaw + 0.2 * amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1)))); + event.setPitch((float) (pitch - 0.2 * amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1)))); + event.setRoll((float) (roll - amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1)))); + } + } + if (0 <= entity.getPersistentData().getDouble("firetime") && entity.getPersistentData().getDouble("firetime") <= 0.25) { + entity.getPersistentData().putDouble("boltpos", (-Math.pow(8 * entity.getPersistentData().getDouble("firetime") - 1, 2) + 1)); + } + if (0.25 < entity.getPersistentData().getDouble("firetime") && entity.getPersistentData().getDouble("firetime") < 1) { + entity.getPersistentData().putDouble("boltpos", 0); + } + if (entity.getPersistentData().getDouble("firetime") >= 1) { + entity.getPersistentData().putDouble("firetime", 0); + } + } + } diff --git a/src/main/java/net/mcreator/target/procedures/WeaponZomProcedure.java b/src/main/java/net/mcreator/target/procedures/WeaponZomProcedure.java deleted file mode 100644 index 28714050c..000000000 --- a/src/main/java/net/mcreator/target/procedures/WeaponZomProcedure.java +++ /dev/null @@ -1,69 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.ViewportEvent; -import net.minecraftforge.eventbus.api.Event; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -import javax.annotation.Nullable; - -@Mod.EventBusSubscriber(value = Dist.CLIENT) -public class WeaponZomProcedure { - private static ViewportEvent.ComputeCameraAngles _provider = null; - - private static void setAngles(float yaw, float pitch, float roll) { - _provider.setYaw(yaw); - _provider.setPitch(pitch); - _provider.setRoll(roll); - } - - @SubscribeEvent - public static void computeCameraangles(ViewportEvent.ComputeCameraAngles event) { - _provider = event; - ClientLevel level = Minecraft.getInstance().level; - Entity entity = _provider.getCamera().getEntity(); - if (level != null && entity != null) { - Vec3 entPos = entity.getPosition((float) _provider.getPartialTick()); - execute(_provider, entity); - } - } - - public static void execute(Entity entity) { - execute(null, entity); - } - - private static void execute(@Nullable Event event, Entity entity) { - if (entity == null) - return; - double time = 0; - float fps = Minecraft.getInstance().getFps(); - if (fps <= 0) { - fps = 1f; - } - float times = 110f / fps; - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming) { - if (entity.getPersistentData().getDouble("zoomtime") < 1) { - entity.getPersistentData().putDouble("zoomtime", - (entity.getPersistentData().getDouble("zoomtime") + (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("zoomspeed") * 0.02 * times)); - } else { - entity.getPersistentData().putDouble("zoomtime", 1); - } - } else { - if (entity.getPersistentData().getDouble("zoomtime") > 0) { - entity.getPersistentData().putDouble("zoomtime", (entity.getPersistentData().getDouble("zoomtime") - 0.02 * times)); - } else { - entity.getPersistentData().putDouble("zoomtime", 0); - } - } - entity.getPersistentData().putDouble("zoompos", (0.5 * Math.cos(Math.PI * Math.pow(Math.pow(entity.getPersistentData().getDouble("zoomtime"), 2) - 1, 2)) + 0.5)); - entity.getPersistentData().putDouble("zoomposz", (-Math.pow(2 * entity.getPersistentData().getDouble("zoomtime") - 1, 2) + 1)); - } -} diff --git a/src/main/java/net/mcreator/target/procedures/WeaponfireProcedure.java b/src/main/java/net/mcreator/target/procedures/WeaponfireProcedure.java deleted file mode 100644 index c724d5e71..000000000 --- a/src/main/java/net/mcreator/target/procedures/WeaponfireProcedure.java +++ /dev/null @@ -1,116 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.client.event.ViewportEvent; -import net.minecraftforge.eventbus.api.Event; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -import javax.annotation.Nullable; - -@Mod.EventBusSubscriber(value = Dist.CLIENT) -public class WeaponfireProcedure { - private static ViewportEvent.ComputeCameraAngles _provider = null; - - private static void setAngles(float yaw, float pitch, float roll) { - _provider.setYaw(yaw); - _provider.setPitch(pitch); - _provider.setRoll(roll); - } - - @SubscribeEvent - public static void computeCameraangles(ViewportEvent.ComputeCameraAngles event) { - _provider = event; - ClientLevel level = Minecraft.getInstance().level; - Entity entity = _provider.getCamera().getEntity(); - if (level != null && entity != null) { - Vec3 entPos = entity.getPosition((float) _provider.getPartialTick()); - execute(_provider, entity, _provider.getPitch(), _provider.getRoll(), _provider.getYaw()); - } - } - - public static void execute(Entity entity, double pitch, double roll, double yaw) { - execute(null, entity, pitch, roll, yaw); - } - - private static void execute(@Nullable Event event, Entity entity, double pitch, double roll, double yaw) { - if (entity == null) - return; - double pose = 0; - double amplitude = 0; - float fps = Minecraft.getInstance().getFps(); - if (fps <= 0) { - fps = 1f; - } - float times = 45f / fps; - amplitude = 15000 * (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("recoily") - * (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("recoilx"); - if (entity.isShiftKeyDown() && entity.getBbHeight() >= 1 && entity.getPersistentData().getDouble("prone") == 0) { - pose = 0.9; - } else if (entity.getPersistentData().getDouble("prone") > 0) { - if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("bipod") == 1) { - pose = 0.75; - } else { - pose = 0.8; - } - } else { - pose = 1; - } - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).firing > 0) { - entity.getPersistentData().putDouble("firetime", 0.2); - if (0.3 > entity.getPersistentData().getDouble("firepos2")) { - entity.getPersistentData().putDouble("firepos2", (entity.getPersistentData().getDouble("firepos2") + 0.04 * times)); - } - } - if (0 < entity.getPersistentData().getDouble("firepos2")) { - entity.getPersistentData().putDouble("firepos2", (entity.getPersistentData().getDouble("firepos2") - 0.02 * times)); - } else { - entity.getPersistentData().putDouble("firepos2", 0); - } - if (0 < entity.getPersistentData().getDouble("firetime")) { - entity.getPersistentData().putDouble("firetime", (entity.getPersistentData().getDouble("firetime") + 0.075 * times)); - } - if (0 < entity.getPersistentData().getDouble("firetime") && entity.getPersistentData().getDouble("firetime") < 0.2) { - entity.getPersistentData().putDouble("firepos", - (pose * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + entity.getPersistentData().getDouble("firepos2")))); - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilhorizon == 1) { - setAngles((float) (yaw - 0.2 * amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1))), - (float) (pitch + 0.2 * amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1))), - (float) (roll + amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1)))); - } else if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilhorizon == -1) { - setAngles((float) (yaw - 0.2 * amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1))), - (float) (pitch + 0.2 * amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1))), - (float) (roll - amplitude * ((-18.34) * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) + 8.58 * entity.getPersistentData().getDouble("firetime") + 0.7 * (2 * Math.random() - 1)))); - } - } - if (0.2 <= entity.getPersistentData().getDouble("firetime") && entity.getPersistentData().getDouble("firetime") < 1) { - entity.getPersistentData().putDouble("firepos", - (pose * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + entity.getPersistentData().getDouble("firepos2")))); - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilhorizon == 1) { - setAngles((float) (yaw - 0.2 * amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1))), - (float) (pitch + 0.2 * amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1))), - (float) (roll + amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1)))); - } else if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilhorizon == -1) { - setAngles((float) (yaw + 0.2 * amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1))), - (float) (pitch - 0.2 * amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1))), - (float) (roll - amplitude * (3.34 * Math.pow(entity.getPersistentData().getDouble("firetime"), 2) - 5.5 * entity.getPersistentData().getDouble("firetime") + 2.167 + 0.7 * (2 * Math.random() - 1)))); - } - } - if (0 <= entity.getPersistentData().getDouble("firetime") && entity.getPersistentData().getDouble("firetime") <= 0.25) { - entity.getPersistentData().putDouble("boltpos", (-Math.pow(8 * entity.getPersistentData().getDouble("firetime") - 1, 2) + 1)); - } - if (0.25 < entity.getPersistentData().getDouble("firetime") && entity.getPersistentData().getDouble("firetime") < 1) { - entity.getPersistentData().putDouble("boltpos", 0); - } - if (entity.getPersistentData().getDouble("firetime") >= 1) { - entity.getPersistentData().putDouble("firetime", 0); - } - } -}