diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/entity/Yx100GunModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/entity/Yx100GunModel.java deleted file mode 100644 index 42776e20c..000000000 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/entity/Yx100GunModel.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.atsuishio.superbwarfare.client.model.entity; - -import com.atsuishio.superbwarfare.ModUtils; -import com.atsuishio.superbwarfare.entity.vehicle.Yx100GunEntity; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; -import software.bernie.geckolib.constant.DataTickets; -import software.bernie.geckolib.core.animatable.model.CoreGeoBone; -import software.bernie.geckolib.core.animation.AnimationState; -import software.bernie.geckolib.model.GeoModel; -import software.bernie.geckolib.model.data.EntityModelData; - -public class Yx100GunModel extends GeoModel { - - @Override - public ResourceLocation getAnimationResource(Yx100GunEntity entity) { - return null; - } - - @Override - public ResourceLocation getModelResource(Yx100GunEntity entity) { - return ModUtils.loc("geo/yx_100_gun.geo.json"); - } - - @Override - public ResourceLocation getTextureResource(Yx100GunEntity entity) { - return ModUtils.loc("textures/entity/yx_100.png"); - } - - @Override - public void setCustomAnimations(Yx100GunEntity animatable, long instanceId, AnimationState animationState) { - CoreGeoBone bone = getAnimationProcessor().getBone("barrel"); - EntityModelData entityData = animationState.getData(DataTickets.ENTITY_MODEL_DATA); - bone.setRotX((entityData.headPitch()) * Mth.DEG_TO_RAD); - } -} diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Yx100GunRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Yx100GunRenderer.java deleted file mode 100644 index bf3e81024..000000000 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Yx100GunRenderer.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.atsuishio.superbwarfare.client.renderer.entity; - -import com.atsuishio.superbwarfare.client.model.entity.Yx100GunModel; -import com.atsuishio.superbwarfare.entity.vehicle.Yx100GunEntity; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Axis; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.entity.EntityRendererProvider; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; -import software.bernie.geckolib.cache.object.BakedGeoModel; -import software.bernie.geckolib.renderer.GeoEntityRenderer; - -public class Yx100GunRenderer extends GeoEntityRenderer { - - public Yx100GunRenderer(EntityRendererProvider.Context renderManager) { - super(renderManager, new Yx100GunModel()); - } - - @Override - public RenderType getRenderType(Yx100GunEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { - return RenderType.entityTranslucent(getTextureLocation(animatable)); - } - - @Override - public void preRender(PoseStack poseStack, Yx100GunEntity 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 - public void render(Yx100GunEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { - poseStack.pushPose(); - poseStack.mulPose(Axis.YP.rotationDegrees(-Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()))); - super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); - poseStack.popPose(); - } -} diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Yx100Renderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Yx100Renderer.java index 4353239b4..36fa070e6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Yx100Renderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Yx100Renderer.java @@ -88,7 +88,7 @@ public class Yx100Renderer extends GeoEntityRenderer { float a = animatable.getEntityData().get(YAW); float r = (Mth.abs(a) - 90f) / 90f; - bone.setPosZ(r * Mth.lerp(partialTick, (float) animatable.recoilShakeO, (float) animatable.getRecoilShake()) * 1.5f); + bone.setPosZ(r * Mth.lerp(partialTick, (float) animatable.recoilShakeO, (float) animatable.getRecoilShake()) * 1.75f); bone.setRotX(r * Mth.lerp(partialTick, (float) animatable.recoilShakeO, (float) animatable.getRecoilShake()) * Mth.DEG_TO_RAD); float r2; @@ -104,7 +104,9 @@ public class Yx100Renderer extends GeoEntityRenderer { } bone.setPosX(r2 * Mth.lerp(partialTick, (float) animatable.recoilShakeO, (float) animatable.getRecoilShake()) * 1f); - bone.setRotZ(r2 * Mth.lerp(partialTick, (float) animatable.recoilShakeO, (float) animatable.getRecoilShake()) * Mth.DEG_TO_RAD * 1.75f); + bone.setRotZ(r2 * Mth.lerp(partialTick, (float) animatable.recoilShakeO, (float) animatable.getRecoilShake()) * Mth.DEG_TO_RAD * 1.5f); + + bone.setPosY(r * Mth.lerp(partialTick, (float) animatable.recoilShakeO, (float) animatable.getRecoilShake()) * 1.5f); } super.renderRecursively(poseStack, animatable, bone, renderType, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java index d1c1e94a6..a76b23150 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java @@ -960,6 +960,6 @@ public class Yx100Entity extends ContainerMobileVehicleEntity implements GeoEnti @Override public ResourceLocation getVehicleIcon() { - return ModUtils.loc("textures/vehicle_icon/bmp2_icon.png"); + return ModUtils.loc("textures/vehicle_icon/yx_100_icon.png"); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100GunEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100GunEntity.java deleted file mode 100644 index 5b932395b..000000000 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100GunEntity.java +++ /dev/null @@ -1,196 +0,0 @@ -package com.atsuishio.superbwarfare.entity.vehicle; - -import com.atsuishio.superbwarfare.ModUtils; -import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity; -import com.atsuishio.superbwarfare.entity.vehicle.base.VehicleEntity; -import com.atsuishio.superbwarfare.init.ModEntities; -import com.atsuishio.superbwarfare.init.ModItems; -import com.atsuishio.superbwarfare.tools.AmmoType; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.protocol.Packet; -import net.minecraft.network.protocol.game.ClientGamePacketListener; -import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.network.syncher.EntityDataSerializers; -import net.minecraft.network.syncher.SynchedEntityData; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.Mth; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraftforge.network.NetworkHooks; -import net.minecraftforge.network.PlayMessages; -import org.jetbrains.annotations.NotNull; -import software.bernie.geckolib.animatable.GeoEntity; -import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; -import software.bernie.geckolib.core.animation.AnimatableManager; -import software.bernie.geckolib.util.GeckoLibUtil; - -public class Yx100GunEntity extends VehicleEntity implements GeoEntity, CannonEntity { - public static final EntityDataAccessor AMMO = SynchedEntityData.defineId(Yx100GunEntity.class, EntityDataSerializers.INT); - private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); - - public Yx100GunEntity(PlayMessages.SpawnEntity packet, Level world) { - this(ModEntities.YX_100_GUN.get(), world); - } - - public Yx100GunEntity(EntityType type, Level world) { - super(type, world); - this.noPhysics = true; - } - - @Override - protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(AMMO, 0); - } - - @Override - public void addAdditionalSaveData(CompoundTag compound) { - super.addAdditionalSaveData(compound); - } - - @Override - protected void readAdditionalSaveData(CompoundTag compound) { - super.readAdditionalSaveData(compound); - } - - @Override - public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) { - return super.interact(player, hand); - } - - @Override - public Packet getAddEntityPacket() { - return NetworkHooks.getEntitySpawningPacket(this); - } - - @Override - public double getPassengersRidingOffset() { - return super.getPassengersRidingOffset() - 1; - } - - @Override - public boolean isPushable() { - return false; - } - - @Override - public boolean isPickable() { - return true; - } - - @Override - public void baseTick() { -// if (!(this.getVehicle() instanceof Yx100Entity yx100)) { -// this.discard(); -// } - if (this.level() instanceof ServerLevel) { - this.handleAmmo(); - } - super.baseTick(); - } - - private void handleAmmo() { - if (!(this.getFirstPassenger() instanceof Player player)) return; - - if (this.getVehicle() instanceof Yx100Entity yx100) { - int ammoCount = yx100.getItemStacks().stream().filter(stack -> { - if (stack.is(ModItems.AMMO_BOX.get())) { - return AmmoType.HEAVY.get(stack) > 0; - } - return false; - }).mapToInt(AmmoType.HEAVY::get).sum() + yx100.countItem(ModItems.HEAVY_AMMO.get()); - - - this.entityData.set(AMMO, ammoCount); - } - } - - @Override - public void vehicleShoot(Player player, int type) { - } - - - @Override - public void travel() { - Entity passenger = this.getFirstPassenger(); - float diffY = 0; - float diffX = 0; - - if (passenger != null) { - diffY = Mth.wrapDegrees(passenger.getYHeadRot() - this.getYRot()); - diffX = Mth.wrapDegrees(passenger.getXRot() - this.getXRot()); - } - - this.setYRot(this.getYRot() + Mth.clamp(0.5f * diffY, -25f, 25f)); - this.setXRot(Mth.clamp(this.getXRot() + Mth.clamp(0.5f * diffX, -25f, 25f), -65, 7f)); - } - - protected void clampRotation(Entity entity) { - float f = Mth.wrapDegrees(entity.getXRot()); - float f1 = Mth.clamp(f, -85.0F, 16.3F); - entity.xRotO += f1 - f; - entity.setXRot(entity.getXRot() + f1 - f); - } - - @Override - public void onPassengerTurned(Entity entity) { - this.clampRotation(entity); - } - - @Override - public void registerControllers(AnimatableManager.ControllerRegistrar data) { - } - - @Override - public AnimatableInstanceCache getAnimatableInstanceCache() { - return this.cache; - } - - @Override - public float getMaxHealth() { - if (this.getVehicle() instanceof VehicleEntity vehicle) { - return vehicle.getMaxHealth(); - } - return 0; - } - - @Override - public int mainGunRpm(Player player) { - return 600; - } - - @Override - public boolean canShoot(Player player) { - return true; - } - - @Override - public int getAmmoCount(Player player) { - return this.entityData.get(AMMO); - } - - @Override - public boolean banHand(Player player) { - return true; - } - - @Override - public boolean hidePassenger() { - return true; - } - - @Override - public int zoomFov() { - return 3; - } - - @Override - public ResourceLocation getVehicleIcon() { - return ModUtils.loc("textures/vehicle_icon/sherman_icon.png"); - } -} diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModEntities.java b/src/main/java/com/atsuishio/superbwarfare/init/ModEntities.java index 773b2dbd3..3ed51b9bd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModEntities.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModEntities.java @@ -90,8 +90,6 @@ public class ModEntities { EntityType.Builder.of(LaserTowerEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(LaserTowerEntity::new).fireImmune().sized(0.9f, 1.65f)); public static final RegistryObject> YX_100 = register("yx_100", EntityType.Builder.of(Yx100Entity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Yx100Entity::new).fireImmune().sized(5.5f, 3.25f)); - public static final RegistryObject> YX_100_GUN = register("yx_100_gun", - EntityType.Builder.of(Yx100GunEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Yx100GunEntity::new).fireImmune().sized(0.9f, 0.65f)); private static RegistryObject> register(String name, EntityType.Builder entityTypeBuilder) { return REGISTRY.register(name, () -> entityTypeBuilder.build(name)); diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModEntityRenderers.java b/src/main/java/com/atsuishio/superbwarfare/init/ModEntityRenderers.java index fc7e066dc..6a8bd017d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModEntityRenderers.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModEntityRenderers.java @@ -43,6 +43,5 @@ public class ModEntityRenderers { event.registerEntityRenderer(ModEntities.WG_MISSILE.get(), WgMissileRenderer::new); event.registerEntityRenderer(ModEntities.LASER_TOWER.get(), LaserTowerRenderer::new); event.registerEntityRenderer(ModEntities.YX_100.get(), Yx100Renderer::new); - event.registerEntityRenderer(ModEntities.YX_100_GUN.get(), Yx100GunRenderer::new); } } diff --git a/src/main/resources/assets/superbwarfare/geo/yx_100_gun.geo.json b/src/main/resources/assets/superbwarfare/geo/yx_100_gun.geo.json deleted file mode 100644 index 830390a12..000000000 --- a/src/main/resources/assets/superbwarfare/geo/yx_100_gun.geo.json +++ /dev/null @@ -1,422 +0,0 @@ -{ - "format_version": "1.12.0", - "minecraft:geometry": [ - { - "description": { - "identifier": "geometry.unknown", - "texture_width": 1024, - "texture_height": 1024, - "visible_bounds_width": 20, - "visible_bounds_height": 15, - "visible_bounds_offset": [0, 0.5, 0] - }, - "bones": [ - { - "name": "root", - "pivot": [0, -0.5025, 0], - "cubes": [ - { - "origin": [-5.15625, 1.02875, -7.03125], - "size": [10.3125, 2.8125, 10.3125], - "uv": { - "north": {"uv": [90, 279], "uv_size": [11, 3]}, - "east": {"uv": [15, 567], "uv_size": [11, 3]}, - "west": {"uv": [174, 572], "uv_size": [11, 3]}, - "up": {"uv": [475, 347], "uv_size": [11, 11]}, - "down": {"uv": [486, 375], "uv_size": [11, -11]} - } - }, - { - "origin": [1.60041, 1.33665, -7.03125], - "size": [5.625, 2.8125, 15], - "pivot": [5.81916, 1.8054, -1.875], - "rotation": [0, 0, 45], - "uv": { - "north": {"uv": [184, 634], "uv_size": [6, 3]}, - "east": {"uv": [608, 466], "uv_size": [16, 3]}, - "south": {"uv": [190, 634], "uv_size": [6, 3]}, - "west": {"uv": [608, 511], "uv_size": [16, 3]}, - "up": {"uv": [336, 558], "uv_size": [6, 16]}, - "down": {"uv": [342, 574], "uv_size": [6, -16]} - } - }, - { - "origin": [8.18193, 3.89359, -7.5], - "size": [3.75, 0, 2.8125], - "pivot": [7.24443, 3.89359, -5.625], - "rotation": [0, -90, 45], - "uv": { - "up": {"uv": [37, 759.5], "uv_size": [266, 192.5]} - } - }, - { - "origin": [5.83818, 3.89359, -0.9375], - "size": [7.03125, 0, 1.40625], - "pivot": [7.24443, 3.89359, 0.46875], - "rotation": [0, -90, 45], - "uv": { - "up": {"uv": [14.5, 956.5], "uv_size": [303, 52.5]} - } - }, - { - "origin": [-9.45087, 3.56213, -4.21875], - "size": [3.75, 0, 2.8125], - "pivot": [-7.57587, 3.56213, -2.8125], - "rotation": [0, -90, 135], - "uv": { - "up": {"uv": [303, 759.5], "uv_size": [-266, 192.5]} - } - }, - { - "origin": [-11.25724, 3.3964, 1.875], - "size": [7.03125, 0, 1.40625], - "pivot": [-7.74161, 3.3964, 2.57812], - "rotation": [0, -90, 135], - "uv": { - "up": {"uv": [317.5, 956.5], "uv_size": [-303, 52.5]} - } - }, - { - "origin": [3.65275, 5.8766, -8.65441], - "size": [3.75, 1.875, 10.3125], - "pivot": [5.52775, 4.9391, -3.49816], - "rotation": [23.85865, 18.74724, -36.00521], - "uv": { - "west": {"uv": [630, 84], "uv_size": [11, 2]} - } - }, - { - "origin": [-7.40276, 5.8766, -8.65441], - "size": [3.75, 1.875, 10.3125], - "pivot": [-5.52776, 4.9391, -3.49816], - "rotation": [23.85865, -18.74724, 36.00521], - "uv": { - "east": {"uv": [630, 86], "uv_size": [11, 2]} - } - }, - { - "origin": [-7.22541, 1.33665, -7.03125], - "size": [5.625, 2.8125, 15], - "pivot": [-5.81916, 1.8054, -1.875], - "rotation": [0, 0, -45], - "uv": { - "north": {"uv": [634, 526], "uv_size": [6, 3]}, - "east": {"uv": [608, 514], "uv_size": [16, 3]}, - "south": {"uv": [539, 634], "uv_size": [6, 3]}, - "west": {"uv": [608, 564], "uv_size": [16, 3]}, - "up": {"uv": [436, 558], "uv_size": [6, 16]}, - "down": {"uv": [442, 574], "uv_size": [6, -16]} - } - }, - { - "origin": [-6.3419, 0.90104, -11.14254], - "size": [1.93265, 2.30324, 4.0579], - "pivot": [-5.4044, 2.40436, -8.17609], - "rotation": [-32.73241, -24.4045, -32.73241], - "uv": { - "north": {"uv": [325, 649], "uv_size": [2, 2]}, - "east": {"uv": [539, 641], "uv_size": [4, 2]}, - "south": {"uv": [649, 328], "uv_size": [2, 2]}, - "west": {"uv": [566, 641], "uv_size": [4, 2]}, - "up": {"uv": [593, 641], "uv_size": [2, 4]}, - "down": {"uv": [595, 645], "uv_size": [2, -4]} - } - }, - { - "origin": [-5.15625, 0.38779, -8.63619], - "size": [2.8125, 3.00666, 4.0579], - "pivot": [-1.28906, 5.71625, -6.5625], - "rotation": [-40, 0, 0], - "uv": { - "north": {"uv": [468, 539], "uv_size": [3, 3]}, - "east": {"uv": [638, 73], "uv_size": [4, 3]}, - "south": {"uv": [290, 544], "uv_size": [3, 3]}, - "west": {"uv": [638, 104], "uv_size": [4, 3]}, - "up": {"uv": [12, 639], "uv_size": [3, 4]}, - "down": {"uv": [15, 643], "uv_size": [3, -4]} - } - }, - { - "origin": [-5.15625, 0.81049, -6.06571], - "size": [2.8125, 8.63166, 2.1829], - "pivot": [-1.28906, 6.13895, -3.99204], - "rotation": [-60, 0, 0], - "uv": { - "north": {"uv": [204, 572], "uv_size": [3, 9]}, - "east": {"uv": [407, 631], "uv_size": [2, 9]}, - "south": {"uv": [513, 573], "uv_size": [3, 9]}, - "west": {"uv": [428, 631], "uv_size": [2, 9]}, - "down": {"uv": [380, 598], "uv_size": [3, -2]} - } - }, - { - "origin": [2.34375, 0.38779, -8.63619], - "size": [2.8125, 3.00666, 4.0579], - "pivot": [1.28906, 5.71625, -6.5625], - "rotation": [-40, 0, 0], - "uv": { - "north": {"uv": [575, 78], "uv_size": [3, 3]}, - "east": {"uv": [638, 151], "uv_size": [4, 3]}, - "south": {"uv": [178, 595], "uv_size": [3, 3]}, - "west": {"uv": [638, 240], "uv_size": [4, 3]}, - "up": {"uv": [18, 639], "uv_size": [3, 4]}, - "down": {"uv": [21, 643], "uv_size": [3, -4]} - } - }, - { - "origin": [4.40926, 0.90104, -11.14254], - "size": [1.93265, 2.30324, 4.0579], - "pivot": [5.40441, 2.40436, -8.17609], - "rotation": [-32.73241, 24.4045, 32.73241], - "uv": { - "north": {"uv": [329, 649], "uv_size": [2, 2]}, - "east": {"uv": [641, 582], "uv_size": [4, 2]}, - "south": {"uv": [331, 649], "uv_size": [2, 2]}, - "west": {"uv": [641, 595], "uv_size": [4, 2]}, - "up": {"uv": [597, 641], "uv_size": [2, 4]}, - "down": {"uv": [599, 645], "uv_size": [2, -4]} - } - }, - { - "origin": [2.34375, 0.81049, -6.06571], - "size": [2.8125, 8.63166, 2.1829], - "pivot": [1.28906, 6.13895, -3.99204], - "rotation": [-60, 0, 0], - "uv": { - "north": {"uv": [444, 574], "uv_size": [3, 9]}, - "east": {"uv": [557, 631], "uv_size": [2, 9]}, - "south": {"uv": [499, 626], "uv_size": [3, 9]}, - "west": {"uv": [116, 632], "uv_size": [2, 9]}, - "down": {"uv": [630, 463], "uv_size": [3, -2]} - } - }, - { - "origin": [-5.15594, 0.01756, -2.16791], - "size": [10.31188, 9.56854, 10.61978], - "inflate": 0.005, - "uv": { - "north": {"uv": [556, 44], "uv_size": [11, 10]}, - "east": {"uv": [412, 556], "uv_size": [11, 10]}, - "south": {"uv": [15, 557], "uv_size": [11, 10]}, - "west": {"uv": [557, 17], "uv_size": [11, 10]}, - "up": {"uv": [196, 553], "uv_size": [11, 11]}, - "down": {"uv": [299, 564], "uv_size": [11, -11]} - } - }, - { - "origin": [-5.15625, 3.11814, 5.52594], - "size": [10.3125, 6.76641, 6.76641], - "pivot": [0, 5.09998, 10.73215], - "rotation": [45, 0, 0], - "uv": { - "east": {"uv": [495, 604], "uv_size": [7, 7]}, - "south": {"uv": [196, 582], "uv_size": [11, 7]}, - "west": {"uv": [583, 606], "uv_size": [7, 7]}, - "down": {"uv": [505, 590], "uv_size": [11, -7]} - } - }, - { - "origin": [-4.21875, 5.71625, 4.21875], - "size": [7.5, 3.28125, 4.6875], - "uv": { - "east": {"uv": [566, 631], "uv_size": [5, 4]}, - "west": {"uv": [571, 631], "uv_size": [5, 4]} - } - }, - { - "origin": [2.34375, -0.93642, -7.52356], - "size": [2.34375, 4.6875, 8.4375], - "pivot": [1.28906, 5.71625, -6.5625], - "rotation": [45, 0, 0], - "uv": { - "north": {"uv": [41, 636], "uv_size": [3, 5]}, - "east": {"uv": [33, 608], "uv_size": [9, 5]}, - "south": {"uv": [636, 44], "uv_size": [3, 5]}, - "west": {"uv": [550, 608], "uv_size": [9, 5]}, - "up": {"uv": [30, 627], "uv_size": [3, 9]}, - "down": {"uv": [63, 636], "uv_size": [3, -9]} - } - }, - { - "origin": [-4.6875, -0.93642, -7.52356], - "size": [2.34375, 4.6875, 8.4375], - "pivot": [1.28906, 5.71625, -6.5625], - "rotation": [45, 0, 0], - "uv": { - "north": {"uv": [52, 636], "uv_size": [3, 5]}, - "east": {"uv": [608, 568], "uv_size": [9, 5]}, - "south": {"uv": [636, 58], "uv_size": [3, 5]}, - "west": {"uv": [608, 573], "uv_size": [9, 5]}, - "up": {"uv": [213, 627], "uv_size": [3, 9]}, - "down": {"uv": [270, 636], "uv_size": [3, -9]} - } - } - ] - }, - { - "name": "barrel", - "parent": "root", - "pivot": [0.02781, 6.42016, -3.36644], - "cubes": [ - { - "origin": [-2.29765, 3.72995, -12.65625], - "size": [4.6875, 4.6875, 17.8125], - "uv": { - "north": {"uv": [484, 628], "uv_size": [5, 5]}, - "east": {"uv": [395, 211], "uv_size": [19, 5]}, - "west": {"uv": [0, 404], "uv_size": [19, 5]}, - "up": {"uv": [233, 478], "uv_size": [5, 19]}, - "down": {"uv": [554, 577], "uv_size": [5, -19]} - } - }, - { - "origin": [-0.9375, 7.1225, -10.78125], - "size": [1.875, 1.875, 9.375], - "pivot": [0, 8.06, -6.09375], - "rotation": [-5, 0, 0], - "uv": { - "north": {"uv": [343, 649], "uv_size": [2, 2]}, - "east": {"uv": [567, 318], "uv_size": [10, 2]}, - "south": {"uv": [345, 649], "uv_size": [2, 2]}, - "west": {"uv": [583, 108], "uv_size": [10, 2]}, - "up": {"uv": [40, 570], "uv_size": [2, 10]}, - "down": {"uv": [191, 585], "uv_size": [2, -10]} - } - }, - { - "origin": [-1.71171, 7.47789, -25.69907], - "size": [3.51563, 0.46875, 13.125], - "pivot": [0.0461, 6.29919, -23.4037], - "rotation": [2.5, 0, 0], - "uv": { - "north": {"uv": [649, 332], "uv_size": [4, 1]}, - "east": {"uv": [636, 213], "uv_size": [14, 1]}, - "south": {"uv": [333, 649], "uv_size": [4, 1]}, - "west": {"uv": [636, 229], "uv_size": [14, 1]}, - "up": {"uv": [481, 440], "uv_size": [4, 14]}, - "down": {"uv": [150, 616], "uv_size": [4, -14]} - } - }, - { - "origin": [-9.23467, 4.1987, -11.15577], - "size": [3.31456, 3.75, 3.31456], - "pivot": [0.0461, 6.0737, -1.875], - "rotation": [0, -45, 0], - "uv": { - "north": {"uv": [613, 635], "uv_size": [4, 4]}, - "east": {"uv": [617, 635], "uv_size": [4, 4]}, - "up": {"uv": [635, 623], "uv_size": [4, 4]}, - "down": {"uv": [625, 639], "uv_size": [4, -4]} - } - }, - { - "origin": [-1.59452, 9.4632, -19.7191], - "size": [3.28125, 0.46875, 4.99219], - "pivot": [0.0461, 9.69757, -12.45347], - "rotation": [45, 0, 0], - "uv": { - "east": {"uv": [576, 648], "uv_size": [5, 1]}, - "west": {"uv": [648, 576], "uv_size": [5, 1]} - } - }, - { - "origin": [-1.59452, 5.97226, -18.60456], - "size": [3.28125, 0.46875, 5.32031], - "pivot": [0.0461, 6.20664, -15.71002], - "rotation": [135, 0, 0], - "uv": { - "east": {"uv": [643, 167], "uv_size": [6, 1]}, - "west": {"uv": [643, 168], "uv_size": [6, 1]} - } - }, - { - "origin": [-1.59452, 9.4632, -23.93784], - "size": [3.28125, 0.46875, 4.26562], - "pivot": [0.0461, 9.69757, -17.14097], - "rotation": [45, 0, 0], - "uv": { - "east": {"uv": [648, 569], "uv_size": [5, 1]}, - "west": {"uv": [648, 570], "uv_size": [5, 1]} - } - }, - { - "origin": [-1.59452, 5.97226, -22.58894], - "size": [3.28125, 0.46875, 4.38281], - "pivot": [0.0461, 6.20664, -20.39752], - "rotation": [135, 0, 0], - "uv": { - "east": {"uv": [648, 571], "uv_size": [5, 1]}, - "west": {"uv": [648, 572], "uv_size": [5, 1]} - } - }, - { - "origin": [-1.36015, 5.13414, -25.69907], - "size": [2.8125, 2.8125, 13.125], - "pivot": [0.0461, 6.29919, -23.4037], - "rotation": [2.5, 0, 0], - "uv": { - "north": {"uv": [503, 618], "uv_size": [3, 3]}, - "east": {"uv": [257, 352], "uv_size": [14, 3]}, - "south": {"uv": [571, 639], "uv_size": [3, 3]}, - "west": {"uv": [400, 99], "uv_size": [14, 3]}, - "down": {"uv": [290, 544], "uv_size": [3, -14]} - } - }, - { - "origin": [-1.36015, 4.82044, -25.89447], - "size": [2.8125, 2.8125, 13.125], - "pivot": [0.0461, 6.29919, -23.4037], - "rotation": [-5, 0, 0], - "uv": { - "north": {"uv": [588, 639], "uv_size": [3, 3]}, - "east": {"uv": [581, 488], "uv_size": [14, 3]}, - "south": {"uv": [618, 639], "uv_size": [3, 3]}, - "west": {"uv": [609, 244], "uv_size": [14, 3]}, - "up": {"uv": [506, 607], "uv_size": [3, 14]} - } - }, - { - "origin": [-1.8289, 4.82044, -25.89447], - "size": [3.75, 0.46875, 13.125], - "pivot": [0.0461, 6.29919, -23.4037], - "rotation": [-5, 0, 0], - "uv": { - "north": {"uv": [649, 333], "uv_size": [4, 1]}, - "east": {"uv": [636, 230], "uv_size": [14, 1]}, - "south": {"uv": [649, 334], "uv_size": [4, 1]}, - "west": {"uv": [636, 231], "uv_size": [14, 1]}, - "up": {"uv": [344, 602], "uv_size": [4, 14]}, - "down": {"uv": [348, 616], "uv_size": [4, -14]} - } - }, - { - "origin": [-1.8289, 5.12786, -30.9375], - "size": [1.875, 1.875, 5.625], - "pivot": [-0.36406, 6.11808, -31.40625], - "rotation": [0, 0, 135], - "uv": { - "east": {"uv": [639, 44], "uv_size": [6, 2]}, - "south": {"uv": [538, 652], "uv_size": [1, 2]}, - "west": {"uv": [639, 46], "uv_size": [6, 2]}, - "up": {"uv": [103, 643], "uv_size": [1, 6]}, - "down": {"uv": [104, 649], "uv_size": [1, -6]} - } - }, - { - "origin": [-1.47734, 5.14798, -37.5], - "size": [2.8125, 2.8125, 6.5625], - "uv": { - "north": {"uv": [133, 650], "uv_size": [1, 3]}, - "east": {"uv": [192, 631], "uv_size": [7, 3]}, - "south": {"uv": [170, 650], "uv_size": [1, 3]}, - "west": {"uv": [631, 194], "uv_size": [7, 3]}, - "up": {"uv": [69, 642], "uv_size": [1, 7]}, - "down": {"uv": [70, 649], "uv_size": [1, -7]} - } - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/textures/vehicle_icon/yx_100_icon.png b/src/main/resources/assets/superbwarfare/textures/vehicle_icon/yx_100_icon.png new file mode 100644 index 000000000..979c34f2c Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/vehicle_icon/yx_100_icon.png differ