diff --git a/src/main/java/net/mcreator/target/client/model/item/AK47ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/AK47ItemModel.java index bce91428f..e62bd1a61 100644 --- a/src/main/java/net/mcreator/target/client/model/item/AK47ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/AK47ItemModel.java @@ -46,13 +46,9 @@ public class AK47ItemModel extends GeoModel { double zp = player.getPersistentData().getDouble("zoom_pos_z"); gun.setPosX(1.97f * (float) p); - gun.setPosY(0.011f * (float) p - (float) (0.2f * zp)); - gun.setPosZ(3.8f * (float) p + (float) (0.5f * zp)); - gun.setScaleZ(1f - (0.2f * (float) p)); - scope.setScaleZ(1f - (0.4f * (float) p)); diff --git a/src/main/java/net/mcreator/target/client/renderer/entity/DroneRenderer.java b/src/main/java/net/mcreator/target/client/renderer/entity/DroneRenderer.java new file mode 100644 index 000000000..8889d6a90 --- /dev/null +++ b/src/main/java/net/mcreator/target/client/renderer/entity/DroneRenderer.java @@ -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 { + 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; + } +} diff --git a/src/main/java/net/mcreator/target/entity/DroneEntity.java b/src/main/java/net/mcreator/target/entity/DroneEntity.java new file mode 100644 index 000000000..37ae6d536 --- /dev/null +++ b/src/main/java/net/mcreator/target/entity/DroneEntity.java @@ -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 SHOOT = SynchedEntityData.defineId(DroneEntity.class, EntityDataSerializers.BOOLEAN); + public static final EntityDataAccessor 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 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 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; + } +} diff --git a/src/main/java/net/mcreator/target/entity/Mk42Entity.java b/src/main/java/net/mcreator/target/entity/Mk42Entity.java index 8085cc2d9..252c479ff 100644 --- a/src/main/java/net/mcreator/target/entity/Mk42Entity.java +++ b/src/main/java/net/mcreator/target/entity/Mk42Entity.java @@ -63,7 +63,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity { public Mk42Entity(EntityType type, Level world) { super(type, world); xpReward = 0; - setNoAi(false); + setNoAi(true); setPersistenceRequired(); } @@ -130,32 +130,44 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity { @Override public boolean hurt(DamageSource source, float amount) { - if (source.is(DamageTypes.IN_FIRE)) - return false; - if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud) - return false; - if (source.is(DamageTypes.FALL)) - return false; - if (source.is(DamageTypes.CACTUS)) - return false; - if (source.is(DamageTypes.DROWN)) - return false; - if (source.is(DamageTypes.LIGHTNING_BOLT)) - return false; - if (source.is(DamageTypes.FALLING_ANVIL)) - return false; - if (source.is(DamageTypes.DRAGON_BREATH)) - return false; - if (source.is(DamageTypes.WITHER)) - return false; - if (source.is(DamageTypes.WITHER_SKULL)) + if (source.getDirectEntity() instanceof ThrownPotion + || source.getDirectEntity() instanceof AreaEffectCloud + || source.is(DamageTypes.IN_FIRE) + || source.is(DamageTypes.ON_FIRE) + || source.is(DamageTypes.FALL) + || source.is(DamageTypes.CACTUS) + || source.is(DamageTypes.DROWN) + || source.is(DamageTypes.LIGHTNING_BOLT) + || source.is(DamageTypes.FALLING_ANVIL) + || source.is(DamageTypes.DRAGON_BREATH) + || source.is(DamageTypes.WITHER) + || source.is(DamageTypes.WITHER_SKULL) + || source.is(DamageTypes.GENERIC) + || source.is(DamageTypes.MAGIC) + || source.is(DamageTypes.ARROW) + || source.is(DamageTypes.IN_WALL) + || source.is(DamageTypes.MOB_ATTACK) + || source.is(DamageTypes.MOB_ATTACK_NO_AGGRO) + || 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; + } + + 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()) { return false; } - if (source.getDirectEntity() instanceof Player player && this.getFirstPassenger() != null && player == this.getFirstPassenger()) { - return false; - } + return super.hurt(source, amount); } diff --git a/src/main/java/net/mcreator/target/entity/MortarEntity.java b/src/main/java/net/mcreator/target/entity/MortarEntity.java index cad7c2170..1b208e73a 100644 --- a/src/main/java/net/mcreator/target/entity/MortarEntity.java +++ b/src/main/java/net/mcreator/target/entity/MortarEntity.java @@ -48,6 +48,8 @@ import javax.annotation.Nullable; public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEntity { public static final EntityDataAccessor SHOOT = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor ANIMATION = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.STRING); + public static final EntityDataAccessor FIRE_TIME = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.INT); + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); public String animationProcedure = "empty"; @@ -67,6 +69,8 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn super.defineSynchedData(); this.entityData.define(SHOOT, false); this.entityData.define(ANIMATION, "undefined"); + this.entityData.define(FIRE_TIME, 0); + } @Override @@ -141,13 +145,17 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn @Override public void addAdditionalSaveData(CompoundTag compound) { super.addAdditionalSaveData(compound); + compound.putInt("fire_time", this.entityData.get(FIRE_TIME)); } @Override public void readAdditionalSaveData(CompoundTag compound) { super.readAdditionalSaveData(compound); + if (compound.contains("fire_time")) + this.entityData.set(FIRE_TIME, compound.getInt("fire_time")); } + @Override public InteractionResult mobInteract(Player player, InteractionHand 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()) { - 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); if (!player.isCreative()) { @@ -216,9 +226,11 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn Thread Thread = new Thread(Runnable); Thread.start(); - if (this.getPersistentData().getInt("fire_time") > 0) { - this.getPersistentData().putInt("fire_time",this.getPersistentData().getInt("fire_time") - 1); - } +// if (this.getPersistentData().getInt("fire_time") > 0) { +// this.getPersistentData().putInt("fire_time",this.getPersistentData().getInt("fire_time") - 1); +// } + + this.entityData.set(FIRE_TIME,this.entityData.get(FIRE_TIME) - 1); this.refreshDimensions(); } @@ -262,7 +274,7 @@ public class MortarEntity extends PathfinderMob implements GeoEntity, AnimatedEn private PlayState movementPredicate(AnimationState event) { 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.idle")); diff --git a/src/main/java/net/mcreator/target/entity/model/DroneModel.java b/src/main/java/net/mcreator/target/entity/model/DroneModel.java new file mode 100644 index 000000000..1a45bf0ee --- /dev/null +++ b/src/main/java/net/mcreator/target/entity/model/DroneModel.java @@ -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 { + @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"); + } + +} diff --git a/src/main/java/net/mcreator/target/init/TargetModEntities.java b/src/main/java/net/mcreator/target/init/TargetModEntities.java index 6ec92e8ed..b6ec62eae 100644 --- a/src/main/java/net/mcreator/target/init/TargetModEntities.java +++ b/src/main/java/net/mcreator/target/init/TargetModEntities.java @@ -28,6 +28,10 @@ public class TargetModEntities { EntityType.Builder.of(ClaymoreEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ClaymoreEntity::new).fireImmune().sized(0.5f, 0.5f)); public static final RegistryObject> MK_42 = register("mk_42", EntityType.Builder.of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(5.4f, 3.5f)); + + public static final RegistryObject> DRONE = register("drone", + EntityType.Builder.of(DroneEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(DroneEntity::new).sized(0.4f, 0.175f)); + public static final RegistryObject> TASER_BULLET_PROJECTILE = register("projectile_taser_bullet_projectile", EntityType.Builder.of(TaserBulletProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64) .setUpdateInterval(1).sized(0.5f, 0.5f)); @@ -66,5 +70,6 @@ public class TargetModEntities { event.put(CLAYMORE.get(), ClaymoreEntity.createAttributes().build()); event.put(TARGET.get(), TargetEntity.createAttributes().build()); event.put(MK_42.get(), Mk42Entity.createAttributes().build()); + event.put(DRONE.get(), Mk42Entity.createAttributes().build()); } } diff --git a/src/main/java/net/mcreator/target/init/TargetModEntityRenderers.java b/src/main/java/net/mcreator/target/init/TargetModEntityRenderers.java index 3dcba549e..c10fc9285 100644 --- a/src/main/java/net/mcreator/target/init/TargetModEntityRenderers.java +++ b/src/main/java/net/mcreator/target/init/TargetModEntityRenderers.java @@ -1,7 +1,6 @@ package net.mcreator.target.init; import net.mcreator.target.client.renderer.entity.*; -import net.mcreator.target.entity.CannonShellEntity; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.EntityRenderersEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -25,5 +24,7 @@ public class TargetModEntityRenderers { event.registerEntityRenderer(TargetModEntities.PROJECTILE.get(), ProjectileRenderer::new); event.registerEntityRenderer(TargetModEntities.FRAG.get(), FragRenderer::new); event.registerEntityRenderer(TargetModEntities.MK_42.get(), Mk42Renderer::new); + event.registerEntityRenderer(TargetModEntities.DRONE.get(), DroneRenderer::new); + } } diff --git a/src/main/java/net/mcreator/target/init/TargetModItems.java b/src/main/java/net/mcreator/target/init/TargetModItems.java index bf3132115..6f68abf2f 100644 --- a/src/main/java/net/mcreator/target/init/TargetModItems.java +++ b/src/main/java/net/mcreator/target/init/TargetModItems.java @@ -77,7 +77,10 @@ public class TargetModItems { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TargetMod.MODID); public static final RegistryObject SENPAI_SPAWN_EGG = ITEMS.register("senpai_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.SENPAI, -11584987, -14014413, new Item.Properties())); - public static final RegistryObject MK_42_SPAWN_EGG = ITEMS.register("mk42_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.MK_42, -11584987, -14014413, new Item.Properties())); + public static final RegistryObject MK_42_SPAWN_EGG = ITEMS.register("mk42_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.MK_42, -8348258, -2630437, new Item.Properties())); + public static final RegistryObject DRONE_SPAWN_EGG = ITEMS.register("drone_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.DRONE, -3355444, -10053121, new Item.Properties())); + + public static final RegistryObject MONITOR = ITEMS.register("monitor", Monitor::new); public static final RegistryObject TARGET_DEPLOYER = ITEMS.register("target_deployer", TargetDeployer::new); public static final RegistryObject SANDBAG = block(TargetModBlocks.SANDBAG); public static final RegistryObject BARBED_WIRE = block(TargetModBlocks.BARBED_WIRE); diff --git a/src/main/java/net/mcreator/target/item/Monitor.java b/src/main/java/net/mcreator/target/item/Monitor.java new file mode 100644 index 000000000..290f930ea --- /dev/null +++ b/src/main/java/net/mcreator/target/item/Monitor.java @@ -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 list, TooltipFlag flag) { + super.appendHoverText(itemstack, world, list, flag); + } +} diff --git a/src/main/java/net/mcreator/target/item/gun/Ntw20.java b/src/main/java/net/mcreator/target/item/gun/Ntw20.java index c673b1104..ca28688ab 100644 --- a/src/main/java/net/mcreator/target/item/gun/Ntw20.java +++ b/src/main/java/net/mcreator/target/item/gun/Ntw20.java @@ -169,7 +169,7 @@ public class Ntw20 extends GunItem implements GeoItem, AnimatedItem { if (slot == EquipmentSlot.MAINHAND) { map = HashMultimap.create(map); 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; } diff --git a/src/main/resources/assets/target/animations/ak.animation.json b/src/main/resources/assets/target/animations/ak.animation.json index e1e6900a7..f44ce95b7 100644 --- a/src/main/resources/assets/target/animations/ak.animation.json +++ b/src/main/resources/assets/target/animations/ak.animation.json @@ -2,7 +2,6 @@ "format_version": "1.8.0", "animations": { "animation.ak47.idle": { - "loop": true, "animation_length": 1, "bones": { "Lefthand": { @@ -80,7 +79,6 @@ } }, "animation.ak47.changefirerate": { - "loop": "hold_on_last_frame", "animation_length": 0.5, "bones": { "0": { @@ -249,7 +247,6 @@ } }, "animation.ak47.run": { - "loop": true, "animation_length": 0.8, "bones": { "0": { @@ -338,24 +335,20 @@ } }, "animation.ak47.reload_normal": { - "loop": "hold_on_last_frame", "animation_length": 2.75, "override_previous_animation": true, "bones": { "0": { "rotation": { - "0.0": { + "0.1167": { "vector": [0, 0, 0] }, - "0.1": { + "0.2167": { "vector": [6.22824, 1.18826, 5.97426] }, - "0.3167": { + "0.4333": { "vector": [-14.01, 2.98, -9.37] }, - "0.4167": { - "vector": [-12.25012, 1.71575, -15.23679] - }, "0.5": { "vector": [-13.67625, 0.53753, -20.43357] }, @@ -396,31 +389,19 @@ "vector": [-12.53304, 1.46221, -17.39249], "easing": "easeInSine" }, - "2.0833": { - "vector": [-3.8135, -0.9118, -6.85724] - }, - "2.2333": { - "vector": [-0.38814, -0.04302, 4.50985] - }, - "2.3": { - "vector": [2, 0, 2] - }, - "2.3833": { - "vector": [0, 0, 0] + "2.3167": { + "vector": [0, 0, 0], + "easing": "easeInElastic" } }, "position": { - "0.0": { + "0.1167": { "vector": [0, 0, 0] }, - "0.2833": { + "0.4": { "vector": [-1.1, 0.3, -0.1], "easing": "easeInQuad" }, - "0.4167": { - "vector": [-1.1, 0, -0.8], - "easing": "easeOutSine" - }, "0.5333": { "vector": [-1.1, 0, -0.6] }, @@ -455,26 +436,25 @@ "vector": [-0.59166, -0.35741, -0.73343], "easing": "easeInSine" }, - "1.8667": { + "1.7667": { "vector": [-0.50339, -0.1283, -0.63949] }, "1.9833": { - "vector": [-0.51504, -0.2787, -0.4855] + "vector": [0.2, -0.5, -0.3] }, - "2.1833": { - "vector": [0, 0, -1.07] + "2.2": { + "vector": [0.14, -0.14, 1], + "easing": "easeInSine" }, - "2.3": { - "vector": [0.00031, 0.02116, 0.55984] - }, - "2.3833": { - "vector": [0, 0, 0] + "2.3333": { + "vector": [0, 0, 0], + "easing": "easeInElastic" } } }, "Lefthand": { "rotation": { - "0.0333": { + "0.1": { "vector": [-27.6003, -27.56966, -16.00843] }, "0.5333": { @@ -508,12 +488,12 @@ "vector": [-21.16455, -11.71775, -9.83624], "easing": "easeOutSine" }, - "2.3": { + "2.2667": { "vector": [-27.6003, -27.56966, -16.00843] } }, "position": { - "0.0333": { + "0.1": { "vector": [-0.6, -2.7, -3.3] }, "0.5333": { @@ -551,7 +531,7 @@ "vector": [2.48, -11.97, 0.18], "easing": "easeInOutSine" }, - "2.3": { + "2.2667": { "vector": [-0.6, -2.7, -3.3] } } @@ -756,32 +736,23 @@ } } } - }, - "sound_effects": { - "0.0": { - "effect": "m_4_reload_normal" - } } }, "animation.ak47.reload_empty": { - "loop": "hold_on_last_frame", "animation_length": 3.4333, "override_previous_animation": true, "bones": { "0": { "rotation": { - "0.0": { + "0.1167": { "vector": [0, 0, 0] }, - "0.1": { + "0.2167": { "vector": [6.22824, 1.18826, 5.97426] }, - "0.3167": { + "0.4333": { "vector": [-14.01, 2.98, -9.37] }, - "0.4167": { - "vector": [-12.25012, 1.71575, -15.23679] - }, "0.5": { "vector": [-13.67625, 0.53753, -20.43357] }, @@ -791,17 +762,20 @@ "0.6333": { "vector": [-14.36475, 0.09248, -22.30327] }, - "0.75": { - "vector": [-14.81, -0.41, -24.77] + "0.8": { + "vector": [-14.64202, 0.77211, -20.08007] }, - "0.8333": { - "vector": [-17.57596, -2.10885, -29.925], + "0.8833": { + "vector": [-14.68234, -0.0043, -31.08042] + }, + "0.9667": { + "vector": [-26.62294, -3.8972, -29.0283], "easing": "easeInElastic" }, - "0.95": { + "1.0833": { "vector": [-15.94266, -0.18118, -25.15393] }, - "1.15": { + "1.2833": { "vector": [-16.21216, -2.28043, -33.21481] }, "1.5": { @@ -819,7 +793,7 @@ "2.0": { "vector": [-20.30109, -8.2353, -48.49477] }, - "2.2333": { + "2.2833": { "vector": [-16.67409, -7.83578, -50.66699] }, "2.3167": { @@ -836,48 +810,40 @@ "2.65": { "vector": [-11.75146, -0.36394, -33.34824] }, - "2.8167": { - "vector": [-6.63855, 2.59206, -16.81115] + "2.9167": { + "vector": [1, 0, 0], + "easing": "easeInOutSine" }, - "3.05": { - "vector": [-0.38814, -0.04302, 4.50985] - }, - "3.1167": { - "vector": [2, 0, 2] - }, - "3.2": { - "vector": [0, 0, 0] + "3.2833": { + "vector": [0, 0, 0], + "easing": "easeInElastic" } }, "position": { - "0.0": { + "0.1167": { "vector": [0, 0, 0] }, - "0.2833": { + "0.4": { "vector": [-1.1, 0.3, -0.1], "easing": "easeInQuad" }, - "0.4167": { - "vector": [-1.1, 0, -0.8], - "easing": "easeOutSine" - }, "0.5333": { "vector": [-1.1, 0, -0.6] }, - "0.7": { - "vector": [-1.13863, 0.08812, -0.6923] + "0.8333": { + "vector": [-1.11871, 0.0414, -0.49886] }, - "0.75": { + "0.8833": { "vector": [-1.11, 0.09, -0.68] }, - "0.8333": { + "0.9667": { "vector": [-1.32651, 0.6322, -1.60351], "easing": "easeInElastic" }, - "1.0333": { + "1.1667": { "vector": [-0.98667, 0.05602, -0.52736] }, - "1.25": { + "1.3833": { "vector": [-1.02585, 0.23839, -1.22133] }, "1.5": { @@ -899,7 +865,7 @@ "2.1167": { "vector": [-0.50339, -0.1283, -0.63949] }, - "2.2333": { + "2.2833": { "vector": [-0.51, -0.24, -0.53] }, "2.3167": { @@ -919,26 +885,22 @@ "2.7333": { "vector": [-0.25313, -0.26698, -1.40007] }, - "2.85": { - "vector": [-0.09776, -0.12762, -1.05115] - }, "2.9333": { - "vector": [0.00212, 0.18217, -0.76274] + "vector": [0.2, -0.5, -0.3] }, - "3.0": { - "vector": [0.00274, -0.00904, -0.77015] + "3.05": { + "vector": [0.14, -0.14, 1], + "easing": "easeInSine" }, - "3.1167": { - "vector": [0.00031, 0.02116, 0.55984] - }, - "3.2": { - "vector": [0, 0, 0] + "3.3": { + "vector": [0, 0, 0], + "easing": "easeInElastic" } } }, "Lefthand": { "rotation": { - "0.0333": { + "0.1": { "vector": [-27.6003, -27.56966, -16.00843] }, "0.5667": { @@ -976,14 +938,14 @@ "vector": [-20.31753, -15.08281, -6.04184], "easing": "easeOutSine" }, - "1.65": { + "1.7333": { "vector": [-20.31753, -15.08281, -6.04184], "easing": "easeOutSine" }, - "1.8167": { + "1.8333": { "vector": [-6.78199, -4.07081, 10.69071] }, - "1.9667": { + "2.05": { "vector": [-26.9, 5.84, 25.75] }, "2.2": { @@ -996,15 +958,22 @@ "2.35": { "vector": [18.15836, 54.76869, 89.37164] }, - "2.6667": { - "vector": [28.11259, -27.07767, 82.93501] + "2.45": { + "vector": [45.05645, 4.02403, 112.80291] }, - "2.85": { - "vector": [-27.6003, -27.56966, -16.00843] + "2.5333": { + "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": { - "0.0333": { + "0.1": { "vector": [-0.6, -2.7, -3.3] }, "0.5667": { @@ -1046,14 +1015,14 @@ "vector": [-1.82116, -5.66841, 1.27626], "easing": "easeOutSine" }, - "1.65": { + "1.7333": { "vector": [-1.82116, -5.66841, 1.27626], "easing": "easeOutSine" }, - "1.8167": { + "1.8333": { "vector": [-4.85539, -7.00072, 9.48678] }, - "2.05": { + "2.1": { "vector": [-7.59261, -4.21333, 0.73397] }, "2.2": { @@ -1068,12 +1037,18 @@ "vector": [-7.5, -4.1, -0.3], "easing": "easeInElastic" }, - "2.5833": { - "vector": [-7.5, -3.1, -2.2], - "easing": "easeInOutCubic" + "2.45": { + "vector": [-8.3, -3.99, 7.75] }, - "2.85": { - "vector": [-0.6, -2.7, -3.3] + "2.5333": { + "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" - } } } }, diff --git a/src/main/resources/assets/target/animations/drone.animation.json b/src/main/resources/assets/target/animations/drone.animation.json new file mode 100644 index 000000000..cba7af912 --- /dev/null +++ b/src/main/resources/assets/target/animations/drone.animation.json @@ -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 +} \ No newline at end of file diff --git a/src/main/resources/assets/target/animations/sentinel.animation.json b/src/main/resources/assets/target/animations/sentinel.animation.json index 93c198aa7..7a391dab5 100644 --- a/src/main/resources/assets/target/animations/sentinel.animation.json +++ b/src/main/resources/assets/target/animations/sentinel.animation.json @@ -1064,24 +1064,31 @@ "bones": { "0": { "rotation": { - "0.1": { + "0.125": { "vector": [0, 0, 0], "easing": "easeInOutSine" }, - "0.375": { - "vector": [-35.56192, -1.50886, -9.45771], + "0.225": { + "vector": [-1.07, -0.74, 6.37] + }, + "0.425": { + "vector": [-20.56192, -1.50886, -9.45771], "easing": "easeInElastic" }, - "0.45": { - "vector": [-45.48387, -9.95091, -26.47651] + "0.5": { + "vector": [-20.48387, -9.95091, -26.47651] }, - "0.675": { - "vector": [-53.4025, -7.94945, -13.41702] + "0.6": { + "vector": [-17.67, -9.06, -20.67] + }, + "0.725": { + "vector": [-43.4025, -7.94945, -13.41702] }, "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] }, "1.375": { @@ -1105,32 +1112,35 @@ "2.425": { "vector": [0.6713, 1.51642, 7.12107] }, - "2.65": { + "2.5": { + "vector": [4, 0, 0], + "easing": "easeInOutSine" + }, + "2.725": { "vector": [0.49, 0, 0] }, - "2.75": { + "2.825": { "vector": [0, 0, 0] } }, "position": { - "0.1": { - "vector": [0, 0, 0], + "0.0": { + "vector": [0, 0, 0] + }, + "0.075": { + "vector": [0, 0, -1], "easing": "easeInOutSine" }, - "0.25": { - "vector": [-2.78, 5.3, -2.1], - "easing": "easeInElastic" + "0.425": { + "vector": [-3.53, 4, -1.24] }, - "0.375": { - "vector": [-3.53, 5.5, -0.74] + "0.5": { + "vector": [-2.14701, 3.47083, -2.19545] }, - "0.45": { - "vector": [-2.64701, 5.47083, -1.19545] + "0.6": { + "vector": [-2.96981, 4.21209, -2.58424] }, - "0.55": { - "vector": [-2.96981, 5.71209, -0.58424] - }, - "1.05": { + "0.975": { "vector": [-3.51028, 6.5846, -1.08775] }, "1.7": { @@ -1149,17 +1159,20 @@ "vector": [-3.69025, 6.67119, -0.86389] }, "2.45": { - "vector": [-0.1, 0, 1.9], + "vector": [-0.1, 0, 0.9], "easing": "easeInElastic" }, - "2.55": { + "2.525": { + "vector": [0.2, -0.2, -0.3] + }, + "2.625": { "vector": [0.14, -0.14, 1], "easing": "easeInSine" }, - "2.65": { + "2.725": { "vector": [0.04, 0.15993, 0.24478] }, - "2.775": { + "2.85": { "vector": [0, 0, 0], "easing": "easeOutSine" } diff --git a/src/main/resources/assets/target/geo/drone.geo.json b/src/main/resources/assets/target/geo/drone.geo.json new file mode 100644 index 000000000..290c6bc58 --- /dev/null +++ b/src/main/resources/assets/target/geo/drone.geo.json @@ -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]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/target/lang/en_us.json b/src/main/resources/assets/target/lang/en_us.json index b4d2ac730..99a44c725 100644 --- a/src/main/resources/assets/target/lang/en_us.json +++ b/src/main/resources/assets/target/lang/en_us.json @@ -125,6 +125,7 @@ "item.target.dog_tag": "Dog Tag", "curios.identifier.dog_tag": "Dog Tag", "item.target.shield_cell": "Cell", + "item.target.mk42_spawn_egg": "MK-42 Spawn Egg", "attribute.target.spread": "Spread", diff --git a/src/main/resources/assets/target/lang/zh_cn.json b/src/main/resources/assets/target/lang/zh_cn.json index e9a82a1c6..e526f41fd 100644 --- a/src/main/resources/assets/target/lang/zh_cn.json +++ b/src/main/resources/assets/target/lang/zh_cn.json @@ -125,6 +125,7 @@ "item.target.dog_tag": "狗牌", "curios.identifier.dog_tag": "狗牌", "item.target.shield_cell": "电池", + "item.target.mk42_spawn_egg": "MK-42刷怪蛋", "attribute.target.spread": "散布", diff --git a/src/main/resources/assets/target/models/item/drone_spawn_egg.json b/src/main/resources/assets/target/models/item/drone_spawn_egg.json new file mode 100644 index 000000000..7a2c6da81 --- /dev/null +++ b/src/main/resources/assets/target/models/item/drone_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "item/template_spawn_egg" +} \ No newline at end of file diff --git a/src/main/resources/assets/target/models/item/mk42_spawn_egg.json b/src/main/resources/assets/target/models/item/mk42_spawn_egg.json new file mode 100644 index 000000000..7a2c6da81 --- /dev/null +++ b/src/main/resources/assets/target/models/item/mk42_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "item/template_spawn_egg" +} \ No newline at end of file diff --git a/src/main/resources/assets/target/models/item/monitor.json b/src/main/resources/assets/target/models/item/monitor.json new file mode 100644 index 000000000..b5e951f81 --- /dev/null +++ b/src/main/resources/assets/target/models/item/monitor.json @@ -0,0 +1,14 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "target:item/monitor" + }, + "overrides": [ + { + "predicate": { + "target:monitor_linked": 1 + }, + "model": "target:item/monitor_linked" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/target/models/item/monitor_linked.json b/src/main/resources/assets/target/models/item/monitor_linked.json new file mode 100644 index 000000000..40cd0a385 --- /dev/null +++ b/src/main/resources/assets/target/models/item/monitor_linked.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "target:item/monitor_linked" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/target/textures/entity/drone.png b/src/main/resources/assets/target/textures/entity/drone.png new file mode 100644 index 000000000..84b351371 Binary files /dev/null and b/src/main/resources/assets/target/textures/entity/drone.png differ diff --git a/src/main/resources/assets/target/textures/item/mk42_spawn_egg.png b/src/main/resources/assets/target/textures/item/mk42_spawn_egg.png new file mode 100644 index 000000000..e31841d13 Binary files /dev/null and b/src/main/resources/assets/target/textures/item/mk42_spawn_egg.png differ diff --git a/src/main/resources/assets/target/textures/item/monitor.png b/src/main/resources/assets/target/textures/item/monitor.png new file mode 100644 index 000000000..425fff4e3 Binary files /dev/null and b/src/main/resources/assets/target/textures/item/monitor.png differ diff --git a/src/main/resources/assets/target/textures/item/monitor_linked.png b/src/main/resources/assets/target/textures/item/monitor_linked.png new file mode 100644 index 000000000..419f9bec9 Binary files /dev/null and b/src/main/resources/assets/target/textures/item/monitor_linked.png differ diff --git a/src/main/resources/data/target/guns/ntw_20.json b/src/main/resources/data/target/guns/ntw_20.json index b2640d9fe..744a6cfb3 100644 --- a/src/main/resources/data/target/guns/ntw_20.json +++ b/src/main/resources/data/target/guns/ntw_20.json @@ -1,5 +1,5 @@ { - "zoom_speed": 0.6, + "zoom_speed": 0.4, "zoom": 6, "min_zoom": 1.3, "max_zoom": 6, @@ -7,8 +7,8 @@ "dev": 6, "recoil_x": 0.01, "recoil_y": 0.038, - "damage": 140, - "headshot": 4, + "damage": 100, + "headshot": 3, "velocity": 31, "projectile_amount": 1, "mag": 3,