添加附魔

This commit is contained in:
Atsuihsio 2024-06-10 03:35:54 +08:00
parent 48c0d95a91
commit 990b882ed5
15 changed files with 566 additions and 22 deletions

View file

@ -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<Taser> {
private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/item/tasergun_e.png");
public TaserLayer(GeoRenderer<Taser> 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);
}
}

View file

@ -1,16 +1,19 @@
package net.mcreator.target.client.model.item; package net.mcreator.target.client.model.item;
import net.mcreator.target.item.gun.Taser; 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.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player; 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.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel; import software.bernie.geckolib.model.GeoModel;
public class TaserItemModel extends GeoModel<Taser> { public class TaserItemModel extends GeoModel<Taser> {
public static final String TAG_POWER = "Power";
@Override @Override
public ResourceLocation getAnimationResource(Taser animatable) { public ResourceLocation getAnimationResource(Taser animatable) {
return new ResourceLocation("target", "animations/taser.animation.json"); return new ResourceLocation("target", "animations/taser.animation.json");
@ -30,9 +33,25 @@ public class TaserItemModel extends GeoModel<Taser> {
public void setCustomAnimations(Taser animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(Taser animatable, long instanceId, AnimationState animationState) {
CoreGeoBone gun = getAnimationProcessor().getBone("bone"); CoreGeoBone gun = getAnimationProcessor().getBone("bone");
CoreGeoBone shen = getAnimationProcessor().getBone("shen"); 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; 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 fp = player.getPersistentData().getDouble("fire_pos");
double fr = player.getPersistentData().getDouble("fire_rot"); double fr = player.getPersistentData().getDouble("fire_rot");

View file

@ -1,5 +1,6 @@
package net.mcreator.target.client.renderer.item; 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.item.gun.Taser;
import net.mcreator.target.client.model.item.TaserItemModel; import net.mcreator.target.client.model.item.TaserItemModel;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
@ -8,6 +9,7 @@ import software.bernie.geckolib.renderer.GeoItemRenderer;
public class TaserItemRenderer extends GeoItemRenderer<Taser> { public class TaserItemRenderer extends GeoItemRenderer<Taser> {
public TaserItemRenderer() { public TaserItemRenderer() {
super(new TaserItemModel()); super(new TaserItemModel());
this.addRenderLayer(new TaserLayer(this));
} }
@Override @Override

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -30,11 +30,7 @@ import java.util.Optional;
public class TaserBulletProjectileEntity extends ThrowableItemProjectile { public class TaserBulletProjectileEntity extends ThrowableItemProjectile {
private float damage = 1f; private float damage = 1f;
private int volt = 0; private int volt = 0;
private int wire_length = 0;
public TaserBulletProjectileEntity damage(float damage) {
this.damage = damage;
return this;
}
public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, Level world) { public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, Level world) {
super(type, world); super(type, world);
@ -44,10 +40,11 @@ public class TaserBulletProjectileEntity extends ThrowableItemProjectile {
super(type, entity, world); 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); super(TargetModEntities.TASER_BULLET_PROJECTILE.get(), entity, level);
this.damage = damage; this.damage = damage;
this.volt = volt; this.volt = volt;
this.wire_length = wire_length;
} }
public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level level) { public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level level) {
@ -130,7 +127,7 @@ public class TaserBulletProjectileEntity extends ThrowableItemProjectile {
public void tick() { public void tick() {
super.tick(); super.tick();
if (this.tickCount == 5) { if (this.tickCount == 5 + wire_length) {
this.setDeltaMovement(new Vec3(0, 0, 0)); this.setDeltaMovement(new Vec3(0, 0, 0));
} }
@ -142,8 +139,7 @@ public class TaserBulletProjectileEntity extends ThrowableItemProjectile {
@Override @Override
protected void onHitBlock(BlockHitResult result) { protected void onHitBlock(BlockHitResult result) {
if (!level().isClientSide) { if (!level().isClientSide) {
this.setDeltaMovement(this.getDeltaMovement().multiply(0, 0, 0)); this.setDeltaMovement(new Vec3(0, 0, 0));
this.setNoGravity(true);
} }
} }
} }

View file

@ -1,6 +1,7 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.mcreator.target.enchantment.LongerWireEnchantment;
import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.DeferredRegister;
@ -8,9 +9,12 @@ import net.minecraftforge.registries.DeferredRegister;
import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.Enchantment;
import net.mcreator.target.enchantment.VoltOverloadEnchantment; import net.mcreator.target.enchantment.VoltOverloadEnchantment;
import net.mcreator.target.enchantment.SuperRechargeEnchantment;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
public class TargetModEnchantments { public class TargetModEnchantments {
public static final DeferredRegister<Enchantment> REGISTRY = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, TargetMod.MODID); public static final DeferredRegister<Enchantment> REGISTRY = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, TargetMod.MODID);
public static final RegistryObject<Enchantment> VOLT_OVERLOAD = REGISTRY.register("volt_overload", () -> new VoltOverloadEnchantment()); public static final RegistryObject<Enchantment> VOLT_OVERLOAD = REGISTRY.register("volt_overload", () -> new VoltOverloadEnchantment());
public static final RegistryObject<Enchantment> SUPER_RECHARGE = REGISTRY.register("super_recharge", () -> new SuperRechargeEnchantment());
public static final RegistryObject<Enchantment> LONGER_WIRE = REGISTRY.register("longer_wire", () -> new LongerWireEnchantment());
} }

View file

@ -4,13 +4,11 @@ import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.client.renderer.item.TaserItemRenderer; 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.TargetModItems;
import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.init.TargetModSounds;
import net.mcreator.target.item.AnimatedItem; import net.mcreator.target.item.AnimatedItem;
import net.mcreator.target.tools.EnchantmentCategoryTool; import net.mcreator.target.tools.*;
import net.mcreator.target.tools.GunsTool;
import net.mcreator.target.tools.SoundTool;
import net.mcreator.target.tools.TooltipTool;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer; 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.network.chat.Component;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot; 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.entity.player.Player;
import net.minecraft.world.item.*; import net.minecraft.world.item.*;
import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions; import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem; 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); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationProcedure = "empty"; public String animationProcedure = "empty";
public static ItemDisplayContext transformType; public static ItemDisplayContext transformType;
public static final String TAG_POWER = "Power";
public static final int MAX_POWER_SIZE = 1200;
public Taser() { public Taser() {
super(new Item.Properties().stacksTo(1).rarity(Rarity.COMMON)); 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 @Override
public Set<SoundEvent> getReloadSound() { public Set<SoundEvent> 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) { protected static boolean check(ItemStack stack) {
@ -246,7 +267,7 @@ public class Taser extends GunItem implements GeoItem, AnimatedItem {
@Override @Override
public int getEnchantmentValue(ItemStack stack) { public int getEnchantmentValue(ItemStack stack) {
return 15; return 10;
} }
@Override @Override

View file

@ -6,6 +6,7 @@ import net.mcreator.target.init.TargetModEnchantments;
import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.init.TargetModSounds;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.tools.ItemNBTTool;
import net.mcreator.target.tools.SoundTool; import net.mcreator.target.tools.SoundTool;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundSource;
@ -18,13 +19,14 @@ import net.minecraft.world.level.Level;
// TODO 内联这个类 // TODO 内联这个类
public class TaserfireProcedure { public class TaserfireProcedure {
public static final String TAG_POWER = "Power";
public static void execute(Entity entity) { public static void execute(Entity entity) {
if (entity == null) return; if (entity == null) return;
if (entity instanceof Player player && !player.isSpectator()) { if (entity instanceof Player player && !player.isSpectator()) {
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (stack.getItem() == TargetModItems.TASER.get() && !stack.getOrCreateTag().getBoolean("reloading")) { if (stack.getItem() == TargetModItems.TASER.get() && !stack.getOrCreateTag().getBoolean("reloading")) {
Player _plrCldCheck4 = (Player) entity; 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 -> { entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.recoilHorizon = Math.random() < 0.5 ? -1 : 1; 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 volt = EnchantmentHelper.getTagEnchantmentLevel(TargetModEnchantments.VOLT_OVERLOAD.get(), stack);
int wire_length = EnchantmentHelper.getTagEnchantmentLevel(TargetModEnchantments.LONGER_WIRE.get(), stack);
Level level = entity.level(); Level level = entity.level();
if (!level.isClientSide()) { 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.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"), 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("fire_animation", 4);
stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1));
ItemNBTTool.setInt(stack, TAG_POWER, ItemNBTTool.getInt(stack, TAG_POWER, 1200) - 400);
} }
} }
} }

View file

@ -209,6 +209,398 @@
"parent": "0", "parent": "0",
"pivot": [-0.00238, 0.35352, 0.03753] "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", "name": "bone2",
"parent": "gun", "parent": "gun",
@ -391,9 +783,9 @@
} }
}, },
{ {
"origin": [-0.5, 0.84114, 2.60465], "origin": [-0.52344, 0.76912, 2.58967],
"size": [1, 0.67, 0.41], "size": [1.04688, 0.72859, 0.41],
"pivot": [0, 1.11614, 2.90465], "pivot": [0, 1.13341, 2.79467],
"rotation": [22.5, 0, 0], "rotation": [22.5, 0, 0],
"uv": { "uv": {
"north": {"uv": [14, 15], "uv_size": [1, 0.75]}, "north": {"uv": [14, 15], "uv_size": [1, 0.75]},

View file

@ -203,8 +203,12 @@
"item.minecraft.splash_potion.effect.target_long_shock": "Splash Potion of Shock", "item.minecraft.splash_potion.effect.target_long_shock": "Splash Potion of Shock",
"item.minecraft.lingering_potion.effect.target_long_shock": "Lingering 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.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", "des.target.sensitivity": "Current Sensitivity of This Gun: %1$s",

View file

@ -205,6 +205,10 @@
"enchantment.target.volt_overload": "电压过载", "enchantment.target.volt_overload": "电压过载",
"enchantment.target.volt_overload.desc": "增加泰瑟枪电击的伤害", "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", "des.target.sensitivity": "当前枪械的灵敏度为:%1$s",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

View file

@ -4,7 +4,7 @@
"recoil_y": 0.002, "recoil_y": 0.002,
"zoom_speed": 2, "zoom_speed": 2,
"zoom": 1.25, "zoom": 1.25,
"damage": 5, "damage": 7,
"velocity": 3, "velocity": 3,
"mag": 1, "mag": 1,
"weight": 0, "weight": 0,