修复迫击炮动画,添加无人机和遥控器

This commit is contained in:
Atsuihsio 2024-07-24 01:10:30 +08:00
parent df025d24cd
commit 42dddfcca9
26 changed files with 1236 additions and 181 deletions

View file

@ -46,13 +46,9 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
double zp = player.getPersistentData().getDouble("zoom_pos_z"); double zp = player.getPersistentData().getDouble("zoom_pos_z");
gun.setPosX(1.97f * (float) p); gun.setPosX(1.97f * (float) p);
gun.setPosY(0.011f * (float) p - (float) (0.2f * zp)); gun.setPosY(0.011f * (float) p - (float) (0.2f * zp));
gun.setPosZ(3.8f * (float) p + (float) (0.5f * zp)); gun.setPosZ(3.8f * (float) p + (float) (0.5f * zp));
gun.setScaleZ(1f - (0.2f * (float) p)); gun.setScaleZ(1f - (0.2f * (float) p));
scope.setScaleZ(1f - (0.4f * (float) p)); scope.setScaleZ(1f - (0.4f * (float) p));

View file

@ -0,0 +1,42 @@
package net.mcreator.target.client.renderer.entity;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.model.DroneModel;
import net.mcreator.target.entity.DroneEntity;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack;
public class DroneRenderer extends GeoEntityRenderer<DroneEntity> {
public DroneRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new DroneModel());
this.shadowRadius = 0.2f;
}
@Override
public RenderType getRenderType(DroneEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable));
}
@Override
public void preRender(PoseStack poseStack, DroneEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) {
float scale = 1f;
this.scaleHeight = scale;
this.scaleWidth = scale;
super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha);
}
@Override
protected float getDeathMaxRotation(DroneEntity entityLivingBaseIn) {
return 0.0F;
}
}

View file

@ -0,0 +1,225 @@
package net.mcreator.target.entity;
import net.mcreator.target.init.TargetModItems;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.registries.ForgeRegistries;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoEntity;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.ai.navigation.PathNavigation;
import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation;
import net.minecraft.world.entity.ai.control.FlyingMoveControl;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.core.BlockPos;
import net.mcreator.target.init.TargetModEntities;
import net.mcreator.target.item.Monitor;
import java.util.Objects;
public class DroneEntity extends PathfinderMob implements GeoEntity {
public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(DroneEntity.class, EntityDataSerializers.BOOLEAN);
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(DroneEntity.class, EntityDataSerializers.STRING);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
private boolean swinging;
private boolean lastloop;
private long lastSwing;
public String animationprocedure = "empty";
public DroneEntity(PlayMessages.SpawnEntity packet, Level world) {
this(TargetModEntities.DRONE.get(), world);
}
public DroneEntity(EntityType<DroneEntity> type, Level world) {
super(type, world);
xpReward = 0;
setNoAi(true);
setPersistenceRequired();
this.moveControl = new FlyingMoveControl(this, 10, true);
}
@Override
protected void defineSynchedData() {
super.defineSynchedData();
this.entityData.define(SHOOT, false);
this.entityData.define(ANIMATION, "undefined");
}
@Override
protected float getStandingEyeHeight(Pose poseIn, EntityDimensions sizeIn) {
return 0.05F;
}
@Override
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
@Override
protected PathNavigation createNavigation(Level world) {
return new FlyingPathNavigation(this, world);
}
@Override
public MobType getMobType() {
return MobType.UNDEFINED;
}
@Override
public boolean removeWhenFarAway(double distanceToClosestPlayer) {
return false;
}
@Override
public boolean causeFallDamage(float l, float d, DamageSource source) {
return false;
}
@Override
public void addAdditionalSaveData(CompoundTag compound) {
super.addAdditionalSaveData(compound);
}
@Override
public void readAdditionalSaveData(CompoundTag compound) {
super.readAdditionalSaveData(compound);
}
@Override
public void baseTick() {
super.baseTick();
this.refreshDimensions();
}
@Override
public InteractionResult mobInteract(Player sourceentity, InteractionHand hand) {
super.mobInteract(sourceentity, hand);
ItemStack stack = sourceentity.getMainHandItem();
if (stack.getItem() == TargetModItems.MONITOR.get()) {
stack.getOrCreateTag().putString("link", this.getStringUUID());
Monitor.link(stack,true);
sourceentity.displayClientMessage(Component.literal("LINKED!"), true);
if (sourceentity instanceof ServerPlayer serverPlayer) {
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), Objects.requireNonNull(ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.hit_player"))), SoundSource.PLAYERS, 0.5F, 1);
}
}
return InteractionResult.sidedSuccess(this.level().isClientSide());
}
@Override
public EntityDimensions getDimensions(Pose p_33597_) {
return super.getDimensions(p_33597_).scale((float) 1);
}
@Override
protected void checkFallDamage(double y, boolean onGroundIn, BlockState state, BlockPos pos) {
}
@Override
public void setNoGravity(boolean ignored) {
super.setNoGravity(true);
}
@Override
public void aiStep() {
super.aiStep();
this.updateSwingTime();
this.setNoGravity(true);
}
public static void init() {
}
public static AttributeSupplier.Builder createAttributes() {
AttributeSupplier.Builder builder = Mob.createMobAttributes();
builder = builder.add(Attributes.MOVEMENT_SPEED, 0.1);
builder = builder.add(Attributes.MAX_HEALTH, 10);
builder = builder.add(Attributes.ARMOR, 0);
builder = builder.add(Attributes.ATTACK_DAMAGE, 0);
builder = builder.add(Attributes.FOLLOW_RANGE, 64);
builder = builder.add(Attributes.FLYING_SPEED, 0.1);
return builder;
}
private PlayState movementPredicate(AnimationState event) {
if (this.animationprocedure.equals("empty")) {
if (!this.onGround()) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.drone.fly"));
}
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.drone.idle"));
}
return PlayState.STOP;
}
private PlayState procedurePredicate(AnimationState event) {
if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty";
event.getController().forceAnimationReset();
}
} else if (animationprocedure.equals("empty")) {
return PlayState.STOP;
}
return PlayState.CONTINUE;
}
@Override
protected void tickDeath() {
++this.deathTime;
if (this.deathTime == 20) {
this.remove(DroneEntity.RemovalReason.KILLED);
this.dropExperience();
}
}
public String getSyncedAnimation() {
return this.entityData.get(ANIMATION);
}
public void setAnimation(String animation) {
this.entityData.set(ANIMATION, animation);
}
@Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
data.add(new AnimationController<>(this, "movement", 1, this::movementPredicate));
data.add(new AnimationController<>(this, "procedure", 1, this::procedurePredicate));
}
@Override
public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache;
}
}

View file

@ -63,7 +63,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity {
public Mk42Entity(EntityType<Mk42Entity> type, Level world) { public Mk42Entity(EntityType<Mk42Entity> type, Level world) {
super(type, world); super(type, world);
xpReward = 0; xpReward = 0;
setNoAi(false); setNoAi(true);
setPersistenceRequired(); setPersistenceRequired();
} }
@ -130,32 +130,44 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity {
@Override @Override
public boolean hurt(DamageSource source, float amount) { public boolean hurt(DamageSource source, float amount) {
if (source.is(DamageTypes.IN_FIRE)) if (source.getDirectEntity() instanceof ThrownPotion
return false; || source.getDirectEntity() instanceof AreaEffectCloud
if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud) || source.is(DamageTypes.IN_FIRE)
return false; || source.is(DamageTypes.ON_FIRE)
if (source.is(DamageTypes.FALL)) || source.is(DamageTypes.FALL)
return false; || source.is(DamageTypes.CACTUS)
if (source.is(DamageTypes.CACTUS)) || source.is(DamageTypes.DROWN)
return false; || source.is(DamageTypes.LIGHTNING_BOLT)
if (source.is(DamageTypes.DROWN)) || source.is(DamageTypes.FALLING_ANVIL)
return false; || source.is(DamageTypes.DRAGON_BREATH)
if (source.is(DamageTypes.LIGHTNING_BOLT)) || source.is(DamageTypes.WITHER)
return false; || source.is(DamageTypes.WITHER_SKULL)
if (source.is(DamageTypes.FALLING_ANVIL)) || source.is(DamageTypes.GENERIC)
return false; || source.is(DamageTypes.MAGIC)
if (source.is(DamageTypes.DRAGON_BREATH)) || source.is(DamageTypes.ARROW)
return false; || source.is(DamageTypes.IN_WALL)
if (source.is(DamageTypes.WITHER)) || source.is(DamageTypes.MOB_ATTACK)
return false; || source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)
if (source.is(DamageTypes.WITHER_SKULL)) || source.is(DamageTypes.PLAYER_ATTACK)
|| source.is(DamageTypes.THORNS)
|| source.is(DamageTypes.STING)
|| source.is(DamageTypes.SWEET_BERRY_BUSH)
|| source.is(DamageTypes.TRIDENT)
|| source.is(DamageTypes.THROWN)) {
return false; return false;
}
if (source.is(TargetModDamageTypes.GUN_FIRE)
|| source.is(TargetModDamageTypes.GUN_FIRE_HEADSHOT)
|| source.is(TargetModDamageTypes.ARROW_IN_BRAIN)
|| source.is(TargetModDamageTypes.ARROW_IN_KNEE)) {
return super.hurt(source, 0.125f * amount);
}
if (source.getDirectEntity() instanceof Player player && this.getFirstPassenger() != null && player == this.getFirstPassenger()) { if (source.getDirectEntity() instanceof Player player && this.getFirstPassenger() != null && player == this.getFirstPassenger()) {
return false; return false;
} }
if (source.getDirectEntity() instanceof Player player && this.getFirstPassenger() != null && player == this.getFirstPassenger()) {
return false;
}
return super.hurt(source, amount); return super.hurt(source, amount);
} }

View file

@ -48,6 +48,8 @@ import javax.annotation.Nullable;
public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEntity { public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEntity {
public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.BOOLEAN);
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.STRING);
public static final EntityDataAccessor<Integer> FIRE_TIME = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.INT);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationProcedure = "empty"; public String animationProcedure = "empty";
@ -67,6 +69,8 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn
super.defineSynchedData(); super.defineSynchedData();
this.entityData.define(SHOOT, false); this.entityData.define(SHOOT, false);
this.entityData.define(ANIMATION, "undefined"); this.entityData.define(ANIMATION, "undefined");
this.entityData.define(FIRE_TIME, 0);
} }
@Override @Override
@ -141,13 +145,17 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn
@Override @Override
public void addAdditionalSaveData(CompoundTag compound) { public void addAdditionalSaveData(CompoundTag compound) {
super.addAdditionalSaveData(compound); super.addAdditionalSaveData(compound);
compound.putInt("fire_time", this.entityData.get(FIRE_TIME));
} }
@Override @Override
public void readAdditionalSaveData(CompoundTag compound) { public void readAdditionalSaveData(CompoundTag compound) {
super.readAdditionalSaveData(compound); super.readAdditionalSaveData(compound);
if (compound.contains("fire_time"))
this.entityData.set(FIRE_TIME, compound.getInt("fire_time"));
} }
@Override @Override
public InteractionResult mobInteract(Player player, InteractionHand hand) { public InteractionResult mobInteract(Player player, InteractionHand hand) {
super.mobInteract(player, hand); super.mobInteract(player, hand);
@ -165,7 +173,9 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn
} }
if (mainHandItem.getItem() == TargetModItems.MORTAR_SHELLS.get() && !player.getCooldowns().isOnCooldown(TargetModItems.MORTAR_SHELLS.get()) && !player.isShiftKeyDown()) { if (mainHandItem.getItem() == TargetModItems.MORTAR_SHELLS.get() && !player.getCooldowns().isOnCooldown(TargetModItems.MORTAR_SHELLS.get()) && !player.isShiftKeyDown()) {
this.getPersistentData().putInt("fire_time",25); // this.getPersistentData().putInt("fire_time",25);
this.entityData.set(FIRE_TIME,25);
player.getCooldowns().addCooldown(TargetModItems.MORTAR_SHELLS.get(), 30); player.getCooldowns().addCooldown(TargetModItems.MORTAR_SHELLS.get(), 30);
if (!player.isCreative()) { if (!player.isCreative()) {
@ -216,9 +226,11 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn
Thread Thread = new Thread(Runnable); Thread Thread = new Thread(Runnable);
Thread.start(); Thread.start();
if (this.getPersistentData().getInt("fire_time") > 0) { // if (this.getPersistentData().getInt("fire_time") > 0) {
this.getPersistentData().putInt("fire_time",this.getPersistentData().getInt("fire_time") - 1); // this.getPersistentData().putInt("fire_time",this.getPersistentData().getInt("fire_time") - 1);
} // }
this.entityData.set(FIRE_TIME,this.entityData.get(FIRE_TIME) - 1);
this.refreshDimensions(); this.refreshDimensions();
} }
@ -262,7 +274,7 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn
private PlayState movementPredicate(AnimationState event) { private PlayState movementPredicate(AnimationState event) {
if (this.animationProcedure.equals("empty")) { if (this.animationProcedure.equals("empty")) {
if (this.getPersistentData().getInt("fire_time") > 0) { if (this.entityData.get(FIRE_TIME) > 0) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mortar.fire")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mortar.fire"));
} }
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mortar.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mortar.idle"));

View file

@ -0,0 +1,25 @@
package net.mcreator.target.entity.model;
import software.bernie.geckolib.model.GeoModel;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.entity.DroneEntity;
public class DroneModel extends GeoModel<DroneEntity> {
@Override
public ResourceLocation getAnimationResource(DroneEntity entity) {
return new ResourceLocation("target", "animations/drone.animation.json");
}
@Override
public ResourceLocation getModelResource(DroneEntity entity) {
return new ResourceLocation("target", "geo/drone.geo.json");
}
@Override
public ResourceLocation getTextureResource(DroneEntity entity) {
return new ResourceLocation("target", "textures/entity/drone.png");
}
}

View file

@ -28,6 +28,10 @@ public class TargetModEntities {
EntityType.Builder.<ClaymoreEntity>of(ClaymoreEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ClaymoreEntity::new).fireImmune().sized(0.5f, 0.5f)); EntityType.Builder.<ClaymoreEntity>of(ClaymoreEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ClaymoreEntity::new).fireImmune().sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<Mk42Entity>> MK_42 = register("mk_42", public static final RegistryObject<EntityType<Mk42Entity>> MK_42 = register("mk_42",
EntityType.Builder.<Mk42Entity>of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(5.4f, 3.5f)); EntityType.Builder.<Mk42Entity>of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(5.4f, 3.5f));
public static final RegistryObject<EntityType<DroneEntity>> DRONE = register("drone",
EntityType.Builder.<DroneEntity>of(DroneEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(DroneEntity::new).sized(0.4f, 0.175f));
public static final RegistryObject<EntityType<TaserBulletProjectileEntity>> TASER_BULLET_PROJECTILE = register("projectile_taser_bullet_projectile", public static final RegistryObject<EntityType<TaserBulletProjectileEntity>> TASER_BULLET_PROJECTILE = register("projectile_taser_bullet_projectile",
EntityType.Builder.<TaserBulletProjectileEntity>of(TaserBulletProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64) EntityType.Builder.<TaserBulletProjectileEntity>of(TaserBulletProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64)
.setUpdateInterval(1).sized(0.5f, 0.5f)); .setUpdateInterval(1).sized(0.5f, 0.5f));
@ -66,5 +70,6 @@ public class TargetModEntities {
event.put(CLAYMORE.get(), ClaymoreEntity.createAttributes().build()); event.put(CLAYMORE.get(), ClaymoreEntity.createAttributes().build());
event.put(TARGET.get(), TargetEntity.createAttributes().build()); event.put(TARGET.get(), TargetEntity.createAttributes().build());
event.put(MK_42.get(), Mk42Entity.createAttributes().build()); event.put(MK_42.get(), Mk42Entity.createAttributes().build());
event.put(DRONE.get(), Mk42Entity.createAttributes().build());
} }
} }

View file

@ -1,7 +1,6 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.mcreator.target.client.renderer.entity.*; import net.mcreator.target.client.renderer.entity.*;
import net.mcreator.target.entity.CannonShellEntity;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.EntityRenderersEvent; import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
@ -25,5 +24,7 @@ public class TargetModEntityRenderers {
event.registerEntityRenderer(TargetModEntities.PROJECTILE.get(), ProjectileRenderer::new); event.registerEntityRenderer(TargetModEntities.PROJECTILE.get(), ProjectileRenderer::new);
event.registerEntityRenderer(TargetModEntities.FRAG.get(), FragRenderer::new); event.registerEntityRenderer(TargetModEntities.FRAG.get(), FragRenderer::new);
event.registerEntityRenderer(TargetModEntities.MK_42.get(), Mk42Renderer::new); event.registerEntityRenderer(TargetModEntities.MK_42.get(), Mk42Renderer::new);
event.registerEntityRenderer(TargetModEntities.DRONE.get(), DroneRenderer::new);
} }
} }

View file

@ -77,7 +77,10 @@ public class TargetModItems {
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TargetMod.MODID); public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TargetMod.MODID);
public static final RegistryObject<Item> SENPAI_SPAWN_EGG = ITEMS.register("senpai_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.SENPAI, -11584987, -14014413, new Item.Properties())); public static final RegistryObject<Item> SENPAI_SPAWN_EGG = ITEMS.register("senpai_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.SENPAI, -11584987, -14014413, new Item.Properties()));
public static final RegistryObject<Item> MK_42_SPAWN_EGG = ITEMS.register("mk42_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.MK_42, -11584987, -14014413, new Item.Properties())); public static final RegistryObject<Item> MK_42_SPAWN_EGG = ITEMS.register("mk42_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.MK_42, -8348258, -2630437, new Item.Properties()));
public static final RegistryObject<Item> DRONE_SPAWN_EGG = ITEMS.register("drone_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.DRONE, -3355444, -10053121, new Item.Properties()));
public static final RegistryObject<Item> MONITOR = ITEMS.register("monitor", Monitor::new);
public static final RegistryObject<Item> TARGET_DEPLOYER = ITEMS.register("target_deployer", TargetDeployer::new); public static final RegistryObject<Item> TARGET_DEPLOYER = ITEMS.register("target_deployer", TargetDeployer::new);
public static final RegistryObject<Item> SANDBAG = block(TargetModBlocks.SANDBAG); public static final RegistryObject<Item> SANDBAG = block(TargetModBlocks.SANDBAG);
public static final RegistryObject<Item> BARBED_WIRE = block(TargetModBlocks.BARBED_WIRE); public static final RegistryObject<Item> BARBED_WIRE = block(TargetModBlocks.BARBED_WIRE);

View file

@ -0,0 +1,29 @@
package net.mcreator.target.item;
import net.mcreator.target.tools.ItemNBTTool;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import java.util.List;
public class Monitor extends Item {
public Monitor() {
super(new Properties().stacksTo(1).rarity(Rarity.COMMON));
}
public static final String NBT_LINKED = "LINKED";
public static void link(ItemStack itemstack, Boolean link) {
if (link) {
ItemNBTTool.setBoolean(itemstack, NBT_LINKED, true);
}
}
@Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag);
}
}

View file

@ -169,7 +169,7 @@ public class Ntw20 extends GunItem implements GeoItem, AnimatedItem {
if (slot == EquipmentSlot.MAINHAND) { if (slot == EquipmentSlot.MAINHAND) {
map = HashMultimap.create(map); map = HashMultimap.create(map);
map.put(Attributes.MOVEMENT_SPEED, map.put(Attributes.MOVEMENT_SPEED,
new AttributeModifier(uuid, TargetMod.ATTRIBUTE_MODIFIER, -0.1f, AttributeModifier.Operation.MULTIPLY_BASE)); new AttributeModifier(uuid, TargetMod.ATTRIBUTE_MODIFIER, -0.15f, AttributeModifier.Operation.MULTIPLY_BASE));
} }
return map; return map;
} }

View file

