From bd647f2a4efdc607c032ca8fb057238b18e43458 Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Sun, 12 May 2024 14:25:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96AA12=E6=8D=A2=E5=BC=B9?= =?UTF-8?q?=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../procedures/AA12ReloadProcedure.java | 26 +++++++++++++++++++ ...aiBeiBaoZhongShiMeiKeFaShengProcedure.java | 4 +-- .../procedures/ShotgunReload1Procedure.java | 26 ------------------- .../procedures/ShotgunReload2Procedure.java | 23 ---------------- 4 files changed, 28 insertions(+), 51 deletions(-) create mode 100644 src/main/java/net/mcreator/target/procedures/AA12ReloadProcedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/ShotgunReload1Procedure.java delete mode 100644 src/main/java/net/mcreator/target/procedures/ShotgunReload2Procedure.java diff --git a/src/main/java/net/mcreator/target/procedures/AA12ReloadProcedure.java b/src/main/java/net/mcreator/target/procedures/AA12ReloadProcedure.java new file mode 100644 index 000000000..9b5be835b --- /dev/null +++ b/src/main/java/net/mcreator/target/procedures/AA12ReloadProcedure.java @@ -0,0 +1,26 @@ +package net.mcreator.target.procedures; + +import net.mcreator.target.network.TargetModVariables; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.LivingEntity; + +public class AA12ReloadProcedure { + public static void execute(LivingEntity entity, boolean plusOne) { + CompoundTag tag = entity.getMainHandItem().getOrCreateTag(); + double mag = tag.getDouble("mag"); + double ammo = tag.getDouble("ammo"); + + double empty = mag - ammo + (plusOne ? 1 : 0); + double shotgunAmmo = entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c -> c.shotgunammo).orElse(0d); + + tag.putDouble("ammo", ammo + Math.min(empty, shotgunAmmo)); + + entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.shotgunammo = Math.max(0, shotgunAmmo - empty); + capability.syncPlayerVariables(entity); + }); + + tag.putDouble("reloading", 0); + tag.putDouble("emptyreload", 0); + } +} diff --git a/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index b8dcc483e..270daee1e 100644 --- a/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -37,7 +37,7 @@ public class Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { if (entity instanceof LivingEntity) { - ShotgunReload1Procedure.execute((LivingEntity) entity); + AA12ReloadProcedure.execute((LivingEntity) entity, false); } } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { @@ -62,7 +62,7 @@ public class Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { if (entity instanceof LivingEntity) { - ShotgunReload2Procedure.execute((LivingEntity) entity); + AA12ReloadProcedure.execute((LivingEntity) entity, true); } } } diff --git a/src/main/java/net/mcreator/target/procedures/ShotgunReload1Procedure.java b/src/main/java/net/mcreator/target/procedures/ShotgunReload1Procedure.java deleted file mode 100644 index 16c57dc98..000000000 --- a/src/main/java/net/mcreator/target/procedures/ShotgunReload1Procedure.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - -public class ShotgunReload1Procedure { - public static void execute(LivingEntity entity) { - ItemStack stack = entity.getMainHandItem(); - double mag = stack.getOrCreateTag().getDouble("mag"); - double ammo = stack.getOrCreateTag().getDouble("ammo"); - - double empty = mag - ammo; - double shotgunAmmo = entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables()).shotgunammo; - - stack.getOrCreateTag().putDouble("ammo", ammo + Math.min(empty, shotgunAmmo)); - - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.shotgunammo = shotgunAmmo >= empty ? shotgunAmmo - empty : 0; - capability.syncPlayerVariables(entity); - }); - - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } -} diff --git a/src/main/java/net/mcreator/target/procedures/ShotgunReload2Procedure.java b/src/main/java/net/mcreator/target/procedures/ShotgunReload2Procedure.java deleted file mode 100644 index 6b3180830..000000000 --- a/src/main/java/net/mcreator/target/procedures/ShotgunReload2Procedure.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - -public class ShotgunReload2Procedure { - public static void execute(LivingEntity entity) { - ItemStack stack = entity.getMainHandItem(); - double mag = stack.getOrCreateTag().getDouble("mag"); - double ammo = stack.getOrCreateTag().getDouble("ammo"); - double ammo2 = mag + 1 - ammo; - double shotgunAmmo = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunammo; - - stack.getOrCreateTag().putDouble("ammo", ammo + Math.min(ammo2, shotgunAmmo)); - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.shotgunammo = shotgunAmmo >= ammo2 ? shotgunAmmo - ammo2 : 0; - capability.syncPlayerVariables(entity); - }); - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } -}