diff --git a/src/main/java/net/mcreator/target/item/gun/BocekItem.java b/src/main/java/net/mcreator/target/item/gun/BocekItem.java index edbee85e7..06a8aadfe 100644 --- a/src/main/java/net/mcreator/target/item/gun/BocekItem.java +++ b/src/main/java/net/mcreator/target/item/gun/BocekItem.java @@ -5,7 +5,7 @@ import com.google.common.collect.Multimap; import net.mcreator.target.client.renderer.item.BocekItemRenderer; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.procedures.BocekreloadProcedure; +import net.mcreator.target.procedures.BocekReloadProcedure; import net.mcreator.target.tools.GunsTool; import net.mcreator.target.tools.RarityTool; import net.mcreator.target.tools.TooltipTool; @@ -147,7 +147,7 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem { if (entity instanceof Player player) { itemstack.getOrCreateTag().putDouble("maxammo", getAmmoCount(player)); } - BocekreloadProcedure.execute(entity, itemstack); + BocekReloadProcedure.execute(entity, itemstack); } public static double getAmmoCount(Player player) { diff --git a/src/main/java/net/mcreator/target/item/gun/VectorItem.java b/src/main/java/net/mcreator/target/item/gun/VectorItem.java index fc0cbc6b3..fe6c1f901 100644 --- a/src/main/java/net/mcreator/target/item/gun/VectorItem.java +++ b/src/main/java/net/mcreator/target/item/gun/VectorItem.java @@ -8,9 +8,8 @@ import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.procedures.HandgunReload1Procedure; -import net.mcreator.target.procedures.HandgunReload2Procedure; import net.mcreator.target.procedures.WeaponDrawLightProcedure; +import net.mcreator.target.tools.GunReload; import net.mcreator.target.tools.GunsTool; import net.mcreator.target.tools.TooltipTool; import net.minecraft.client.Minecraft; @@ -180,7 +179,7 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { tag.putDouble("reloadtime", 0); } if (tag.getDouble("reloadtime") == 1 && mainHandItem.getOrCreateTag().getDouble("id") == id) { - HandgunReload1Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.HANDGUN); } } else if (tag.getDouble("reloading") == 1 && tag.getDouble("ammo") > 0) { if (tag.getDouble("reloadtime") == 47) { @@ -197,7 +196,7 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { tag.putDouble("reloadtime", 0); } if (tag.getDouble("reloadtime") == 1 && mainHandItem.getOrCreateTag().getDouble("id") == id) { - HandgunReload2Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.HANDGUN, true); } } diff --git a/src/main/java/net/mcreator/target/procedures/AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 0799a9aa3..04a210d5e 100644 --- a/src/main/java/net/mcreator/target/procedures/AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -39,7 +40,7 @@ public class AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 41) { @@ -62,7 +63,7 @@ public class AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity, true); + GunReload.reload(entity, GunReload.GunType.RIFLE, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index b9e699154..4cb82b30d 100644 --- a/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -36,9 +37,7 @@ public class Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - if (entity instanceof LivingEntity) { - ShotgunReloadProcedure.execute((LivingEntity) entity); - } + GunReload.reload(entity, GunReload.GunType.SHOTGUN); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 41) { @@ -61,9 +60,7 @@ public class Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - if (entity instanceof LivingEntity) { - ShotgunReloadProcedure.execute((LivingEntity) entity, true); - } + GunReload.reload(entity, GunReload.GunType.SHOTGUN, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/BocekReloadProcedure.java b/src/main/java/net/mcreator/target/procedures/BocekReloadProcedure.java new file mode 100644 index 000000000..9be343178 --- /dev/null +++ b/src/main/java/net/mcreator/target/procedures/BocekReloadProcedure.java @@ -0,0 +1,18 @@ +package net.mcreator.target.procedures; + +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.item.ItemStack; + +public class BocekReloadProcedure { + // TODO 合并至GunReload + public static void execute(Entity entity, ItemStack itemstack) { + if (entity == null) return; + + CompoundTag tag = itemstack.getOrCreateTag(); + if (tag.getDouble("arrowempty") > 0) { + tag.putDouble("arrowempty", tag.getDouble("arrowempty") - 1); + } + WeaponDrawProcedure.execute(entity, itemstack); + } +} diff --git a/src/main/java/net/mcreator/target/procedures/BocekreloadProcedure.java b/src/main/java/net/mcreator/target/procedures/BocekreloadProcedure.java deleted file mode 100644 index 0c5f6e933..000000000 --- a/src/main/java/net/mcreator/target/procedures/BocekreloadProcedure.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.mcreator.target.procedures; - -import net.minecraft.world.entity.Entity; -import net.minecraft.world.item.ItemStack; - -public class BocekreloadProcedure { - public static void execute(Entity entity, ItemStack itemstack) { - if (entity == null) - return; - double ammo1 = 0; - double id = 0; - if (itemstack.getOrCreateTag().getDouble("arrowempty") > 0) { - itemstack.getOrCreateTag().putDouble("arrowempty", (itemstack.getOrCreateTag().getDouble("arrowempty") - 1)); - } - WeaponDrawProcedure.execute(entity, itemstack); - } -} diff --git a/src/main/java/net/mcreator/target/procedures/DevotionWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/DevotionWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 607772fc5..036ae82c3 100644 --- a/src/main/java/net/mcreator/target/procedures/DevotionWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/DevotionWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -39,7 +40,7 @@ public class DevotionWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 51) { @@ -63,7 +64,7 @@ public class DevotionWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity, true); + GunReload.reload(entity, GunReload.GunType.RIFLE, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/HandgunReload1Procedure.java b/src/main/java/net/mcreator/target/procedures/HandgunReload1Procedure.java deleted file mode 100644 index 66b9405bc..000000000 --- a/src/main/java/net/mcreator/target/procedures/HandgunReload1Procedure.java +++ /dev/null @@ -1,40 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - -public class HandgunReload1Procedure { - public static void execute(Entity entity) { - if (entity == null) - return; - double ammo1; - ItemStack stack; - stack = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); - ammo1 = stack.getOrCreateTag().getDouble("mag") - stack.getOrCreateTag().getDouble("ammo"); - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunAmmo >= ammo1) { - { - double _setval = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunAmmo - ammo1; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.handgunAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - stack.getOrCreateTag().putDouble("ammo", (stack.getOrCreateTag().getDouble("ammo") + ammo1)); - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } else { - stack.getOrCreateTag().putDouble("ammo", (stack.getOrCreateTag().getDouble("ammo") + (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunAmmo)); - { - double _setval = 0; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.handgunAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/HandgunReload2Procedure.java b/src/main/java/net/mcreator/target/procedures/HandgunReload2Procedure.java deleted file mode 100644 index 0db03dce3..000000000 --- a/src/main/java/net/mcreator/target/procedures/HandgunReload2Procedure.java +++ /dev/null @@ -1,40 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - -public class HandgunReload2Procedure { - public static void execute(Entity entity) { - if (entity == null) - return; - double ammo2; - ItemStack stack; - stack = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); - ammo2 = (stack.getOrCreateTag().getDouble("mag") + 1) - stack.getOrCreateTag().getDouble("ammo"); - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunAmmo >= ammo2) { - { - double _setval = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunAmmo - ammo2; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.handgunAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - stack.getOrCreateTag().putDouble("ammo", (stack.getOrCreateTag().getDouble("ammo") + ammo2)); - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } else { - stack.getOrCreateTag().putDouble("ammo", (stack.getOrCreateTag().getDouble("ammo") + (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).handgunAmmo)); - { - double _setval = 0; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.handgunAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 65db63888..40c5c54df 100644 --- a/src/main/java/net/mcreator/target/procedures/Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -39,7 +40,7 @@ public class Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 41) { @@ -62,7 +63,7 @@ public class Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity, true); + GunReload.reload(entity, GunReload.GunType.RIFLE, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/HrrelodingProcedure.java b/src/main/java/net/mcreator/target/procedures/HrrelodingProcedure.java index 2c9293d1a..af7704360 100644 --- a/src/main/java/net/mcreator/target/procedures/HrrelodingProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/HrrelodingProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -41,7 +42,7 @@ public class HrrelodingProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload1Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index ab31e5e12..86a16bc06 100644 --- a/src/main/java/net/mcreator/target/procedures/KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -39,7 +40,7 @@ public class KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload1Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 65) { @@ -62,7 +63,7 @@ public class KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload2Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER, true); } } WeapondrawhaveyProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 401c4c8c1..c9cb31d19 100644 --- a/src/main/java/net/mcreator/target/procedures/M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -39,7 +40,7 @@ public class M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 41) { @@ -62,7 +63,7 @@ public class M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity, true); + GunReload.reload(entity, GunReload.GunType.RIFLE, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 668bf3ef0..ffe9c3b63 100644 --- a/src/main/java/net/mcreator/target/procedures/M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -42,7 +43,7 @@ public class M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 111) { @@ -65,7 +66,7 @@ public class M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } WeapondrawhaveyProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index a2cf2299f..97f0454e4 100644 --- a/src/main/java/net/mcreator/target/procedures/M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -43,7 +44,7 @@ public class M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload1Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 57) { @@ -66,7 +67,7 @@ public class M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload2Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index ec97784e8..9e3a02566 100644 --- a/src/main/java/net/mcreator/target/procedures/Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -42,7 +43,7 @@ public class Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("gj", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 45) { @@ -65,7 +66,7 @@ public class Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity, true); + GunReload.reload(entity, GunReload.GunType.RIFLE, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/ReloadingProcedure.java b/src/main/java/net/mcreator/target/procedures/ReloadingProcedure.java index 1c52473cf..467546063 100644 --- a/src/main/java/net/mcreator/target/procedures/ReloadingProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/ReloadingProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -41,7 +42,7 @@ public class ReloadingProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - HandgunReload1Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.HANDGUN); } } WeaponDrawLightProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/RifleReloadProcedure.java b/src/main/java/net/mcreator/target/procedures/RifleReloadProcedure.java deleted file mode 100644 index 0896e045f..000000000 --- a/src/main/java/net/mcreator/target/procedures/RifleReloadProcedure.java +++ /dev/null @@ -1,36 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - -public class RifleReloadProcedure { - public static void execute(Entity entity) { - execute(entity, false); - } - - public static void execute(Entity entity, boolean extraOne) { - if (entity == null) return; - - ItemStack stack = (entity instanceof LivingEntity living ? living.getMainHandItem() : ItemStack.EMPTY); - - CompoundTag tag = stack.getOrCreateTag(); - - double mag = tag.getDouble("mag"); - double ammo = tag.getDouble("ammo"); - double rifleAmmo = entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c -> c.rifleAmmo).orElse(0d); - - double ammo1 = mag - ammo + (extraOne ? 1 : 0); - - tag.putDouble("ammo", ammo + Math.min(ammo1, rifleAmmo)); - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.rifleAmmo = Math.max(0, rifleAmmo - ammo1); - capability.syncPlayerVariables(entity); - }); - - tag.putDouble("reloading", 0); - tag.putDouble("emptyreload", 0); - } -} diff --git a/src/main/java/net/mcreator/target/procedures/RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 308cc4475..e151c19f7 100644 --- a/src/main/java/net/mcreator/target/procedures/RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -35,7 +36,7 @@ public class RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 41) { @@ -56,7 +57,7 @@ public class RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity, true); + GunReload.reload(entity, GunReload.GunType.RIFLE, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index e89d74afa..54ed97f3c 100644 --- a/src/main/java/net/mcreator/target/procedures/SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -41,7 +42,7 @@ public class SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload1Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 53) { @@ -65,7 +66,7 @@ public class SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload2Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER, true); } } if (itemstack.getOrCreateTag().getDouble("firing") > 0) { diff --git a/src/main/java/net/mcreator/target/procedures/ShotgunReloadProcedure.java b/src/main/java/net/mcreator/target/procedures/ShotgunReloadProcedure.java deleted file mode 100644 index c4e2c602f..000000000 --- a/src/main/java/net/mcreator/target/procedures/ShotgunReloadProcedure.java +++ /dev/null @@ -1,30 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.LivingEntity; - -public class ShotgunReloadProcedure { - public static void execute(LivingEntity entity) { - execute(entity, false); - } - - public static void execute(LivingEntity entity, boolean extraOne) { - CompoundTag tag = entity.getMainHandItem().getOrCreateTag(); - double mag = tag.getDouble("mag"); - double ammo = tag.getDouble("ammo"); - - double empty = mag - ammo + (extraOne ? 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/SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 570d17277..66328aac5 100644 --- a/src/main/java/net/mcreator/target/procedures/SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -43,7 +44,7 @@ public class SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("gj", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.RIFLE); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 41) { @@ -67,7 +68,7 @@ public class SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - RifleReloadProcedure.execute(entity, true); + GunReload.reload(entity, GunReload.GunType.RIFLE, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/procedures/SniperReload1Procedure.java b/src/main/java/net/mcreator/target/procedures/SniperReload1Procedure.java deleted file mode 100644 index d559cf0de..000000000 --- a/src/main/java/net/mcreator/target/procedures/SniperReload1Procedure.java +++ /dev/null @@ -1,44 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - -public class SniperReload1Procedure { - public static void execute(Entity entity) { - if (entity == null) - return; - double ammo1 = 0; - double id = 0; - double ammo2 = 0; - ItemStack stack = ItemStack.EMPTY; - stack = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); - id = stack.getOrCreateTag().getDouble("id"); - ammo1 = stack.getOrCreateTag().getDouble("mag") - stack.getOrCreateTag().getDouble("ammo"); - ammo2 = (stack.getOrCreateTag().getDouble("mag") + 1) - stack.getOrCreateTag().getDouble("ammo"); - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperAmmo >= ammo1) { - { - double _setval = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperAmmo - ammo1; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.sniperAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - stack.getOrCreateTag().putDouble("ammo", (stack.getOrCreateTag().getDouble("ammo") + ammo1)); - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } else { - stack.getOrCreateTag().putDouble("ammo", (stack.getOrCreateTag().getDouble("ammo") + (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperAmmo)); - { - double _setval = 0; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.sniperAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/SniperReload2Procedure.java b/src/main/java/net/mcreator/target/procedures/SniperReload2Procedure.java deleted file mode 100644 index 43fca500c..000000000 --- a/src/main/java/net/mcreator/target/procedures/SniperReload2Procedure.java +++ /dev/null @@ -1,44 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - -public class SniperReload2Procedure { - public static void execute(Entity entity) { - if (entity == null) - return; - double ammo1 = 0; - double id = 0; - double ammo2 = 0; - ItemStack stack = ItemStack.EMPTY; - stack = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); - id = stack.getOrCreateTag().getDouble("id"); - ammo1 = stack.getOrCreateTag().getDouble("mag") - stack.getOrCreateTag().getDouble("ammo"); - ammo2 = (stack.getOrCreateTag().getDouble("mag") + 1) - stack.getOrCreateTag().getDouble("ammo"); - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperAmmo >= ammo2) { - { - double _setval = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperAmmo - ammo2; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.sniperAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - stack.getOrCreateTag().putDouble("ammo", (stack.getOrCreateTag().getDouble("ammo") + ammo2)); - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } else { - stack.getOrCreateTag().putDouble("ammo", (stack.getOrCreateTag().getDouble("ammo") + (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).sniperAmmo)); - { - double _setval = 0; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.sniperAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - stack.getOrCreateTag().putDouble("reloading", 0); - stack.getOrCreateTag().putDouble("emptyreload", 0); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 6189c3867..927a87457 100644 --- a/src/main/java/net/mcreator/target/procedures/SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -43,7 +44,7 @@ public class SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("gj", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload1Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getDouble("ammo") > 0) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 41) { @@ -67,7 +68,7 @@ public class SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - SniperReload2Procedure.execute(entity); + GunReload.reload(entity, GunReload.GunType.SNIPER, true); } } WeaponDrawProcedure.execute(entity, itemstack); diff --git a/src/main/java/net/mcreator/target/tools/GunReload.java b/src/main/java/net/mcreator/target/tools/GunReload.java new file mode 100644 index 000000000..4473cfec7 --- /dev/null +++ b/src/main/java/net/mcreator/target/tools/GunReload.java @@ -0,0 +1,42 @@ +package net.mcreator.target.tools; + +import net.mcreator.target.network.TargetModVariables; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; + +public class GunReload { + public static void reload(Entity entity, GunType gunType) { + reload(entity, gunType, false); + } + + public static void reload(Entity entity, GunType gunType, boolean extraOne) { + if (!(entity instanceof LivingEntity living)) return; + + CompoundTag tag = living.getMainHandItem().getOrCreateTag(); + + double mag = tag.getDouble("mag"); + double ammo = tag.getDouble("ammo"); + double ammoToAdd = mag - ammo + (extraOne ? 1 : 0); + + double playerAmmo = entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c -> switch (gunType) { + case RIFLE -> c.rifleAmmo; + case HANDGUN -> c.handgunAmmo; + case SHOTGUN -> c.shotgunAmmo; + case SNIPER -> c.sniperAmmo; + }).orElse(0d); + + entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.sniperAmmo = Math.max(0, playerAmmo - ammoToAdd); + capability.syncPlayerVariables(entity); + }); + tag.putDouble("ammo", ammo + Math.min(ammoToAdd, playerAmmo)); + + tag.putDouble("reloading", 0); + tag.putDouble("emptyreload", 0); + } + + public enum GunType { + HANDGUN, RIFLE, SHOTGUN, SNIPER + } +}