@ -2,7 +2,6 @@
"format_version": "1.8.0", "format_version": "1.8.0",
"animations": { "animations": {
"animation.ak47.idle": { "animation.ak47.idle": {
"loop": true,
"animation_length": 1, "animation_length": 1,
"bones": { "bones": {
"Lefthand": { "Lefthand": {
@ -80,7 +79,6 @@
} }
}, },
"animation.ak47.changefirerate": { "animation.ak47.changefirerate": {
"loop": "hold_on_last_frame",
"animation_length": 0.5, "animation_length": 0.5,
"bones": { "bones": {
"0": { "0": {
@ -249,7 +247,6 @@
} }
}, },
"animation.ak47.run": { "animation.ak47.run": {
"loop": true,
"animation_length": 0.8, "animation_length": 0.8,
"bones": { "bones": {
"0": { "0": {
@ -338,24 +335,20 @@
} }
}, },
"animation.ak47.reload_normal": { "animation.ak47.reload_normal": {
"loop": "hold_on_last_frame",
"animation_length": 2.75, "animation_length": 2.75,
"override_previous_animation": true, "override_previous_animation": true,
"bones": { "bones": {
"0": { "0": {
"rotation": { "rotation": {
"0.0": { "0.1167": {
"vector": [0, 0, 0] "vector": [0, 0, 0]
}, },
"0.1": { "0.2167": {
"vector": [6.22824, 1.18826, 5.97426] "vector": [6.22824, 1.18826, 5.97426]
}, },
"0.3167": { "0.4333": {
"vector": [-14.01, 2.98, -9.37] "vector": [-14.01, 2.98, -9.37]
}, },
"0.4167": {
"vector": [-12.25012, 1.71575, -15.23679]
},
"0.5": { "0.5": {
"vector": [-13.67625, 0.53753, -20.43357] "vector": [-13.67625, 0.53753, -20.43357]
}, },
@ -396,31 +389,19 @@
"vector": [-12.53304, 1.46221, -17.39249], "vector": [-12.53304, 1.46221, -17.39249],
"easing": "easeInSine" "easing": "easeInSine"
}, },
"2.0833": { "2.3167": {
"vector": [-3.8135, -0.9118, -6.85724] "vector": [0, 0, 0],
}, "easing": "easeInElastic"
"2.2333": {
"vector": [-0.38814, -0.04302, 4.50985]
},
"2.3": {
"vector": [2, 0, 2]
},
"2.3833": {
"vector": [0, 0, 0]
} }
}, },
"position": { "position": {
"0.0": { "0.1167": {
"vector": [0, 0, 0] "vector": [0, 0, 0]
}, },
"0.2833": { "0.4": {
"vector": [-1.1, 0.3, -0.1], "vector": [-1.1, 0.3, -0.1],
"easing": "easeInQuad" "easing": "easeInQuad"
}, },
"0.4167": {
"vector": [-1.1, 0, -0.8],
"easing": "easeOutSine"
},
"0.5333": { "0.5333": {
"vector": [-1.1, 0, -0.6] "vector": [-1.1, 0, -0.6]
}, },
@ -455,26 +436,25 @@
"vector": [-0.59166, -0.35741, -0.73343], "vector": [-0.59166, -0.35741, -0.73343],
"easing": "easeInSine" "easing": "easeInSine"
}, },
"1.8667": { "1.7667": {
"vector": [-0.50339, -0.1283, -0.63949] "vector": [-0.50339, -0.1283, -0.63949]
}, },
"1.9833": { "1.9833": {
"vector": [-0.51504, -0.2787, -0.4855] "vector": [0.2, -0.5, -0.3]
}, },
"2.1833": { "2.2": {
"vector": [0, 0, -1.07] "vector": [0.14, -0.14, 1],
"easing": "easeInSine"
}, },
"2.3": { "2.3333": {
"vector": [0.00031, 0.02116, 0.55984] "vector": [0, 0, 0],
}, "easing": "easeInElastic"
"2.3833": {
"vector": [0, 0, 0]
} }
} }
}, },
"Lefthand": { "Lefthand": {
"rotation": { "rotation": {
"0.0333": { "0.1": {
"vector": [-27.6003, -27.56966, -16.00843] "vector": [-27.6003, -27.56966, -16.00843]
}, },
"0.5333": { "0.5333": {
@ -508,12 +488,12 @@
"vector": [-21.16455, -11.71775, -9.83624], "vector": [-21.16455, -11.71775, -9.83624],
"easing": "easeOutSine" "easing": "easeOutSine"
}, },
"2.3": { "2.2667": {
"vector": [-27.6003, -27.56966, -16.00843] "vector": [-27.6003, -27.56966, -16.00843]
} }
}, },
"position": { "position": {
"0.0333": { "0.1": {
"vector": [-0.6, -2.7, -3.3] "vector": [-0.6, -2.7, -3.3]
}, },
"0.5333": { "0.5333": {
@ -551,7 +531,7 @@
"vector": [2.48, -11.97, 0.18], "vector": [2.48, -11.97, 0.18],
"easing": "easeInOutSine" "easing": "easeInOutSine"
}, },
"2.3": { "2.2667": {
"vector": [-0.6, -2.7, -3.3] "vector": [-0.6, -2.7, -3.3]
} }
} }
@ -756,32 +736,23 @@
} }
} }
} }
},
"sound_effects": {
"0.0": {
"effect": "m_4_reload_normal"
}
} }
}, },
"animation.ak47.reload_empty": { "animation.ak47.reload_empty": {
"loop": "hold_on_last_frame",
"animation_length": 3.4333, "animation_length": 3.4333,
"override_previous_animation": true, "override_previous_animation": true,
"bones": { "bones": {
"0": { "0": {
"rotation": { "rotation": {
"0.0": { "0.1167": {
"vector": [0, 0, 0] "vector": [0, 0, 0]
}, },
"0.1": { "0.2167": {
"vector": [6.22824, 1.18826, 5.97426] "vector": [6.22824, 1.18826, 5.97426]
}, },
"0.3167": { "0.4333": {
"vector": [-14.01, 2.98, -9.37] "vector": [-14.01, 2.98, -9.37]
}, },
"0.4167": {
"vector": [-12.25012, 1.71575, -15.23679]
},
"0.5": { "0.5": {
"vector": [-13.67625, 0.53753, -20.43357] "vector": [-13.67625, 0.53753, -20.43357]
}, },
@ -791,17 +762,20 @@
"0.6333": { "0.6333": {
"vector": [-14.36475, 0.09248, -22.30327] "vector": [-14.36475, 0.09248, -22.30327]
}, },
"0.75": { "0.8": {
"vector": [-14.81, -0.41, -24.77] "vector": [-14.64202, 0.77211, -20.08007]
}, },
"0.8333": { "0.8833": {
"vector": [-17.57596, -2.10885, -29.925], "vector": [-14.68234, -0.0043, -31.08042]
},
"0.9667": {
"vector": [-26.62294, -3.8972, -29.0283],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"0.95": { "1.0833": {
"vector": [-15.94266, -0.18118, -25.15393] "vector": [-15.94266, -0.18118, -25.15393]
}, },
"1.15": { "1.2833": {
"vector": [-16.21216, -2.28043, -33.21481] "vector": [-16.21216, -2.28043, -33.21481]
}, },
"1.5": { "1.5": {
@ -819,7 +793,7 @@
"2.0": { "2.0": {
"vector": [-20.30109, -8.2353, -48.49477] "vector": [-20.30109, -8.2353, -48.49477]
}, },
"2.2333": { "2.2833": {
"vector": [-16.67409, -7.83578, -50.66699] "vector": [-16.67409, -7.83578, -50.66699]
}, },
"2.3167": { "2.3167": {
@ -836,48 +810,40 @@
"2.65": { "2.65": {
"vector": [-11.75146, -0.36394, -33.34824] "vector": [-11.75146, -0.36394, -33.34824]
}, },
"2.8167": { "2.9167": {
"vector": [-6.63855, 2.59206, -16.81115] "vector": [1, 0, 0],
"easing": "easeInOutSine"
}, },
"3.05": { "3.2833": {
"vector": [-0.38814, -0.04302, 4.50985] "vector": [0, 0, 0],
}, "easing": "easeInElastic"
"3.1167": {
"vector": [2, 0, 2]
},
"3.2": {
"vector": [0, 0, 0]
} }
}, },
"position": { "position": {
"0.0": { "0.1167": {
"vector": [0, 0, 0] "vector": [0, 0, 0]
}, },
"0.2833": { "0.4": {
"vector": [-1.1, 0.3, -0.1], "vector": [-1.1, 0.3, -0.1],
"easing": "easeInQuad" "easing": "easeInQuad"
}, },
"0.4167": {
"vector": [-1.1, 0, -0.8],
"easing": "easeOutSine"
},
"0.5333": { "0.5333": {
"vector": [-1.1, 0, -0.6] "vector": [-1.1, 0, -0.6]
}, },
"0.7": { "0.8333": {
"vector": [-1.13863, 0.08812, -0.6923] "vector": [-1.11871, 0.0414, -0.49886]
}, },
"0.75": { "0.8833": {
"vector": [-1.11, 0.09, -0.68] "vector": [-1.11, 0.09, -0.68]
}, },
"0.8333": { "0.9667": {
"vector": [-1.32651, 0.6322, -1.60351], "vector": [-1.32651, 0.6322, -1.60351],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"1.0333": { "1.1667": {
"vector": [-0.98667, 0.05602, -0.52736] "vector": [-0.98667, 0.05602, -0.52736]
}, },
"1.25": { "1.3833": {
"vector": [-1.02585, 0.23839, -1.22133] "vector": [-1.02585, 0.23839, -1.22133]
}, },
"1.5": { "1.5": {
@ -899,7 +865,7 @@
"2.1167": { "2.1167": {
"vector": [-0.50339, -0.1283, -0.63949] "vector": [-0.50339, -0.1283, -0.63949]
}, },
"2.2333": { "2.2833": {
"vector": [-0.51, -0.24, -0.53] "vector": [-0.51, -0.24, -0.53]
}, },
"2.3167": { "2.3167": {
@ -919,26 +885,22 @@
"2.7333": { "2.7333": {
"vector": [-0.25313, -0.26698, -1.40007] "vector": [-0.25313, -0.26698, -1.40007]
}, },
"2.85": {
"vector": [-0.09776, -0.12762, -1.05115]
},
"2.9333": { "2.9333": {
"vector": [0.00212, 0.18217, -0.76274] "vector": [0.2, -0.5, -0.3]
}, },
"3.0": { "3.05": {
"vector": [0.00274, -0.00904, -0.77015] "vector": [0.14, -0.14, 1],
"easing": "easeInSine"
}, },
"3.1167": { "3.3": {
"vector": [0.00031, 0.02116, 0.55984] "vector": [0, 0, 0],
}, "easing": "easeInElastic"
"3.2": {
"vector": [0, 0, 0]
} }
} }
}, },
"Lefthand": { "Lefthand": {
"rotation": { "rotation": {
"0.0333": { "0.1": {
"vector": [-27.6003, -27.56966, -16.00843] "vector": [-27.6003, -27.56966, -16.00843]
}, },
"0.5667": { "0.5667": {
@ -976,14 +938,14 @@
"vector": [-20.31753, -15.08281, -6.04184], "vector": [-20.31753, -15.08281, -6.04184],
"easing": "easeOutSine" "easing": "easeOutSine"
}, },
"1.65": { "1.7333": {
"vector": [-20.31753, -15.08281, -6.04184], "vector": [-20.31753, -15.08281, -6.04184],
"easing": "easeOutSine" "easing": "easeOutSine"
}, },
"1.8167": { "1.8333": {
"vector": [-6.78199, -4.07081, 10.69071] "vector": [-6.78199, -4.07081, 10.69071]
}, },
"1.9667": { "2.05": {
"vector": [-26.9, 5.84, 25.75] "vector": [-26.9, 5.84, 25.75]
}, },
"2.2": { "2.2": {
@ -996,15 +958,22 @@
"2.35": { "2.35": {
"vector": [18.15836, 54.76869, 89.37164] "vector": [18.15836, 54.76869, 89.37164]
}, },
"2.6667": { "2.45": {
"vector": [28.11259, -27.07767, 82.93501] "vector": [45.05645, 4.02403, 112.80291]
}, },
"2.85": { "2.5333": {
"vector": [-27.6003, -27.56966, -16.00843] "vector": [28.08023, -5.66109, 65.89022]
},
"2.6333": {
"vector": [8.14471, -15.41168, 11.40743]
},
"2.8833": {
"vector": [-27.6003, -27.56966, -16.00843],
"easing": "linear"
} }
}, },
"position": { "position": {
"0.0333": { "0.1": {
"vector": [-0.6, -2.7, -3.3] "vector": [-0.6, -2.7, -3.3]
}, },
"0.5667": { "0.5667": {
@ -1046,14 +1015,14 @@
"vector": [-1.82116, -5.66841, 1.27626], "vector": [-1.82116, -5.66841, 1.27626],
"easing": "easeOutSine" "easing": "easeOutSine"
}, },
"1.65": { "1.7333": {
"vector": [-1.82116, -5.66841, 1.27626], "vector": [-1.82116, -5.66841, 1.27626],
"easing": "easeOutSine" "easing": "easeOutSine"
}, },
"1.8167": { "1.8333": {
"vector": [-4.85539, -7.00072, 9.48678] "vector": [-4.85539, -7.00072, 9.48678]
}, },
"2.05": { "2.1": {
"vector": [-7.59261, -4.21333, 0.73397] "vector": [-7.59261, -4.21333, 0.73397]
}, },
"2.2": { "2.2": {
@ -1068,12 +1037,18 @@
"vector": [-7.5, -4.1, -0.3], "vector": [-7.5, -4.1, -0.3],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"2.5833": { "2.45": {
"vector": [-7.5, -3.1, -2.2], "vector": [-8.3, -3.99, 7.75]
"easing": "easeInOutCubic"
}, },
"2.85": { "2.5333": {
"vector": [-0.6, -2.7, -3.3] "vector": [-4.71, -4.82, 7.05]
},
"2.65": {
"vector": [0.31, -2.62, 6.08]
},
"2.8833": {
"vector": [-0.6, -2.7, -3.3],
"easing": "linear"
} }
} }
}, },
@ -1445,11 +1420,6 @@
} }
} }
} }
},
"sound_effects": {
"0.0": {
"effect": "ak_47_reload_empty"
}
} }
} }
}, },

View file

@ -0,0 +1,55 @@
{
"format_version": "1.8.0",
"animations": {
"animation.drone.idle": {
"loop": true
},
"animation.drone.fly": {
"loop": true,
"animation_length": 0.125,
"bones": {
"wing": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.125": {
"vector": [0, 360, 0]
}
}
},
"wing2": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.125": {
"vector": [0, -360, 0]
}
}
},
"wing3": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.125": {
"vector": [0, -360, 0]
}
}
},
"wing4": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.125": {
"vector": [0, 360, 0]
}
}
}
}
}
},
"geckolib_format_version": 2
}

