From 990b882ed53099debcf88dc9647a05a9f1b61532 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Mon, 10 Jun 2024 03:35:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=99=84=E9=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/client/layer/TaserLayer.java | 28 ++ .../client/model/item/TaserItemModel.java | 21 +- .../renderer/item/TaserItemRenderer.java | 2 + .../enchantment/LongerWireEnchantment.java | 35 ++ .../enchantment/SuperRechargeEnchantment.java | 35 ++ .../entity/TaserBulletProjectileEntity.java | 14 +- .../target/init/TargetModEnchantments.java | 4 + .../net/mcreator/target/item/gun/Taser.java | 31 +- .../target/procedures/TaserfireProcedure.java | 8 +- .../assets/target/geo/taser.geo.json | 398 +++++++++++++++++- .../resources/assets/target/lang/en_us.json | 6 +- .../resources/assets/target/lang/zh_cn.json | 4 + .../assets/target/textures/item/tasergun.png | Bin 5188 -> 5208 bytes .../target/textures/item/tasergun_e.png | Bin 0 -> 199 bytes .../resources/data/target/guns/taser.json | 2 +- 15 files changed, 566 insertions(+), 22 deletions(-) create mode 100644 src/main/java/net/mcreator/target/client/layer/TaserLayer.java create mode 100644 src/main/java/net/mcreator/target/enchantment/LongerWireEnchantment.java create mode 100644 src/main/java/net/mcreator/target/enchantment/SuperRechargeEnchantment.java create mode 100644 src/main/resources/assets/target/textures/item/tasergun_e.png diff --git a/src/main/java/net/mcreator/target/client/layer/TaserLayer.java b/src/main/java/net/mcreator/target/client/layer/TaserLayer.java new file mode 100644 index 000000000..388075b4d --- /dev/null +++ b/src/main/java/net/mcreator/target/client/layer/TaserLayer.java @@ -0,0 +1,28 @@ +package net.mcreator.target.client.layer; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import net.mcreator.target.item.gun.Taser; +import net.minecraft.client.renderer.LightTexture; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.renderer.GeoRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; + +public class TaserLayer extends GeoRenderLayer { + private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/item/tasergun_e.png"); + + public TaserLayer(GeoRenderer itemGeoRenderer) { + super(itemGeoRenderer); + } + + @Override + public void render(PoseStack poseStack, Taser animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int light, int packedOverlay) { + + RenderType glowRenderType = RenderType.entityTranslucent(LAYER); + getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, 255, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1); + } +} diff --git a/src/main/java/net/mcreator/target/client/model/item/TaserItemModel.java b/src/main/java/net/mcreator/target/client/model/item/TaserItemModel.java index ecc4e1981..126cf7d50 100644 --- a/src/main/java/net/mcreator/target/client/model/item/TaserItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/TaserItemModel.java @@ -1,16 +1,19 @@ package net.mcreator.target.client.model.item; import net.mcreator.target.item.gun.Taser; -import net.mcreator.target.network.TargetModVariables; +import net.mcreator.target.tools.ItemNBTTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class TaserItemModel extends GeoModel { + + public static final String TAG_POWER = "Power"; @Override public ResourceLocation getAnimationResource(Taser animatable) { return new ResourceLocation("target", "animations/taser.animation.json"); @@ -30,9 +33,25 @@ public class TaserItemModel extends GeoModel { public void setCustomAnimations(Taser animatable, long instanceId, AnimationState animationState) { CoreGeoBone gun = getAnimationProcessor().getBone("bone"); CoreGeoBone shen = getAnimationProcessor().getBone("shen"); + CoreGeoBone bar = getAnimationProcessor().getBone("bar"); + CoreGeoBone bar2 = getAnimationProcessor().getBone("bar2"); + CoreGeoBone screen = getAnimationProcessor().getBone("screen"); + CoreGeoBone screen2 = getAnimationProcessor().getBone("screen2"); Player player = Minecraft.getInstance().player; + ItemStack stack = player.getMainHandItem(); + bar.setScaleX((float) ItemNBTTool.getInt(stack, TAG_POWER, 1200) / 1200); + bar2.setScaleX((float) ItemNBTTool.getInt(stack, TAG_POWER, 1200) / 1200); + + if (ItemNBTTool.getInt(stack, TAG_POWER, 1200) >= 400) { + screen.setHidden(false); + screen2.setHidden(true); + } else { + screen.setHidden(true); + screen2.setHidden(false); + } + double fp = player.getPersistentData().getDouble("fire_pos"); double fr = player.getPersistentData().getDouble("fire_rot"); diff --git a/src/main/java/net/mcreator/target/client/renderer/item/TaserItemRenderer.java b/src/main/java/net/mcreator/target/client/renderer/item/TaserItemRenderer.java index 2671b7c73..ec88ec790 100644 --- a/src/main/java/net/mcreator/target/client/renderer/item/TaserItemRenderer.java +++ b/src/main/java/net/mcreator/target/client/renderer/item/TaserItemRenderer.java @@ -1,5 +1,6 @@ package net.mcreator.target.client.renderer.item; +import net.mcreator.target.client.layer.TaserLayer; import net.mcreator.target.item.gun.Taser; import net.mcreator.target.client.model.item.TaserItemModel; import net.minecraft.resources.ResourceLocation; @@ -8,6 +9,7 @@ import software.bernie.geckolib.renderer.GeoItemRenderer; public class TaserItemRenderer extends GeoItemRenderer { public TaserItemRenderer() { super(new TaserItemModel()); + this.addRenderLayer(new TaserLayer(this)); } @Override diff --git a/src/main/java/net/mcreator/target/enchantment/LongerWireEnchantment.java b/src/main/java/net/mcreator/target/enchantment/LongerWireEnchantment.java new file mode 100644 index 000000000..1365e3fa8 --- /dev/null +++ b/src/main/java/net/mcreator/target/enchantment/LongerWireEnchantment.java @@ -0,0 +1,35 @@ + +package net.mcreator.target.enchantment; + +import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.tools.EnchantmentCategoryTool; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.enchantment.Enchantment; + +public class LongerWireEnchantment extends Enchantment { + public LongerWireEnchantment(EquipmentSlot... slots) { + super(Rarity.UNCOMMON, EnchantmentCategoryTool.TASER, slots); + } + + @Override + public int getMinCost(int pLevel) { + return 8 + 6 * pLevel; + } + + @Override + public int getMaxCost(int pLevel) { + return super.getMaxCost(pLevel) + 20; + } + + @Override + public int getMaxLevel() { + return 5; + } + + @Override + public boolean canApplyAtEnchantingTable(ItemStack itemstack) { + return Ingredient.of(new ItemStack(TargetModItems.TASER.get())).test(itemstack); + } +} diff --git a/src/main/java/net/mcreator/target/enchantment/SuperRechargeEnchantment.java b/src/main/java/net/mcreator/target/enchantment/SuperRechargeEnchantment.java new file mode 100644 index 000000000..bab7625fc --- /dev/null +++ b/src/main/java/net/mcreator/target/enchantment/SuperRechargeEnchantment.java @@ -0,0 +1,35 @@ + +package net.mcreator.target.enchantment; + +import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.tools.EnchantmentCategoryTool; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.enchantment.Enchantment; + +public class SuperRechargeEnchantment extends Enchantment { + public SuperRechargeEnchantment(EquipmentSlot... slots) { + super(Rarity.UNCOMMON, EnchantmentCategoryTool.TASER, slots); + } + + @Override + public int getMinCost(int pLevel) { + return 10 + 5 * pLevel; + } + + @Override + public int getMaxCost(int pLevel) { + return super.getMaxCost(pLevel) + 25; + } + + @Override + public int getMaxLevel() { + return 3; + } + + @Override + public boolean canApplyAtEnchantingTable(ItemStack itemstack) { + return Ingredient.of(new ItemStack(TargetModItems.TASER.get())).test(itemstack); + } +} diff --git a/src/main/java/net/mcreator/target/entity/TaserBulletProjectileEntity.java b/src/main/java/net/mcreator/target/entity/TaserBulletProjectileEntity.java index 945d5b7be..6e2d18d73 100644 --- a/src/main/java/net/mcreator/target/entity/TaserBulletProjectileEntity.java +++ b/src/main/java/net/mcreator/target/entity/TaserBulletProjectileEntity.java @@ -30,11 +30,7 @@ import java.util.Optional; public class TaserBulletProjectileEntity extends ThrowableItemProjectile { private float damage = 1f; private int volt = 0; - - public TaserBulletProjectileEntity damage(float damage) { - this.damage = damage; - return this; - } + private int wire_length = 0; public TaserBulletProjectileEntity(EntityType type, Level world) { super(type, world); @@ -44,10 +40,11 @@ public class TaserBulletProjectileEntity extends ThrowableItemProjectile { super(type, entity, world); } - public TaserBulletProjectileEntity(LivingEntity entity, Level level, float damage, int volt) { + public TaserBulletProjectileEntity(LivingEntity entity, Level level, float damage, int volt, int wire_length) { super(TargetModEntities.TASER_BULLET_PROJECTILE.get(), entity, level); this.damage = damage; this.volt = volt; + this.wire_length = wire_length; } public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level level) { @@ -130,7 +127,7 @@ public class TaserBulletProjectileEntity extends ThrowableItemProjectile { public void tick() { super.tick(); - if (this.tickCount == 5) { + if (this.tickCount == 5 + wire_length) { this.setDeltaMovement(new Vec3(0, 0, 0)); } @@ -142,8 +139,7 @@ public class TaserBulletProjectileEntity extends ThrowableItemProjectile { @Override protected void onHitBlock(BlockHitResult result) { if (!level().isClientSide) { - this.setDeltaMovement(this.getDeltaMovement().multiply(0, 0, 0)); - this.setNoGravity(true); + this.setDeltaMovement(new Vec3(0, 0, 0)); } } } diff --git a/src/main/java/net/mcreator/target/init/TargetModEnchantments.java b/src/main/java/net/mcreator/target/init/TargetModEnchantments.java index e77bf8ae3..b22ab8c81 100644 --- a/src/main/java/net/mcreator/target/init/TargetModEnchantments.java +++ b/src/main/java/net/mcreator/target/init/TargetModEnchantments.java @@ -1,6 +1,7 @@ package net.mcreator.target.init; +import net.mcreator.target.enchantment.LongerWireEnchantment; import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.DeferredRegister; @@ -8,9 +9,12 @@ import net.minecraftforge.registries.DeferredRegister; import net.minecraft.world.item.enchantment.Enchantment; import net.mcreator.target.enchantment.VoltOverloadEnchantment; +import net.mcreator.target.enchantment.SuperRechargeEnchantment; import net.mcreator.target.TargetMod; public class TargetModEnchantments { public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, TargetMod.MODID); public static final RegistryObject VOLT_OVERLOAD = REGISTRY.register("volt_overload", () -> new VoltOverloadEnchantment()); + public static final RegistryObject SUPER_RECHARGE = REGISTRY.register("super_recharge", () -> new SuperRechargeEnchantment()); + public static final RegistryObject LONGER_WIRE = REGISTRY.register("longer_wire", () -> new LongerWireEnchantment()); } diff --git a/src/main/java/net/mcreator/target/item/gun/Taser.java b/src/main/java/net/mcreator/target/item/gun/Taser.java index 4f16f9928..1d5948919 100644 --- a/src/main/java/net/mcreator/target/item/gun/Taser.java +++ b/src/main/java/net/mcreator/target/item/gun/Taser.java @@ -4,13 +4,11 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import net.mcreator.target.TargetMod; import net.mcreator.target.client.renderer.item.TaserItemRenderer; +import net.mcreator.target.init.TargetModEnchantments; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.tools.EnchantmentCategoryTool; -import net.mcreator.target.tools.GunsTool; -import net.mcreator.target.tools.SoundTool; -import net.mcreator.target.tools.TooltipTool; +import net.mcreator.target.tools.*; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; @@ -18,6 +16,7 @@ import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; +import net.minecraft.util.Mth; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; @@ -28,6 +27,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.*; import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; import software.bernie.geckolib.animatable.GeoItem; @@ -48,11 +48,27 @@ public class Taser extends GunItem implements GeoItem, AnimatedItem { private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); public String animationProcedure = "empty"; public static ItemDisplayContext transformType; + public static final String TAG_POWER = "Power"; + public static final int MAX_POWER_SIZE = 1200; public Taser() { super(new Item.Properties().stacksTo(1).rarity(Rarity.COMMON)); } + @Override + public boolean isBarVisible(ItemStack pStack) { + return ItemNBTTool.getInt(pStack, TAG_POWER, 1200) != 1200; + } + + @Override + public int getBarWidth(ItemStack pStack) { + return Math.round((float) ItemNBTTool.getInt(pStack, TAG_POWER, 1200) * 13.0F / 1200F); + } + + @Override + public int getBarColor(ItemStack pStack) { + return 0xFFFF00; + } @Override public Set getReloadSound() { @@ -217,6 +233,11 @@ public class Taser extends GunItem implements GeoItem, AnimatedItem { } } } + int charge_speed = EnchantmentHelper.getTagEnchantmentLevel(TargetModEnchantments.SUPER_RECHARGE.get(), stack); + + if (ItemNBTTool.getInt(stack, TAG_POWER, 1200) < 1200) { + ItemNBTTool.setInt(stack, TAG_POWER, Mth.clamp(ItemNBTTool.getInt(stack, TAG_POWER, 1200) + 1 + charge_speed,0,1200)); + } } protected static boolean check(ItemStack stack) { @@ -246,7 +267,7 @@ public class Taser extends GunItem implements GeoItem, AnimatedItem { @Override public int getEnchantmentValue(ItemStack stack) { - return 15; + return 10; } @Override diff --git a/src/main/java/net/mcreator/target/procedures/TaserfireProcedure.java b/src/main/java/net/mcreator/target/procedures/TaserfireProcedure.java index 3c3ea1167..a2ec81e8a 100644 --- a/src/main/java/net/mcreator/target/procedures/TaserfireProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/TaserfireProcedure.java @@ -6,6 +6,7 @@ import net.mcreator.target.init.TargetModEnchantments; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.network.TargetModVariables; +import net.mcreator.target.tools.ItemNBTTool; import net.mcreator.target.tools.SoundTool; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -18,13 +19,14 @@ import net.minecraft.world.level.Level; // TODO 内联这个类 public class TaserfireProcedure { + public static final String TAG_POWER = "Power"; public static void execute(Entity entity) { if (entity == null) return; if (entity instanceof Player player && !player.isSpectator()) { ItemStack stack = player.getMainHandItem(); if (stack.getItem() == TargetModItems.TASER.get() && !stack.getOrCreateTag().getBoolean("reloading")) { Player _plrCldCheck4 = (Player) entity; - if (!_plrCldCheck4.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getInt("ammo") > 0) { + if (!_plrCldCheck4.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getInt("ammo") > 0 && ItemNBTTool.getInt(stack, TAG_POWER, 1200) > 400) { entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { capability.recoilHorizon = Math.random() < 0.5 ? -1 : 1; @@ -40,10 +42,11 @@ public class TaserfireProcedure { } int volt = EnchantmentHelper.getTagEnchantmentLevel(TargetModEnchantments.VOLT_OVERLOAD.get(), stack); + int wire_length = EnchantmentHelper.getTagEnchantmentLevel(TargetModEnchantments.LONGER_WIRE.get(), stack); Level level = entity.level(); if (!level.isClientSide()) { - TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage"), volt); + TaserBulletProjectileEntity taserBulletProjectile = new TaserBulletProjectileEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage"), volt, wire_length); taserBulletProjectile.setPos(entity.getX(), entity.getEyeY() - 0.1, entity.getZ()); taserBulletProjectile.shoot(entity.getLookAngle().x, entity.getLookAngle().y, entity.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"), @@ -52,6 +55,7 @@ public class TaserfireProcedure { } stack.getOrCreateTag().putInt("fire_animation", 4); stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); + ItemNBTTool.setInt(stack, TAG_POWER, ItemNBTTool.getInt(stack, TAG_POWER, 1200) - 400); } } } diff --git a/src/main/resources/assets/target/geo/taser.geo.json b/src/main/resources/assets/target/geo/taser.geo.json index 39070079b..5fd552e7d 100644 --- a/src/main/resources/assets/target/geo/taser.geo.json +++ b/src/main/resources/assets/target/geo/taser.geo.json @@ -209,6 +209,398 @@ "parent": "0", "pivot": [-0.00238, 0.35352, 0.03753] }, + { + "name": "screen", + "parent": "gun", + "pivot": [-0.01562, 0, 0], + "rotation": [22.5, 0, 0] + }, + { + "name": "bar", + "parent": "screen", + "pivot": [0.41875, 1.16114, 3.80684], + "cubes": [ + { + "origin": [-0.43432, -0.28538, 3.21677], + "size": [0.8687, 0.5, 0.00781], + "uv": { + "north": {"uv": [1.25, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [1.25, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [1.25, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [1.25, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [2.25, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [2.25, 24], "uv_size": [-1, -0.75]} + } + } + ] + }, + { + "name": "cover", + "parent": "screen", + "pivot": [-0.01562, 1.11614, 2.90465], + "cubes": [ + { + "origin": [-0.48437, 0.18212, 3.22067], + "size": [0.96875, 0.1325, 0.00781], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.58007, 0.01476, 3.22067], + "size": [0.92969, 0.14031, 0.00781], + "pivot": [-0.09569, -0.25024, 3.22849], + "rotation": [0, 0, 22.5], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.24804, 0.15507, 3.22067], + "size": [0.54297, 0.13672, 0.00781], + "pivot": [-0.09569, -0.25024, 3.22849], + "rotation": [0, 0, 22.5], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [0.07618, 0.29179, 3.22067], + "size": [0.17188, 0.05859, 0.00781], + "pivot": [-0.09569, -0.25024, 3.22849], + "rotation": [0, 0, 22.5], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, -0.50562, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, -0.35562, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, -0.20562, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, -0.05562, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, 0.09438, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, 0.24438, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, 0.39438, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.48437, -0.35538, 3.22067], + "size": [0.96875, 0.07, 0.00781], + "uv": { + "north": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [0, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [1, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [1, 24], "uv_size": [-1, -0.75]} + } + } + ] + }, + { + "name": "screen2", + "parent": "gun", + "pivot": [-0.01562, 0, 0], + "rotation": [22.5, 0, 0] + }, + { + "name": "bar2", + "parent": "screen2", + "pivot": [0.41875, 1.16114, 3.80684], + "cubes": [ + { + "origin": [-0.43432, -0.28538, 3.21677], + "size": [0.8687, 0.5, 0.00781], + "uv": { + "north": {"uv": [3.75, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [3.75, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [3.75, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [3.75, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [4.75, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [4.75, 24], "uv_size": [-1, -0.75]} + } + } + ] + }, + { + "name": "cover2", + "parent": "screen2", + "pivot": [-0.01562, 1.11614, 2.90465], + "cubes": [ + { + "origin": [-0.48437, 0.18212, 3.22067], + "size": [0.96875, 0.1325, 0.00781], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.58007, 0.01476, 3.22067], + "size": [0.92969, 0.14031, 0.00781], + "pivot": [-0.09569, -0.25024, 3.22849], + "rotation": [0, 0, 22.5], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.24804, 0.15507, 3.22067], + "size": [0.54297, 0.13672, 0.00781], + "pivot": [-0.09569, -0.25024, 3.22849], + "rotation": [0, 0, 22.5], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [0.07618, 0.29179, 3.22067], + "size": [0.17188, 0.05859, 0.00781], + "pivot": [-0.09569, -0.25024, 3.22849], + "rotation": [0, 0, 22.5], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, -0.50562, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, -0.35562, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, -0.20562, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, -0.05562, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, 0.09438, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, 0.24438, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.26523, 0.39438, 3.22067], + "size": [0.46797, 0.07, 0.00781], + "pivot": [0, -0.02062, 3.22458], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + }, + { + "origin": [-0.48437, -0.35538, 3.22067], + "size": [0.96875, 0.07, 0.00781], + "uv": { + "north": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "east": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "south": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "west": {"uv": [2.5, 23.25], "uv_size": [1, 0.75]}, + "up": {"uv": [3.5, 24], "uv_size": [-1, -0.75]}, + "down": {"uv": [3.5, 24], "uv_size": [-1, -0.75]} + } + } + ] + }, { "name": "bone2", "parent": "gun", @@ -391,9 +783,9 @@ } }, { - "origin": [-0.5, 0.84114, 2.60465], - "size": [1, 0.67, 0.41], - "pivot": [0, 1.11614, 2.90465], + "origin": [-0.52344, 0.76912, 2.58967], + "size": [1.04688, 0.72859, 0.41], + "pivot": [0, 1.13341, 2.79467], "rotation": [22.5, 0, 0], "uv": { "north": {"uv": [14, 15], "uv_size": [1, 0.75]}, diff --git a/src/main/resources/assets/target/lang/en_us.json b/src/main/resources/assets/target/lang/en_us.json index ec535767d..7d5aab82e 100644 --- a/src/main/resources/assets/target/lang/en_us.json +++ b/src/main/resources/assets/target/lang/en_us.json @@ -203,8 +203,12 @@ "item.minecraft.splash_potion.effect.target_long_shock": "Splash Potion of Shock", "item.minecraft.lingering_potion.effect.target_long_shock": "Lingering Potion of Shock", - "enchantment.target.volt_overload": "Volt Overload ", + "enchantment.target.volt_overload": "Volt Overload", "enchantment.target.volt_overload.desc": "Increases the shock damage of TaserGun", + "enchantment.target.super_recharge": "Super Recharge", + "enchantment.target.super_recharge.desc": "Increases the recharge speed of TaserGun", + "enchantment.target.longer_wire": "Longer Wire", + "enchantment.target.longer_wire.desc": "Increases the range of TaserGun", "des.target.sensitivity": "Current Sensitivity of This Gun: %1$s", diff --git a/src/main/resources/assets/target/lang/zh_cn.json b/src/main/resources/assets/target/lang/zh_cn.json index 446fb5b0e..ca995e621 100644 --- a/src/main/resources/assets/target/lang/zh_cn.json +++ b/src/main/resources/assets/target/lang/zh_cn.json @@ -205,6 +205,10 @@ "enchantment.target.volt_overload": "电压过载", "enchantment.target.volt_overload.desc": "增加泰瑟枪电击的伤害", + "enchantment.target.super_recharge": "超级快充", + "enchantment.target.super_recharge.desc": "增加泰瑟枪充能的速度", + "enchantment.target.longer_wire": "延长导线", + "enchantment.target.longer_wire.desc": "增加泰瑟枪的射程", "des.target.sensitivity": "当前枪械的灵敏度为:%1$s", diff --git a/src/main/resources/assets/target/textures/item/tasergun.png b/src/main/resources/assets/target/textures/item/tasergun.png index 0c5b272fb693e6bcccbfce3d137f3013760f0da1..80f1a45d0f55998bf3d04bd3e1c6f5bb1f78f2f5 100644 GIT binary patch literal 5208 zcmbtY#x$Zew$r${t7J$QqE zFKK{?K4dN&+3&JVO6mZmq7*(MgO{82sILN*@;e7*W=O0@Is9Wy-S z??9=hA%aQPn*7s@K9D(E{RvlU9J3;xZ6+V)<5YK0XC@B@<}dKxSKVC-JlJAWwS0mF zDWKbB0tPCu6r{jdo&-81VhGO`aemVY1pJ#d36s^*G^-4LZyg`RzSXfOC))g$&41}b z8q+dT$A6h$O_}Y6avi<@!uZygw2mrw2Pu|Izm*7&6!xMZRMTrd@PLF4zTPp%-tf7s zk4nXm^e$RcsYRvQ7Ytx(0=NWxy)GV8s{dS(Ilm6A-fNIrm|)8+L6viUSS6Y`gKTMo zAH48>NNd_|Vk^V?lbpOc;0J&FK7Lc}^@s>jylNwx>B5mB(CqyC&^2qP&Vc=QZ%(7B zuz(?DWL8uLGyUCs7y~DYlk*idawwd5(fblAC*FPytr*3cyz(?986`qIzTyI^o6MMx z@UQ?8iOy!T0aY@b%D0>U&KOXCbvz3Kp@H(KnT4WkeM zfK6@t@)!YB;$(g4*g@#H5>p^F{8?;Dx&FNtR-cagkEDw*N8s$_swK!k*LD^zNrY(O z=4g?i5@5sz)~(n%iJVU~*Rgxa1gb_|EFCKV-8+}}`xXjtD%)Gcdy%AxAh7&>%I$ya zGNJJwODn5_#4&Zgs^fn9EmlQ1g7mMdAUTY=3KJH!5LIuArvCG-_UxqUGHd(hc-h|c z!R_VSb&*I~`Hmcek@6wz{wH1uEl6_Ev>SjTE{jFXa2GD5WKy*<_s0pd&_F4~R-oDx__dn08T=IX|07zN}L6_f~1?FR-ak3gmEO6e^2l zOm<;((muiL)6&!Qz#PGBWj8d9-}>@VTD#VuHUw(jS3h4}mF;aG$vuJ`=urV?HJ3#4 zA681hA42_9a(E&9=nG>JAD}~q^r&fg;WMKTMu+TIjIIwvdWUHxoO!3MCNZnv2A z{fSN9-)7$i?gIiK@v@5Rt|~X{xF7bO?OU^Id5% zI?nNt0*@r6IkkI*H;w~FQ15R5;nX1u6FDq?e=a|GX)r($rQk3{1W_~6xPUWgo~`So zi|jLSVXY7aLZO%X`_$qrt1ZR4F6lTuoDpCXcG6)(fiJ1$W4Ob2GxDGHpFscm?kU%$ z*|yWD8wg2uH)c5rU`rf$x0{6$553Ur1w!|7TQduZv3O??VB_x34m4o*E%wgIB8#O4 z37-j!n2G8=5zEjvZvf#QZ?((vI_`eySRBNLhu5<7jzI5KRdAD**OBmKV|j)~uU zqpv0GRF?am4oc$Nz{ZQc)TW@IAabDW^3BqjH9lC39XAzOwZ}tI9uEp{;naMPn;lfE zI|j<73B{jv0fq023)`h{nhNz_5EVi-{C2%wOa}A*2MUr2H{qG%nHV?OcW$yfUmjx2 zmkDXjg)$K)*)(~{hRx38vlem|RGKXZUL;>A+QxngJ&O$EDxxy>g+u1aVYTenRhMaW z1r_g8y^^uLV~hC2U8X)c}+U=Aq^cEFbg~qs_WfZbbekyx`96CN! z^TQsO$3-lF+xeR3^zR&J8{UL59|^^}2Wb~|$F1EcqhuyfBCCs=*twu@_-1B3eBAW- zJJ9)fmo1V;*R@?Gu9+=^Q0?+->8dykRvIS5!<;l-xun3F3I3pR2cHu}L~YG|ECtL~ zDn`-yCdkNK4%`@QZA&|~fz{mUCtzG(6CZ6ZIDOn$)!qpOUaY*7a>0M_nzg*-pjNXs z*E0NKv^saa!?X1Ni zi6{%ZkkeglelmaX=C;iyg*xj~#2Gi-H&@<$^^L;%#4Lm+mdlO*o3c)Fb&3N9f0m=7 zfs2z~C)r;8s$1y;sF}1xrVRg4>^pIlyK9Hne6Tj}3j2q8&Lq(!i_Y=eiay)8+!KW& z2b=dm^gWTHR~on$r45jC=-N#_&~)t~a`@3Xo$CblW980{u=g-7P*1Znn=bEddrJ*{ zgrq;BX84to`t0yz3r95f2S#-#wHFho11=2YyQXApB^Njb$?vg73n-`tu3HIndvNEU zLA*T4Z2h@WK_P{)aS@JA^(SYk6dCyku8~6{H$`*m{U=v4Qj6=Lq=J<-p!hlAdjFPr zTt$@?OOetT4&5XGxirO!Dat38fc@GkuO~f$1HMq@ZX4pktoxwznYa4`#qW2H77B#b zKna<|%)}{I?cpIYWyb18epjbH=pzW=jozgDpjP&D%o^`uuY7f$le_1GI83Ffv9>*5 zrq_#M6V8Gnx++{!BaMV2jD$$6CRF&lKk@2K9vn#M=F;`971n%RSypHwyp+7F>>j(b znbo3M)@QdlDad337292mPto*$TQCY*MidyT>j(BLiNWWM;k@HINfH-o=LTmY#;+Z_54SIZS;kK^H5Cj4JCta3m#uc2w54+cY~-Ad3I)l-P1xvR+QaRQyrbbGQAKML||eH2b~z zn(s86CGqjq#0HHO0hVfU!tmSdsV2OliHYUewWTxf4agVKwHyJO@}aZ5>SQJ3pfgpX z+aW>!J<^%i;$Ck-X+Ts!`I(7GNo&(88@2sk5FgvLTq$b07w3$nPZH+u+9ED&E_nKAPh};6+gc6!J2;AxZy9F>w%vZ?1&Wra=WBVOhpP<%E*}-1-2h2gn4pE^7|z@$?uqmD1Zoc*!>aH$QhE%_ zLz|(Ue~8Xx@TrUmd9x0dbE}|Jn@7{ah9R!kV700A;d2qvu6ABa&vKN-}ZJuB)5;Bm2i0n`cNK(%8bk~J? zzZ$-vqk;RxG5$jP=;OLv<)>LcIun{1g7x5B(T3jQF3c|mJH0unv|cdCaEfx(3mh zf2(%mj=nIF=r(;>;?#Rl*P|Qke@9HV(%6awH9KGP&2zIxR6Qr9F?V!$T!NC+KCO=W z(w3l8Wcl4c1%}7GY`>xeAA-9i)vFkt@zC<=r2tsTAgc!tMu&*$>LfbtS;0;DAzvuV z=hBH3&Z>ZL8vhZmdXTls*~FBt2b-;C6O$^Z+XRZDeQ!}WH;4N1uix%3>>+<9bUo6l zF{MnSa&UYw7cnL!%If35$vcZ$1c__+%#|x_qeCRuNqJ4`R1rX@LY0FBR>!6%|C#Aw z|LMW^?k{yw8eUS2(@Hs+OpZpmFi!dgleH*VG=!Lm*#t}??c&gUN%Tm5&j6hQ-LQ49 zjDK6Qty;FD_O0vj6-G@+svDV`&zza9|(%*!(^b%O$_ezzdGuz|)=i9eL%5;=Lr~%KP+s3D%WQ90BdZ zQ2HjUEklK#2aK_4$}8(&omZ|w@!nq+cx#vnm|AEJ6dpji61grh?o}vZk&ECUMi`*()n#31CF-;q{ z8l=(6p9N#V8f4cWs2Ss*agxECfMV~)N0zL0?DQ`J z%)#k_+dm&o_|j^Wy+pH*OilH`RyK}t2;%6pwURmKdgEp!5hT2GHQs)O2Y)r5-Q#V> z$DQZ=mmw@ETuMzv>l9 z?^vZ3^EWg-Uc|O>-4pwgq>q>f;YJxh4O-o4TgMb&p4Y0D%zw{&B*~r=cO36d`Nw>? z?ym^$ZuG%alW9MFa_V>9#5Lu&6o%os?D0$j!xX>2r9CXKf{WE%Etqai>K0=gJ4RB> zU!GM5?ROzL?~zsIL=~*& z|N8vG_|Mw}p(R07fO3q@@^b*DjfU0$J@f z$!{~T5epm{IH8=vK4D*yo0qdvyoff~zMkYjvp3$gV^_uy)ur?#odUR)UwF$n09sAx z;>b>hCrsm)8AF`7t@U7Hc3^Q;8lH>xMN%Mq?gMfdtWi>-S@N7sr%Ip zM9d`W@g?i&g7l}4Tw1kHH#j7@O3lk7L4W6JS5*QXp!wsW0RGL=m1p_StrTW4cJ1}_ zuMbU4nWP_&jw0*o>ddkX3eq67a{E8{bf$W}lhe28q6;G?GvA11UblNBrSQB|vPy973QalE-DjO zV7V*FM+YxB&3~M*a6gGluBP43=xn3Q=6<0yTXo8mM z!3E>2v`@4ErS1ivJ@D)$KYV^Y)0T?!T)@+{&M0P@_E%YLoyy#xb| z)^R8JWRiOt?nB)eh+RODLVKEWSgI-pqJSga-xp+gF-rvmEe>bTlgmq%5_1%cq9SNy zwp4o!D4nX`d57gJba)It2|6@OK85WJ@hm0X{!LJM-xJ#G&@ zJ2ZTZ`t0ZDC)ULkK%Aeei=Cy7HN9hz9x)}rs@PP+Q5%RnUzXWmNi`h8L}=YT7;rx* z&2Mj4PGK4xp3NVGNmBIRr+1tj5MZSA&cpnO3q#i`s8n&$O9{F0F{f z36(pa(jF4n*~?YTTX@`nICE;0-2$|Q<`a9@MXDIUrLfD!h(j6qR2IvNz`MR9naT+u z^TKsR15_!O0@X5L*Ki)2u~3+!H}t|4#?6N^{+6fbWxI03bze6(C)wGQ_@;+?I{ zAS*MtHwUidj3Io8r=bnO2eU&n>F;d4@X%6TIMYl8)8LJPe0MI|aAO5}0Y!#TvdB}g znjfmMxSx7a8z`e~P%Jpjrt9Uybo4bOEe+)_N{GZT4?TCJ6Ei$WyTktMV}}O~trVSf zl-)&leM@}q;lDjw)6L+{CPWgm_)-GKT(AmsCT1dK z;Zn0$8%1~(mo%fHG_}AoQz3%H`2p>n0E!B)j9QVMzqk0uW#WOQulFu@drTyAUPBj* zBy%cPu{qE1pm3>J@yy;?($C8$HJIh#KWvsUqr&JOUEjCs4RL{#Bq;E^Pa56jqK=#1 zQo7^8N*He^hRvTUvG!wI=gw|Uj1_e&kRvLZW4x*@78Y0|?>bX=YQ0;MdaZ zz@1D?2H0L4-z)l0Mu-$S{5zBxdFIwIMW*+4rIOuML%yY1gEPV2H`@m@j9K-FfojskyN z^>%W`4uJWHCYVw_YFtPmrqb$#QOz9fTzfIsTama?Gxj>1a1raV{s^+zQf9Lk=;b8} z0#fWm{v+da2Y>J@&kWUNtHTe)QDR(Xv`YL`)Hz39wWuu`(jM(#N6>Q#hg%Ue-ofv1 z@mAy+!PDeSAN3lDIVR_qZV|EaAkhh2QFlvMpfKtnTjh(O?nitPQ9vg}(ps)|?+*C7PwAM%E>gwc)PpCSAoA`6O!ICkwF)>IvSE|ZZPA`ZS z#XZ0T^%11bQny$bwqYVQv>hgT;}f$HlQNh! zG_ScK>;i4MrjqIRZla9%WBVT|e~M#;_#F+NKA*peZFn1s8&YwLZHQ(ITG=B@3rn}; znz9m2tD-1zM$OU+niMA3YRyihpI6?JyQ3{Ns@ZJapn$oiD60LWV=5@<7cV1=Ir?NF zR5%XCdogo=H*3~)js@#}t}EETz!sPJj#Rj`j*rQ1xz{7|s`d+ywFbpcz#FzNx%i+~ zLxqz-(m1T7JpZMhc2m~2uPLuK>T^Kcp&NDVAAV|9GjFoS+y9P#^4P{vFxr5$_~}`Z ztCbb(#j(~R-RBu+SQT;f=EwKzw0qL;`{tm?Z<=>9MH&0J{t^L~OM-r+(qyO^xh;6CE`yhNTzD+Z;21*8O(=5Mnph}pE zpQsH*Tz>>UPWMy(gzQ%C84Hs!-x6Embugd)|iDzt>a7 zs2bt$#!rDGQ_l={W{iwwYPk}es5MVgT=AQ8nT=k3;MN@wwTiQ{INa{02M24iO}paU z*K-hd_CYgxg~fyYAhmslOTV4u>Lw4dZz-bKGEZy!(`mHarR_?yDDIh2bR${&5-Jn^ zgLE}PJI|yQ6fj05Xy3+rTWbwL14QyuMkf8tWw}?b+pPa;xa0zQADKoo$R9iW9-8CZ z@I%S+ZLlZ2=iQ6L=LU}1y*)@2=p)4|u`B7A&f<#gn%)Cg{|TGhS!B^87KZh18=B9< zpy%C`+vhT>T8p74t<`)oVR^jCAb=Tm$Kn&CgfvUQogz1Fq85ZtBi80!Q4x>>JQZS- zxc{(bOl+MNs{z*HruvW`e)_FO?QnmewR*P3s-EhJKcM>Nh^C~v^(g+T`jc>R`U0np zdro4SeOpZUF@|5_hor46Iw^ICS4IlZlE^J+21fnm+t8KWCj+X$BVFb%91|>~6Cg*W zxf!7kPLM_Oqj#xgF$57oG@wm?N4`3P^SP^7fo6hCMKOgIVP!=a^g+~Y5CSHL1M#w9zK7+jYFqw zTl7Q&XW@_f8FkoSR#xY$G<|_y>;36-3gq=8okx{-hwD?Rw`4ZYQ%eI-BqC+p+4`&) z1U5i~9-kx8dwM4$si20f#nJDn;4`XyPXg;er5Kea3k!T&S4PrWfIpaD9pjO4M-pEH zwkpS@ILk!HB__zr<3-(bPpar7+h2d==&@CONuM4Nw!)WSdBy%_B0=9bmHhCLXWx^M07Hq$e zGQR!m;JS~}iIT%=9#2U5XFkX4A0CeB8HjdOszcHka&OtS_%k8eGt2H|{&k3$O!Y^b zmYIQo@h?`_-o=fNFegZ`TSWdjp;FU~PRt&*R`+$}e`f^#4}ulL-m{mz{))~Z*;(T? z#}xzP==~YXJ}gQq9mot$~CdG=&LEdVevE z&uzej#7U3aRCLv>t~k0lib?*loITfRGt299^LVH*9HCHH5VV)mCmFLV{pCm&E zZsgw~f>w{DIy?T12C%6}ILz_DUWBCQeNj&9yAmlY*_7);1j1t5ovA+FMaO$<-!+@x zXU{qL5eS~J-npi~c!IPv-3v>v7%y^<7Ur2z+~LR6y$4d(l%D;Ne8M_1Ym1HDes|{l zW`>qm=vFCnUcVB{z;-5J2vUVHzhm~RgsrfR)Y`3Lpubp7a?Wr?;gh^LUL zr8eyZ8u4L3YrG+b3rr;?mE>Rt8ZJ_shrbRDh?iZCCdnH`-V5DA9BYrNoVtr%v84w5 zNqdPr4-BBdD*kA+HNKppWl~X1)>fp^ZN;VX9M%)Oy{^*f=9Kp+6r3W_TQ@Am!8}JJ1=dUN{th$KEKzl$VT2b@h-At9-e3U6b)H)`B_hXWTyI2v`f&hcUsE zDg)VF9uUN9TlO`I=k3`r_7PHXxrqHaC9|K6X4fjgU+|45Z$2(ta`pw*oQ33Hclq_3 z93n=t(9YDBfqmo~jQ+Z+8JBxxPE4v0Ym;Vve>o%k*zeDj(Wea${tY*GL|hb@iP(2s z-whyNpMOcGQ^Kv^h-qcUes!i{fzm&$m6lcd`Xj==wI*QCbVhM>quu( zVxj<5WfIVDS$b`*Zt4G#Q##K4jaBr}zw=s;o_h}C1;vy|>A)Dt=OKUrV_>#5cVh~h zA^Le0+Lt>vUT20$ZQd+F%<$Hr-LR8vBI25cgY_wMs|}dC4>dQv$%^%h+5Y2Cbq(2BRfiT9^hFvL!5Vj| zKC!p9wyM|3W0vI^(EfbnED>YkQyeTrE{3`xnC!E4sm5C^2W8(M*V!EARLWS6r2kGy z#o=&UY6TkKg4){czTWkyK_}rIviF>pM}`j4wtMkc7DtWsoti3MvqmTeA0`Y8=ymZZ z=MK``g3aFd+SHi&0%rbCmQPX;`5({i9b!G_lN_7`xA>znvq?YxRf6$d@h)$B`@E$C zIKtQBVwDhF{}v&Otl%SRf$XT*VzpO=Wayj@|B4zERcwC$6Oyy-LboS{Y*rSs5aa_n zS_O?V^VvbA12z2@dJo(V4kewQt2}T-!jdni3Qk~qqAWFd-MD!p@Qn^m-!ki*p7VEp zmacBarot7lYY6k6aS{rma%*SSs7 zZr(o#YJpvf+2*WnM(qV+c$3_w-EH=)^+-5npl`SL8(G7wU`q)$HPEjK~tSU z4VFVG6xY&cauNa}cJhV?Tnu@&(=W4shXTikxr#JDt{nfF2uUY)#@nrm#4apnpDX^>K?|f_>Pm_^_?@EQ~k!yATPHKy^ z9Y52c-N|8Lbv`4V_m@pR{>rE?X(?X;Cu#ODJ$2%W0wb2*zo@Y5X+!SPw(qq49huTZ z8=0G5qX2UD?1Y>v(|r}^UoM*fsF(9X;THgkYXeBNC5Pay#{4L-51~8rEn*+T^EC0o zgGuO56`oDT|M(0yIVIo=qSy_VJ1=j#*O?ZwEx1tdY|wB zr3F=mg|AP(+WhX%q`}uHTqU}<`>m^s(64#eQ%5}Oh?qL?l3LeIuX548DqW*Yena=N zKSPS~^VWa>ahRVVTYE^coytH&WZr%xF$iPdz7<)fc@XWoV!4Y}xR6lGXHlSwEw)qBJ3 zOQXE>p$?7Knmlo*`eGx3PpNUjr&K%POP?K&k1fB~oG5>aJ8tQ#gtkxL)|K_8(fa=w z7fa6~sh;BR+ygy%ms(r-&0AN}4iU0rr diff --git a/src/main/resources/assets/target/textures/item/tasergun_e.png b/src/main/resources/assets/target/textures/item/tasergun_e.png new file mode 100644 index 0000000000000000000000000000000000000000..22b9c585894aae55618a61d3f8952263cb8b6ec4 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSeV#6kAr*7pUfRg(kRZ|;*dKdl z!PGy|D|1yZ&N`^~Y0JNP6D*ehSrvU}86!|N@!-eA8Q0Ea&p6&;+rR4TMb~LTTO+2O r$X$Kg;K