View file

@ -1064,24 +1064,31 @@
"bones": { "bones": {
"0": { "0": {
"rotation": { "rotation": {
"0.1": { "0.125": {
"vector": [0, 0, 0], "vector": [0, 0, 0],
"easing": "easeInOutSine" "easing": "easeInOutSine"
}, },
"0.375": { "0.225": {
"vector": [-35.56192, -1.50886, -9.45771], "vector": [-1.07, -0.74, 6.37]
},
"0.425": {
"vector": [-20.56192, -1.50886, -9.45771],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"0.45": { "0.5": {
"vector": [-45.48387, -9.95091, -26.47651] "vector": [-20.48387, -9.95091, -26.47651]
}, },
"0.675": { "0.6": {
"vector": [-53.4025, -7.94945, -13.41702] "vector": [-17.67, -9.06, -20.67]
},
"0.725": {
"vector": [-43.4025, -7.94945, -13.41702]
}, },
"0.925": { "0.925": {
"vector": [-59.14389, -9.68328, -20.39262] "vector": [-59.14389, -9.68328, -20.39262],
"easing": "easeInElastic"
}, },
"1.15": { "1.075": {
"vector": [-55.01718, -24.39228, -33.75787] "vector": [-55.01718, -24.39228, -33.75787]
}, },
"1.375": { "1.375": {
@ -1105,32 +1112,35 @@
"2.425": { "2.425": {
"vector": [0.6713, 1.51642, 7.12107] "vector": [0.6713, 1.51642, 7.12107]
}, },
"2.65": { "2.5": {
"vector": [4, 0, 0],
"easing": "easeInOutSine"
},
"2.725": {
"vector": [0.49, 0, 0] "vector": [0.49, 0, 0]
}, },
"2.75": { "2.825": {
"vector": [0, 0, 0] "vector": [0, 0, 0]
} }
}, },
"position": { "position": {
"0.1": { "0.0": {
"vector": [0, 0, 0], "vector": [0, 0, 0]
},
"0.075": {
"vector": [0, 0, -1],
"easing": "easeInOutSine" "easing": "easeInOutSine"
}, },
"0.25": { "0.425": {
"vector": [-2.78, 5.3, -2.1], "vector": [-3.53, 4, -1.24]
"easing": "easeInElastic"
}, },
"0.375": { "0.5": {
"vector": [-3.53, 5.5, -0.74] "vector": [-2.14701, 3.47083, -2.19545]
}, },
"0.45": { "0.6": {
"vector": [-2.64701, 5.47083, -1.19545] "vector": [-2.96981, 4.21209, -2.58424]
}, },
"0.55": { "0.975": {
"vector": [-2.96981, 5.71209, -0.58424]
},
"1.05": {
"vector": [-3.51028, 6.5846, -1.08775] "vector": [-3.51028, 6.5846, -1.08775]
}, },
"1.7": { "1.7": {
@ -1149,17 +1159,20 @@
"vector": [-3.69025, 6.67119, -0.86389] "vector": [-3.69025, 6.67119, -0.86389]
}, },
"2.45": { "2.45": {
"vector": [-0.1, 0, 1.9], "vector": [-0.1, 0, 0.9],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"2.55": { "2.525": {
"vector": [0.2, -0.2, -0.3]
},
"2.625": {
"vector": [0.14, -0.14, 1], "vector": [0.14, -0.14, 1],
"easing": "easeInSine" "easing": "easeInSine"
}, },
"2.65": { "2.725": {
"vector": [0.04, 0.15993, 0.24478] "vector": [0.04, 0.15993, 0.24478]
}, },
"2.775": { "2.85": {
"vector": [0, 0, 0], "vector": [0, 0, 0],
"easing": "easeOutSine" "easing": "easeOutSine"
} }

View file

@ -0,0 +1,639 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.unknown",
"texture_width": 32,
"texture_height": 32,
"visible_bounds_width": 2,
"visible_bounds_height": 1.5,
"visible_bounds_offset": [0, 0.25, 0]
},
"bones": [
{
"name": "bone",
"pivot": [0, 0, 0]
},
{
"name": "0",
"parent": "bone",
"pivot": [0, 0, 0]
},
{
"name": "body",
"parent": "0",
"pivot": [0, 0, 0],
"cubes": [
{
"origin": [-1, 1.75, -3],
"size": [2, 0.5, 6],
"uv": {
"north": {"uv": [14, 3], "uv_size": [2, 0.5]},
"east": {"uv": [8, 0], "uv_size": [6, 0.5]},
"south": {"uv": [14, 8], "uv_size": [2, 0.5]},
"west": {"uv": [8, 1], "uv_size": [6, 0.5]},
"up": {"uv": [0, 0], "uv_size": [2, 6]},
"down": {"uv": [2, 6], "uv_size": [2, -6]}
}
},
{
"origin": [-1, 2.25, -1],
"size": [2, 0.5, 3.5],
"uv": {
"north": {"uv": [15, 10], "uv_size": [2, 0.5]},
"east": {"uv": [10, 12], "uv_size": [3.5, 0.5]},
"south": {"uv": [15, 11], "uv_size": [2, 0.5]},
"west": {"uv": [7, 13], "uv_size": [3.5, 0.5]},
"up": {"uv": [0, 6], "uv_size": [2, 3.5]},
"down": {"uv": [6, 3.5], "uv_size": [2, -3.5]}
}
},
{
"origin": [-1, 1.08579, 1.81066],
"size": [2, 0.5, 0.71094],
"pivot": [0, 1.33579, 3.56066],
"rotation": [-45, 0, 0],
"uv": {
"north": {"uv": [16, 3], "uv_size": [2, 0.5]},
"east": {"uv": [15, 19], "uv_size": [0.75, 0.5]},
"south": {"uv": [16, 4], "uv_size": [2, 0.5]},
"west": {"uv": [16, 19], "uv_size": [0.75, 0.5]},
"up": {"uv": [4, 13], "uv_size": [2, 0.75]},
"down": {"uv": [11, 13.75], "uv_size": [2, -0.75]}
}
},
{
"origin": [-1, 1.16583, 1.99831],
"size": [2, 0.5, 1.05078],
"pivot": [0, 1.41583, 2.5237],
"rotation": [60.5, 0, 0],
"uv": {
"north": {"uv": [14, 9], "uv_size": [2, 0.5]},
"east": {"uv": [14, 18], "uv_size": [1, 0.5]},
"south": {"uv": [15, 0], "uv_size": [2, 0.5]},
"west": {"uv": [15, 18], "uv_size": [1, 0.5]},
"up": {"uv": [12, 8], "uv_size": [2, 1]},
"down": {"uv": [12, 10], "uv_size": [2, -1]}
}
},
{
"origin": [-1, 1.58044, -2.94914],
"size": [2, 0.5, 1.35078],
"pivot": [0, 1.83044, -2.42375],
"rotation": [-17.5, 0, 0],
"uv": {
"north": {"uv": [15, 1], "uv_size": [2, 0.5]},
"east": {"uv": [17, 5], "uv_size": [1.25, 0.5]},
"south": {"uv": [15, 2], "uv_size": [2, 0.5]},
"west": {"uv": [6, 17], "uv_size": [1.25, 0.5]},
"up": {"uv": [4, 10], "uv_size": [2, 1.25]},
"down": {"uv": [10, 9.25], "uv_size": [2, -1.25]}
}
},
{
"origin": [-1, 2.06723, -2.82811],
"size": [2, 0.5, 2.04219],
"pivot": [0, 1.81723, -1.61131],
"rotation": [14.5, 0, 0],
"uv": {
"north": {"uv": [15, 12], "uv_size": [2, 0.5]},
"east": {"uv": [15, 13], "uv_size": [2, 0.5]},
"south": {"uv": [15, 14], "uv_size": [2, 0.5]},
"west": {"uv": [15, 15], "uv_size": [2, 0.5]},
"up": {"uv": [2, 6], "uv_size": [2, 2]},
"down": {"uv": [6, 8], "uv_size": [2, -2]}
}
},
{
"origin": [-1, 0.75, -1.75],
"size": [2, 1, 4.25],
"uv": {
"north": {"uv": [4, 12], "uv_size": [2, 1]},
"east": {"uv": [6, 4], "uv_size": [4.25, 1]},
"south": {"uv": [8, 12], "uv_size": [2, 1]},
"west": {"uv": [6, 5], "uv_size": [4.25, 1]},
"up": {"uv": [4, 0], "uv_size": [2, 4.25]},
"down": {"uv": [4, 9.25], "uv_size": [2, -4.25]}
}
},
{
"origin": [-0.45, 0.85, -2.75],
"size": [0.9, 0.6, 0.9],
"pivot": [0, 1.15, -2.3],
"rotation": [16, 0, 0],
"uv": {
"north": {"uv": [7, 19], "uv_size": [1, 0.5]},
"east": {"uv": [8, 19], "uv_size": [1, 0.5]},
"south": {"uv": [9, 19], "uv_size": [1, 0.5]},
"west": {"uv": [10, 19], "uv_size": [1, 0.5]},
"up": {"uv": [1, 15], "uv_size": [1, 1]},
"down": {"uv": [1, 17], "uv_size": [1, -1]}
}
},
{
"origin": [0.45, 0.95, -2.55],
"size": [0.2, 0.4, 1],
"uv": {
"north": {"uv": [21, 15], "uv_size": [0.25, 0.5]},
"east": {"uv": [11, 19], "uv_size": [1, 0.5]},
"south": {"uv": [16, 21], "uv_size": [0.25, 0.5]},
"west": {"uv": [12, 19], "uv_size": [1, 0.5]},
"up": {"uv": [14, 20], "uv_size": [0.25, 1]},
"down": {"uv": [20, 15], "uv_size": [0.25, -1]}
}
},
{
"origin": [-0.65, 0.95, -2.55],
"size": [0.2, 0.4, 1],
"uv": {
"north": {"uv": [21, 16], "uv_size": [0.25, 0.5]},
"east": {"uv": [13, 19], "uv_size": [1, 0.5]},
"south": {"uv": [17, 21], "uv_size": [0.25, 0.5]},
"west": {"uv": [14, 19], "uv_size": [1, 0.5]},
"up": {"uv": [15, 20], "uv_size": [0.25, 1]},
"down": {"uv": [20, 16], "uv_size": [0.25, -1]}
}
},
{
"origin": [-1.25, 1.5, -5.25],
"size": [0.75, 0.5, 5.25],
"pivot": [0, 0, 0],
"rotation": [0, -67.5, 0],
"uv": {
"north": {"uv": [17, 19], "uv_size": [0.75, 0.5]},
"east": {"uv": [8, 2], "uv_size": [5.25, 0.5]},
"south": {"uv": [18, 19], "uv_size": [0.75, 0.5]},
"west": {"uv": [8, 3], "uv_size": [5.25, 0.5]},
"up": {"uv": [2, 8], "uv_size": [0.75, 5.25]},
"down": {"uv": [3, 13.25], "uv_size": [0.75, -5.25]}
}
},
{
"origin": [0.5, 1.5, -5.25],
"size": [0.75, 0.5, 5.25],
"pivot": [0, 0, 0],
"rotation": [0, 67.5, 0],
"uv": {
"north": {"uv": [19, 18], "uv_size": [0.75, 0.5]},
"east": {"uv": [10, 6], "uv_size": [5.25, 0.5]},
"south": {"uv": [19, 19], "uv_size": [0.75, 0.5]},
"west": {"uv": [10, 7], "uv_size": [5.25, 0.5]},
"up": {"uv": [6, 8], "uv_size": [0.75, 5.25]},
"down": {"uv": [8, 11.25], "uv_size": [0.75, -5.25]}
}
},
{
"origin": [0.5, 1.05, -6],
"size": [0.75, 0.95, 0.75],
"pivot": [0, 0, 0],
"rotation": [0, 67.5, 0],
"uv": {
"north": {"uv": [16, 5], "uv_size": [0.75, 1]},
"east": {"uv": [16, 6], "uv_size": [0.75, 1]},
"south": {"uv": [16, 7], "uv_size": [0.75, 1]},
"west": {"uv": [16, 8], "uv_size": [0.75, 1]},
"up": {"uv": [18, 0], "uv_size": [0.75, 0.75]},
"down": {"uv": [18, 1.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [-1.25, 1.05, -6],
"size": [0.75, 0.95, 0.75],
"pivot": [0, 0, 0],
"rotation": [0, -67.5, 0],
"uv": {
"north": {"uv": [16, 9], "uv_size": [0.75, 1]},
"east": {"uv": [13, 16], "uv_size": [0.75, 1]},
"south": {"uv": [15, 16], "uv_size": [0.75, 1]},
"west": {"uv": [16, 16], "uv_size": [0.75, 1]},
"up": {"uv": [18, 2], "uv_size": [0.75, 0.75]},
"down": {"uv": [3, 18.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [0.5, 1.5, 1],
"size": [0.75, 0.5, 4.25],
"pivot": [0, 0, 0],
"rotation": [0, -55, 0],
"uv": {
"north": {"uv": [0, 20], "uv_size": [0.75, 0.5]},
"east": {"uv": [10, 10], "uv_size": [4.25, 0.5]},
"south": {"uv": [20, 0], "uv_size": [0.75, 0.5]},
"west": {"uv": [11, 4], "uv_size": [4.25, 0.5]},
"up": {"uv": [7, 8], "uv_size": [0.75, 4.25]},
"down": {"uv": [9, 10.25], "uv_size": [0.75, -4.25]}
}
},
{
"origin": [-1.25, 1.5, 1],
"size": [0.75, 0.5, 4.25],
"pivot": [0, 0, 0],
"rotation": [0, 55, 0],
"uv": {
"north": {"uv": [1, 20], "uv_size": [0.75, 0.5]},
"east": {"uv": [11, 5], "uv_size": [4.25, 0.5]},
"south": {"uv": [20, 1], "uv_size": [0.75, 0.5]},
"west": {"uv": [9, 11], "uv_size": [4.25, 0.5]},
"up": {"uv": [0, 10], "uv_size": [0.75, 4.25]},
"down": {"uv": [1, 14.25], "uv_size": [0.75, -4.25]}
}
},
{
"origin": [-1.25, 1.05, 5.25],
"size": [0.75, 0.95, 0.75],
"pivot": [0, -0.05, 0],
"rotation": [0, 55, 0],
"uv": {
"north": {"uv": [17, 0], "uv_size": [0.75, 1]},
"east": {"uv": [1, 17], "uv_size": [0.75, 1]},
"south": {"uv": [17, 1], "uv_size": [0.75, 1]},
"west": {"uv": [2, 17], "uv_size": [0.75, 1]},
"up": {"uv": [18, 3], "uv_size": [0.75, 0.75]},
"down": {"uv": [4, 18.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [0.5, 1.05, 5.25],
"size": [0.75, 0.95, 0.75],
"pivot": [0, -0.05, 0],
"rotation": [0, -55, 0],
"uv": {
"north": {"uv": [17, 2], "uv_size": [0.75, 1]},
"east": {"uv": [3, 17], "uv_size": [0.75, 1]},
"south": {"uv": [4, 17], "uv_size": [0.75, 1]},
"west": {"uv": [5, 17], "uv_size": [0.75, 1]},
"up": {"uv": [18, 4], "uv_size": [0.75, 0.75]},
"down": {"uv": [5, 18.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [-1.15, 2, -5.9],
"size": [0.55, 0.45, 0.55],
"pivot": [0, 0, 0],
"rotation": [0, -67.5, 0],
"uv": {
"north": {"uv": [21, 4], "uv_size": [0.5, 0.5]},
"east": {"uv": [5, 21], "uv_size": [0.5, 0.5]},
"south": {"uv": [21, 5], "uv_size": [0.5, 0.5]},
"west": {"uv": [6, 21], "uv_size": [0.5, 0.5]},
"up": {"uv": [21, 6], "uv_size": [0.5, 0.5]},
"down": {"uv": [7, 21.5], "uv_size": [0.5, -0.5]}
}
},
{
"origin": [0.6, 2, -5.9],
"size": [0.55, 0.45, 0.55],
"pivot": [0, 0, 0],
"rotation": [0, 67.5, 0],
"uv": {
"north": {"uv": [21, 1], "uv_size": [0.5, 0.5]},
"east": {"uv": [2, 21], "uv_size": [0.5, 0.5]},
"south": {"uv": [21, 2], "uv_size": [0.5, 0.5]},
"west": {"uv": [3, 21], "uv_size": [0.5, 0.5]},
"up": {"uv": [21, 3], "uv_size": [0.5, 0.5]},
"down": {"uv": [4, 21.5], "uv_size": [0.5, -0.5]}
}
},
{
"origin": [0.6, 2, 5.35],
"size": [0.55, 0.45, 0.55],
"pivot": [0, -0.05, 0],
"rotation": [0, -55, 0],
"uv": {
"north": {"uv": [19, 20], "uv_size": [0.5, 0.5]},
"east": {"uv": [20, 19], "uv_size": [0.5, 0.5]},
"south": {"uv": [20, 20], "uv_size": [0.5, 0.5]},
"west": {"uv": [0, 21], "uv_size": [0.5, 0.5]},
"up": {"uv": [21, 0], "uv_size": [0.5, 0.5]},
"down": {"uv": [1, 21.5], "uv_size": [0.5, -0.5]}
}
},
{
"origin": [-1.15, 2, 5.35],
"size": [0.55, 0.45, 0.55],
"pivot": [0, -0.05, 0],
"rotation": [0, 55, 0],
"uv": {
"north": {"uv": [16, 20], "uv_size": [0.5, 0.5]},
"east": {"uv": [20, 16], "uv_size": [0.5, 0.5]},
"south": {"uv": [17, 20], "uv_size": [0.5, 0.5]},
"west": {"uv": [20, 17], "uv_size": [0.5, 0.5]},
"up": {"uv": [18, 20], "uv_size": [0.5, 0.5]},
"down": {"uv": [20, 18.5], "uv_size": [0.5, -0.5]}
}
},
{
"origin": [0.6, 0.05, 5.5],
"size": [0.55, 1, 0.5],
"pivot": [0, -1, 0],
"rotation": [0, -55, 0],
"uv": {
"north": {"uv": [19, 4], "uv_size": [0.5, 1]},
"east": {"uv": [5, 19], "uv_size": [0.5, 1]},
"south": {"uv": [19, 5], "uv_size": [0.5, 1]},
"west": {"uv": [6, 19], "uv_size": [0.5, 1]},
"up": {"uv": [13, 20], "uv_size": [0.5, 0.5]},
"down": {"uv": [20, 13.5], "uv_size": [0.5, -0.5]}
}
},
{
"origin": [0.6, 0.05, -5.9],
"size": [0.55, 1, 0.4],
"pivot": [0, -0.95, 0],
"rotation": [0, 67.5, 0],
"uv": {
"north": {"uv": [19, 2], "uv_size": [0.5, 1]},
"east": {"uv": [3, 19], "uv_size": [0.5, 1]},
"south": {"uv": [19, 3], "uv_size": [0.5, 1]},
"west": {"uv": [4, 19], "uv_size": [0.5, 1]},
"up": {"uv": [12, 20], "uv_size": [0.5, 0.5]},
"down": {"uv": [20, 12.5], "uv_size": [0.5, -0.5]}
}
},
{
"origin": [-1.15, 0.05, -5.9],
"size": [0.55, 1, 0.4],
"pivot": [0, -0.95, 0],
"rotation": [0, -67.5, 0],
"uv": {
"north": {"uv": [19, 0], "uv_size": [0.5, 1]},
"east": {"uv": [1, 19], "uv_size": [0.5, 1]},
"south": {"uv": [19, 1], "uv_size": [0.5, 1]},
"west": {"uv": [2, 19], "uv_size": [0.5, 1]},
"up": {"uv": [11, 20], "uv_size": [0.5, 0.5]},
"down": {"uv": [20, 11.5], "uv_size": [0.5, -0.5]}
}
},
{
"origin": [-1.15, 0.05, 5.5],
"size": [0.55, 1, 0.5],
"pivot": [0, -1, 0],
"rotation": [0, 55, 0],
"uv": {
"north": {"uv": [16, 18], "uv_size": [0.5, 1]},
"east": {"uv": [17, 18], "uv_size": [0.5, 1]},
"south": {"uv": [18, 18], "uv_size": [0.5, 1]},
"west": {"uv": [0, 19], "uv_size": [0.5, 1]},
"up": {"uv": [10, 20], "uv_size": [0.5, 0.5]},
"down": {"uv": [20, 10.5], "uv_size": [0.5, -0.5]}
}
}
]
},
{
"name": "wing",
"parent": "0",
"pivot": [4.87422, 2.5, -2.96641],
"cubes": [
{
"origin": [4.77422, 2.4, -3.06641],
"size": [0.2, 0.7, 0.2],
"pivot": [4.87422, 2.25, -2.96641],
"rotation": [0, -32.5, 0],
"uv": {
"north": {"uv": [21, 7], "uv_size": [0.25, 0.75]},
"east": {"uv": [8, 21], "uv_size": [0.25, 0.75]},
"south": {"uv": [21, 8], "uv_size": [0.25, 0.75]},
"west": {"uv": [9, 21], "uv_size": [0.25, 0.75]},
"up": {"uv": [4, 22], "uv_size": [0.25, 0.25]},
"down": {"uv": [22, 4.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [4.52422, 2.5, -3.31641],
"size": [0.7, 0.45, 0.7],
"pivot": [4.87422, 2.25, -2.96641],
"rotation": [0, -32.5, 0],
"uv": {
"north": {"uv": [2, 20], "uv_size": [0.75, 0.5]},
"east": {"uv": [20, 2], "uv_size": [0.75, 0.5]},
"south": {"uv": [3, 20], "uv_size": [0.75, 0.5]},
"west": {"uv": [20, 3], "uv_size": [0.75, 0.5]},
"up": {"uv": [6, 18], "uv_size": [0.75, 0.75]},
"down": {"uv": [7, 18.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [4.62422, 2.6, -5.81641],
"size": [0.5, 0.25, 2.5],
"pivot": [4.87422, 2.725, -2.96641],
"rotation": [-13.70122, -29.76212, 26.15697],
"uv": {
"north": {"uv": [21, 18], "uv_size": [0.5, 0.25]},
"east": {"uv": [8, 17], "uv_size": [2.5, 0.25]},
"south": {"uv": [19, 21], "uv_size": [0.5, 0.25]},
"west": {"uv": [17, 8], "uv_size": [2.5, 0.25]},
"up": {"uv": [2, 14], "uv_size": [0.5, 2.5]},
"down": {"uv": [3, 16.5], "uv_size": [0.5, -2.5]}
}
},
{
"origin": [4.62422, 2.6, -2.61641],
"size": [0.5, 0.25, 2.5],
"pivot": [4.87422, 2.725, -2.96641],
"rotation": [13.70122, -29.76212, -26.15697],
"uv": {
"north": {"uv": [21, 17], "uv_size": [0.5, 0.25]},
"east": {"uv": [17, 6], "uv_size": [2.5, 0.25]},
"south": {"uv": [18, 21], "uv_size": [0.5, 0.25]},
"west": {"uv": [17, 7], "uv_size": [2.5, 0.25]},
"up": {"uv": [13, 13], "uv_size": [0.5, 2.5]},
"down": {"uv": [14, 2.5], "uv_size": [0.5, -2.5]}
}
}
]
},
{
"name": "wing2",
"parent": "0",
"pivot": [-4.87422, 2.5, -2.96641],
"cubes": [
{
"origin": [-4.97422, 2.4, -3.06641],
"size": [0.2, 0.7, 0.2],
"pivot": [-4.87422, 2.25, -2.96641],
"rotation": [0, 67.5, 0],
"uv": {
"north": {"uv": [21, 9], "uv_size": [0.25, 0.75]},
"east": {"uv": [10, 21], "uv_size": [0.25, 0.75]},
"south": {"uv": [21, 10], "uv_size": [0.25, 0.75]},
"west": {"uv": [11, 21], "uv_size": [0.25, 0.75]},
"up": {"uv": [5, 22], "uv_size": [0.25, 0.25]},
"down": {"uv": [22, 5.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [-5.22422, 2.5, -3.31641],
"size": [0.7, 0.45, 0.7],
"pivot": [-4.87422, 2.25, -2.96641],
"rotation": [0, 67.5, 0],
"uv": {
"north": {"uv": [4, 20], "uv_size": [0.75, 0.5]},
"east": {"uv": [20, 4], "uv_size": [0.75, 0.5]},
"south": {"uv": [5, 20], "uv_size": [0.75, 0.5]},
"west": {"uv": [20, 5], "uv_size": [0.75, 0.5]},
"up": {"uv": [8, 18], "uv_size": [0.75, 0.75]},
"down": {"uv": [9, 18.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [-5.12422, 2.6, -5.81641],
"size": [0.5, 0.25, 2.5],
"pivot": [-4.87422, 2.725, -2.96641],
"rotation": [-42.73421, 58.60029, -47.26579],
"uv": {
"north": {"uv": [21, 19], "uv_size": [0.5, 0.25]},
"east": {"uv": [17, 9], "uv_size": [2.5, 0.25]},
"south": {"uv": [20, 21], "uv_size": [0.5, 0.25]},
"west": {"uv": [17, 10], "uv_size": [2.5, 0.25]},
"up": {"uv": [4, 14], "uv_size": [0.5, 2.5]},
"down": {"uv": [5, 16.5], "uv_size": [0.5, -2.5]}
}
},
{
"origin": [-5.12422, 2.6, -2.61641],
"size": [0.5, 0.25, 2.5],
"pivot": [-4.87422, 2.725, -2.96641],
"rotation": [42.73421, 58.60029, 47.26579],
"uv": {
"north": {"uv": [21, 20], "uv_size": [0.5, 0.25]},
"east": {"uv": [11, 17], "uv_size": [2.5, 0.25]},
"south": {"uv": [21, 21], "uv_size": [0.5, 0.25]},
"west": {"uv": [17, 11], "uv_size": [2.5, 0.25]},
"up": {"uv": [6, 14], "uv_size": [0.5, 2.5]},
"down": {"uv": [7, 16.5], "uv_size": [0.5, -2.5]}
}
}
]
},
{
"name": "wing3",
"parent": "0",
"pivot": [-4.10859, 2.5, 3.93984],
"cubes": [
{
"origin": [-4.20859, 2.4, 3.83984],
"size": [0.2, 0.7, 0.2],
"pivot": [-4.10859, 2.25, 3.93984],
"rotation": [0, -32.5, 0],
"uv": {
"north": {"uv": [21, 11], "uv_size": [0.25, 0.75]},
"east": {"uv": [12, 21], "uv_size": [0.25, 0.75]},
"south": {"uv": [21, 12], "uv_size": [0.25, 0.75]},
"west": {"uv": [13, 21], "uv_size": [0.25, 0.75]},
"up": {"uv": [6, 22], "uv_size": [0.25, 0.25]},
"down": {"uv": [22, 6.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [-4.45859, 2.5, 3.58984],
"size": [0.7, 0.45, 0.7],
"pivot": [-4.10859, 2.25, 3.93984],
"rotation": [0, -32.5, 0],
"uv": {
"north": {"uv": [6, 20], "uv_size": [0.75, 0.5]},
"east": {"uv": [20, 6], "uv_size": [0.75, 0.5]},
"south": {"uv": [7, 20], "uv_size": [0.75, 0.5]},
"west": {"uv": [20, 7], "uv_size": [0.75, 0.5]},
"up": {"uv": [10, 18], "uv_size": [0.75, 0.75]},
"down": {"uv": [11, 18.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [-4.35859, 2.6, 1.08984],
"size": [0.5, 0.25, 2.5],
"pivot": [-4.10859, 2.725, 3.93984],
"rotation": [13.70122, -29.76212, -26.15697],
"uv": {
"north": {"uv": [0, 22], "uv_size": [0.5, 0.25]},
"east": {"uv": [17, 12], "uv_size": [2.5, 0.25]},
"south": {"uv": [22, 0], "uv_size": [0.5, 0.25]},
"west": {"uv": [17, 13], "uv_size": [2.5, 0.25]},
"up": {"uv": [8, 14], "uv_size": [0.5, 2.5]},
"down": {"uv": [9, 16.5], "uv_size": [0.5, -2.5]}
}
},
{
"origin": [-4.35859, 2.6, 4.28984],
"size": [0.5, 0.25, 2.5],
"pivot": [-4.10859, 2.725, 3.93984],
"rotation": [-13.70122, -29.76212, 26.15697],
"uv": {
"north": {"uv": [1, 22], "uv_size": [0.5, 0.25]},
"east": {"uv": [14, 17], "uv_size": [2.5, 0.25]},
"south": {"uv": [22, 1], "uv_size": [0.5, 0.25]},
"west": {"uv": [17, 14], "uv_size": [2.5, 0.25]},
"up": {"uv": [10, 14], "uv_size": [0.5, 2.5]},
"down": {"uv": [11, 16.5], "uv_size": [0.5, -2.5]}
}
}
]
},
{
"name": "wing4",
"parent": "0",
"pivot": [4.10859, 2.5, 3.93984],
"cubes": [
{
"origin": [4.00859, 2.4, 3.83984],
"size": [0.2, 0.7, 0.2],
"pivot": [4.10859, 2.25, 3.93984],
"rotation": [0, -37.5, 0],
"uv": {
"north": {"uv": [21, 13], "uv_size": [0.25, 0.75]},
"east": {"uv": [14, 21], "uv_size": [0.25, 0.75]},
"south": {"uv": [21, 14], "uv_size": [0.25, 0.75]},
"west": {"uv": [15, 21], "uv_size": [0.25, 0.75]},
"up": {"uv": [7, 22], "uv_size": [0.25, 0.25]},
"down": {"uv": [22, 7.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [3.75859, 2.5, 3.58984],
"size": [0.7, 0.45, 0.7],
"pivot": [4.10859, 2.25, 3.93984],
"rotation": [0, -37.5, 0],
"uv": {
"north": {"uv": [8, 20], "uv_size": [0.75, 0.5]},
"east": {"uv": [20, 8], "uv_size": [0.75, 0.5]},
"south": {"uv": [9, 20], "uv_size": [0.75, 0.5]},
"west": {"uv": [20, 9], "uv_size": [0.75, 0.5]},
"up": {"uv": [12, 18], "uv_size": [0.75, 0.75]},
"down": {"uv": [13, 18.75], "uv_size": [0.75, -0.75]}
}
},
{
"origin": [3.85859, 2.6, 1.08984],
"size": [0.5, 0.25, 2.5],
"pivot": [4.10859, 2.725, 3.93984],
"rotation": [-16.36452, -34.22348, 27.56928],
"uv": {
"north": {"uv": [2, 22], "uv_size": [0.5, 0.25]},
"east": {"uv": [17, 15], "uv_size": [2.5, 0.25]},
"south": {"uv": [22, 2], "uv_size": [0.5, 0.25]},
"west": {"uv": [17, 16], "uv_size": [2.5, 0.25]},
"up": {"uv": [14, 11], "uv_size": [0.5, 2.5]},
"down": {"uv": [12, 16.5], "uv_size": [0.5, -2.5]}
}
},
{
"origin": [3.85859, 2.6, 4.28984],
"size": [0.5, 0.25, 2.5],
"pivot": [4.10859, 2.725, 3.93984],
"rotation": [16.36452, -34.22348, -27.56928],
"uv": {
"north": {"uv": [3, 22], "uv_size": [0.5, 0.25]},
"east": {"uv": [17, 17], "uv_size": [2.5, 0.25]},
"south": {"uv": [22, 3], "uv_size": [0.5, 0.25]},
"west": {"uv": [0, 18], "uv_size": [2.5, 0.25]},
"up": {"uv": [14, 14], "uv_size": [0.5, 2.5]},
"down": {"uv": [0, 17.5], "uv_size": [0.5, -2.5]}
}
}
]
}
]
}
]
}

View file

@ -125,6 +125,7 @@
"item.target.dog_tag": "Dog Tag", "item.target.dog_tag": "Dog Tag",
"curios.identifier.dog_tag": "Dog Tag", "curios.identifier.dog_tag": "Dog Tag",
"item.target.shield_cell": "Cell", "item.target.shield_cell": "Cell",
"item.target.mk42_spawn_egg": "MK-42 Spawn Egg",
"attribute.target.spread": "Spread", "attribute.target.spread": "Spread",

View file

@ -125,6 +125,7 @@
"item.target.dog_tag": "狗牌", "item.target.dog_tag": "狗牌",
"curios.identifier.dog_tag": "狗牌", "curios.identifier.dog_tag": "狗牌",
"item.target.shield_cell": "电池", "item.target.shield_cell": "电池",
"item.target.mk42_spawn_egg": "MK-42刷怪蛋",
"attribute.target.spread": "散布", "attribute.target.spread": "散布",

View file

@ -0,0 +1,3 @@
{
"parent": "item/template_spawn_egg"
}

View file

@ -0,0 +1,3 @@
{
"parent": "item/template_spawn_egg"
}

View file

@ -0,0 +1,14 @@
{
"parent": "item/generated",
"textures": {
"layer0": "target:item/monitor"
},
"overrides": [
{
"predicate": {
"target:monitor_linked": 1
},
"model": "target:item/monitor_linked"
}
]
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "target:item/monitor_linked"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

View file

@ -1,5 +1,5 @@
{ {
"zoom_speed": 0.6, "zoom_speed": 0.4,
"zoom": 6, "zoom": 6,
"min_zoom": 1.3, "min_zoom": 1.3,
"max_zoom": 6, "max_zoom": 6,
@ -7,8 +7,8 @@
"dev": 6, "dev": 6,
"recoil_x": 0.01, "recoil_x": 0.01,
"recoil_y": 0.038, "recoil_y": 0.038,
"damage": 140, "damage": 100,
"headshot": 4, "headshot": 3,
"velocity": 31, "velocity": 31,
"projectile_amount": 1, "projectile_amount": 1,
"mag": 3, "mag": 3,