将所有java模型的弹射物全部替换为geo模型

This commit is contained in:
Atsuihsio 2024-12-04 16:12:00 +08:00
parent 63dda01876
commit 7d6d2b6409
48 changed files with 1843 additions and 458 deletions

View file

@ -1,43 +0,0 @@
package com.atsuishio.superbwarfare.client.model.entity;
import com.atsuishio.superbwarfare.ModUtils;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.2
// Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports
public class ModelGrenade<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "model_grenade"), "main");
public final ModelPart bone;
public ModelGrenade(ModelPart root) {
this.bone = root.getChild("bone");
}
public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 24.0F, 0.0F, 0.0F, 0.0F, 1.5708F));
PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(2, 2).addBox(-0.5F, -0.5F, -23.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 1.5708F, 0.0F));
return LayerDefinition.create(meshdefinition, 16, 16);
}
@Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
}
@Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
}
}

View file

@ -1,66 +0,0 @@
package com.atsuishio.superbwarfare.client.model.entity;
import com.atsuishio.superbwarfare.ModUtils;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
@SuppressWarnings("unused")
public class ModelHandGrenade<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "model_hand_grenade"), "main");
public final ModelPart group;
public ModelHandGrenade(ModelPart root) {
this.group = root.getChild("group");
}
public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition group = partdefinition.addOrReplaceChild("group", CubeListBuilder.create().texOffs(6, 8).addBox(-0.4375F, 0.424F, -1.0258F, 0.875F, 0.3F, 1.075F, new CubeDeformation(0.0F))
.texOffs(11, 13).addBox(-0.45F, -0.4283F, -1.0883F, 0.9F, 0.85F, 1.35F, new CubeDeformation(0.0F))
.texOffs(13, 14).addBox(-0.45F, -0.4283F, 0.2617F, 0.9F, 0.85F, 0.3F, new CubeDeformation(0.0F))
.texOffs(12, 15).addBox(-0.45F, 0.0717F, 0.5617F, 0.9F, 0.35F, 0.3F, new CubeDeformation(0.0F))
.texOffs(11, 14).addBox(-0.45F, -0.2283F, 0.5617F, 0.9F, 0.3F, 0.2F, new CubeDeformation(0.0F))
.texOffs(9, 13).addBox(-0.5F, -0.6283F, -1.5883F, 1.0F, 0.2F, 2.2F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -0.0217F, 0.4883F));
PartDefinition cube_r1 = group.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(11, 14).addBox(-1.5F, -0.2F, 1.5F, 1.0F, 1.0F, 0.2F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.0F, 0.207F, -0.8823F, 0.3927F, 0.0F, 0.0F));
PartDefinition cube_r2 = group.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(12, 14).addBox(-1.45F, -1.3391F, 0.4F, 0.9F, 0.9391F, 0.3508F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.0F, 0.9443F, -1.3048F, 0.3927F, 0.0F, 0.0F));
PartDefinition bone2 = group.addOrReplaceChild("bone2", CubeListBuilder.create(), PartPose.offset(0.0F, 2.0295F, -26.2164F));
PartDefinition bone178_r1 = bone2.addOrReplaceChild("bone178_r1", CubeListBuilder.create().texOffs(0, 8).addBox(-1.2976F, -0.5375F, -0.5375F, 2.5953F, 1.075F, 1.075F, new CubeDeformation(0.0F))
.texOffs(10, 0).addBox(-0.5375F, -1.2976F, -0.5375F, 1.075F, 2.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.0078F, 25.7281F, 0.0F, 0.0F, 0.7854F));
PartDefinition bone3 = group.addOrReplaceChild("bone3", CubeListBuilder.create().texOffs(0, 10).addBox(-0.5375F, -1.3054F, 25.1906F, 1.075F, 2.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 2.0295F, -26.2164F));
PartDefinition bone179_r1 = bone3.addOrReplaceChild("bone179_r1", CubeListBuilder.create().texOffs(5, 1).addBox(-0.5375F, -0.5375F, -1.2976F, 1.075F, 1.075F, 2.5953F, new CubeDeformation(0.0F))
.texOffs(7, 9).addBox(-0.5375F, -1.2976F, -0.5375F, 1.075F, 2.5953F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.0078F, 25.7281F, 0.7854F, 0.0F, 0.0F));
PartDefinition bone175 = group.addOrReplaceChild("bone175", CubeListBuilder.create().texOffs(7, 7).addBox(-1.2976F, -0.5453F, 25.1906F, 2.5953F, 1.075F, 1.075F, new CubeDeformation(0.0F))
.texOffs(0, 4).addBox(-0.5375F, -0.5453F, 24.4305F, 1.075F, 1.075F, 2.5953F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 2.0295F, -26.2164F));
PartDefinition bone180_r1 = bone175.addOrReplaceChild("bone180_r1", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5375F, -0.5375F, -1.2976F, 1.075F, 1.075F, 2.5953F, new CubeDeformation(0.0F))
.texOffs(5, 5).addBox(-1.2976F, -0.5375F, -0.5375F, 2.5953F, 1.075F, 1.075F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.0078F, 25.7281F, 0.0F, 0.7854F, 0.0F));
return LayerDefinition.create(meshdefinition, 16, 16);
}
@Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
}
@Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
group.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
}
}

View file

@ -1,81 +0,0 @@
package com.atsuishio.superbwarfare.client.model.entity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.atsuishio.superbwarfare.ModUtils;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.4
// Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports
public class ModelMortarShell<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "modelmortar_shell_converted"), "main");
public final ModelPart Rockets;
public ModelMortarShell(ModelPart root) {
this.Rockets = root.getChild("Rockets");
}
public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition Rockets = partdefinition.addOrReplaceChild("Rockets", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -24.7579F, 0.4535F, -1.5708F, 0.0F, 0.0F));
PartDefinition octagon_r1 = Rockets.addOrReplaceChild("octagon_r1", CubeListBuilder.create().texOffs(6, 3).addBox(-1.3735F, -0.2401F, -1.5325F, 0.7465F, 0.4803F, 1.7605F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(1.8097F, 0.0033F, 5.8407F, 0.0F, 0.3927F, 0.0F));
PartDefinition octagon_r2 = Rockets.addOrReplaceChild("octagon_r2", CubeListBuilder.create().texOffs(7, 0).addBox(0.627F, -0.2401F, -1.5325F, 0.7465F, 0.4803F, 1.7605F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-1.8097F, 0.0033F, 5.8407F, 0.0F, -0.3927F, 0.0F));
PartDefinition octagon_r3 = Rockets.addOrReplaceChild("octagon_r3", CubeListBuilder.create().texOffs(0, 8).addBox(-0.2401F, 0.627F, -1.4075F, 0.4803F, 0.684F, 1.6355F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.0003F, 6.5823F, -0.3927F, 0.0F, 0.0F));
PartDefinition octagon_r4 = Rockets.addOrReplaceChild("octagon_r4", CubeListBuilder.create().texOffs(4, 8).addBox(-0.2401F, -1.311F, -1.4075F, 0.4803F, 0.684F, 1.6355F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.0003F, 6.5823F, 0.3927F, 0.0F, 0.0F));
PartDefinition octagon_r5 = Rockets.addOrReplaceChild("octagon_r5",
CubeListBuilder.create().texOffs(2, 0).addBox(-0.57F, -0.2361F, -4.1689F, 1.14F, 0.4722F, 2.85F, new CubeDeformation(0.0F)).texOffs(0, 3).addBox(-0.2361F, -0.57F, -4.1689F, 0.4722F, 1.14F, 2.85F, new CubeDeformation(0.0F))
.texOffs(0, 15).addBox(-0.741F, -0.3069F, -3.4849F, 1.482F, 0.6139F, 1.824F, new CubeDeformation(0.0F)).texOffs(19, 0).addBox(-0.3069F, -0.741F, -3.4849F, 0.6139F, 1.482F, 1.824F, new CubeDeformation(0.0F)).texOffs(13, 13)
.addBox(-0.912F, -0.3778F, -2.3449F, 1.824F, 0.7555F, 7.0265F, new CubeDeformation(0.0F)).texOffs(19, 0).addBox(-0.3778F, -0.912F, -2.3449F, 0.7555F, 1.824F, 7.0265F, new CubeDeformation(0.0F)).texOffs(29, 23)
.addBox(-0.4486F, -1.083F, -1.3189F, 0.8972F, 2.166F, 5.066F, new CubeDeformation(0.0F)).texOffs(28, 0).addBox(-1.083F, -0.4486F, -1.3189F, 2.166F, 0.8972F, 5.066F, new CubeDeformation(0.0F)).texOffs(29, 30)
.addBox(-1.254F, -0.5194F, -0.2929F, 2.508F, 1.0388F, 3.128F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.5194F, -1.254F, -0.2929F, 1.0388F, 2.508F, 3.128F, new CubeDeformation(0.0F)).texOffs(0, 8)
.addBox(-1.425F, -0.5902F, 0.7331F, 2.85F, 1.1805F, 1.19F, new CubeDeformation(0.0F)).texOffs(7, 5).addBox(-0.5902F, -1.425F, 0.7331F, 1.1805F, 2.85F, 1.19F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.0003F, -0.8848F, 0.0F, 0.0F, -0.3927F));
PartDefinition octagon_r6 = Rockets.addOrReplaceChild("octagon_r6",
CubeListBuilder.create().texOffs(4, 0).addBox(-0.57F, -0.2361F, -4.1689F, 1.14F, 0.4722F, 2.85F, new CubeDeformation(0.0F)).texOffs(0, 4).addBox(-0.2361F, -0.57F, -4.1689F, 0.4722F, 1.14F, 2.85F, new CubeDeformation(0.0F))
.texOffs(11, 17).addBox(-0.741F, -0.3069F, -3.4849F, 1.482F, 0.6139F, 1.824F, new CubeDeformation(0.0F)).texOffs(19, 3).addBox(-0.3069F, -0.741F, -3.4849F, 0.6139F, 1.482F, 1.824F, new CubeDeformation(0.0F)).texOffs(0, 15)
.addBox(-0.912F, -0.3778F, -2.3449F, 1.824F, 0.7555F, 7.0265F, new CubeDeformation(0.0F)).texOffs(11, 21).addBox(-0.3778F, -0.912F, -2.3449F, 0.7555F, 1.824F, 7.0265F, new CubeDeformation(0.0F)).texOffs(24, 9)
.addBox(-1.083F, -0.4486F, -1.3189F, 2.166F, 0.8972F, 5.066F, new CubeDeformation(0.0F)).texOffs(9, 30).addBox(-0.4486F, -1.083F, -1.3189F, 0.8972F, 2.166F, 5.066F, new CubeDeformation(0.0F)).texOffs(0, 31)
.addBox(-1.254F, -0.5194F, -0.2929F, 2.508F, 1.0388F, 3.128F, new CubeDeformation(0.0F)).texOffs(33, 6).addBox(-0.5194F, -1.254F, -0.2929F, 1.0388F, 2.508F, 3.128F, new CubeDeformation(0.0F)).texOffs(11, 15)
.addBox(-1.425F, -0.5902F, 0.7331F, 2.85F, 1.1805F, 1.19F, new CubeDeformation(0.0F)).texOffs(0, 18).addBox(-0.5902F, -1.425F, 0.7331F, 1.1805F, 2.85F, 1.19F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.0003F, -0.8848F, 0.0F, 0.0F, 0.3927F));
PartDefinition group2 = Rockets.addOrReplaceChild("group2", CubeListBuilder.create(), PartPose.offset(0.0F, -6.0003F, 12.3571F));
PartDefinition group3 = Rockets.addOrReplaceChild("group3", CubeListBuilder.create(), PartPose.offset(0.0F, -9.7972F, 8.7641F));
PartDefinition octagon_r7 = group3.addOrReplaceChild("octagon_r7", CubeListBuilder.create().texOffs(20, 21).addBox(-0.7434F, -0.308F, 1.7936F, 1.4868F, 0.6158F, 5.7403F, new CubeDeformation(0.0F)).texOffs(28, 15).addBox(-0.3079F, -0.7435F,
1.7936F, 0.6159F, 1.4868F, 5.7403F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 9.797F, -9.6489F, 0.0F, 0.0F, -0.3927F));
PartDefinition octagon_r8 = group3.addOrReplaceChild("octagon_r8",
CubeListBuilder.create().texOffs(0, 24).addBox(-0.7434F, -0.308F, 1.7936F, 1.4868F, 0.6158F, 5.7403F, new CubeDeformation(0.0F)).texOffs(21, 28).addBox(-0.308F, -0.7435F, 1.7936F, 0.6159F, 1.4868F, 5.7403F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 9.797F, -9.6489F, 0.0F, 0.0F, 0.3927F));
PartDefinition group4 = Rockets.addOrReplaceChild("group4", CubeListBuilder.create(), PartPose.offset(0.0F, -9.7972F, 8.7641F));
PartDefinition group = Rockets.addOrReplaceChild("group", CubeListBuilder.create(), PartPose.offset(0.0F, 0.2029F, -5.0537F));
PartDefinition octagon_r9 = group.addOrReplaceChild("octagon_r9",
CubeListBuilder.create().texOffs(0, 1).addBox(-0.1549F, -0.3739F, -4.905F, 0.3098F, 0.7478F, 1.1522F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.3739F, -0.1549F, -4.905F, 0.7478F, 0.3098F, 1.1522F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.2031F, 4.1689F, 0.0F, 0.0F, -0.3927F));
PartDefinition octagon_r10 = group.addOrReplaceChild("octagon_r10",
CubeListBuilder.create().texOffs(8, 8).addBox(-0.1549F, -0.3739F, -4.905F, 0.3098F, 0.7478F, 1.1522F, new CubeDeformation(0.0F)).texOffs(0, 1).addBox(-0.3739F, -0.1549F, -4.905F, 0.7478F, 0.3098F, 1.1522F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.2031F, 4.1689F, 0.0F, 0.0F, 0.3927F));
return LayerDefinition.create(meshdefinition, 16, 16);
}
@Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
}
@Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
Rockets.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
}
}

View file

@ -1,46 +0,0 @@
package com.atsuishio.superbwarfare.client.model.entity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.atsuishio.superbwarfare.ModUtils;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.3
// Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports
public class ModelTaserRod<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "modeltaser_rod"), "main");
public final ModelPart bone;
public ModelTaserRod(ModelPart root) {
this.bone = root.getChild("bone");
}
public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F));
PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1",
CubeListBuilder.create().texOffs(0, 4).addBox(-0.5F, -27.0F, -2.5F, 1.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-1.0F, -23.0F, -7.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 0)
.addBox(-1.0F, -23.0F, -3.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 4).addBox(-0.5F, -27.0F, -6.5F, 1.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F));
return LayerDefinition.create(meshdefinition, 16, 16);
}
@Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
}
@Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
}
}

View file

@ -1,41 +1,51 @@
package com.atsuishio.superbwarfare.client.renderer.entity; package com.atsuishio.superbwarfare.client.renderer.entity;
import com.atsuishio.superbwarfare.entity.layer.GunGrenadeLayer;
import com.atsuishio.superbwarfare.entity.model.GunGrenadeModel;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.client.model.entity.ModelGrenade;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class GunGrenadeRenderer extends EntityRenderer<GunGrenadeEntity> { public class GunGrenadeRenderer extends GeoEntityRenderer<GunGrenadeEntity> {
private static final ResourceLocation TEXTURE = new ResourceLocation(ModUtils.MODID, "textures/entity/grenade.png"); public GunGrenadeRenderer(EntityRendererProvider.Context renderManager) {
private final ModelGrenade<GunGrenadeEntity> model; super(renderManager, new GunGrenadeModel());
this.addRenderLayer(new GunGrenadeLayer(this));
this.shadowRadius = 0f;
}
public GunGrenadeRenderer(EntityRendererProvider.Context context) { @Override
super(context); public RenderType getRenderType(GunGrenadeEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
model = new ModelGrenade<>(context.bakeLayer(ModelGrenade.LAYER_LOCATION)); return RenderType.entityTranslucent(getTextureLocation(animatable));
}
@Override
public void preRender(PoseStack poseStack, GunGrenadeEntity 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 @Override
public void render(GunGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(GunGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
poseStack.popPose();
} }
@Override @Override
public ResourceLocation getTextureLocation(GunGrenadeEntity entity) { protected float getDeathMaxRotation(GunGrenadeEntity entityLivingBaseIn) {
return TEXTURE; return 0.0F;
} }
} }

View file

@ -1,41 +0,0 @@
package com.atsuishio.superbwarfare.client.renderer.entity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.client.model.entity.ModelHandGrenade;
import com.atsuishio.superbwarfare.entity.projectile.HandGrenadeEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
public class HandGrenadeEntityRenderer extends EntityRenderer<HandGrenadeEntity> {
private static final ResourceLocation TEXTURE = new ResourceLocation(ModUtils.MODID, "textures/entity/hand_grenade.png");
private final ModelHandGrenade<HandGrenadeEntity> model;
public HandGrenadeEntityRenderer(EntityRendererProvider.Context context) {
super(context);
model = new ModelHandGrenade<>(context.bakeLayer(ModelHandGrenade.LAYER_LOCATION));
}
@Override
public void render(HandGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
}
@Override
public ResourceLocation getTextureLocation(HandGrenadeEntity entity) {
return TEXTURE;
}
}

View file

@ -0,0 +1,48 @@
package com.atsuishio.superbwarfare.client.renderer.entity;
import com.atsuishio.superbwarfare.entity.model.HandGrenadeEntityModel;
import com.atsuishio.superbwarfare.entity.projectile.HandGrenadeEntity;
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 HandGrenadeRenderer extends GeoEntityRenderer<HandGrenadeEntity> {
public HandGrenadeRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new HandGrenadeEntityModel());
}
@Override
public RenderType getRenderType(HandGrenadeEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable));
}
@Override
public void preRender(PoseStack poseStack, HandGrenadeEntity 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(HandGrenadeEntity 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()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
poseStack.popPose();
}
@Override
protected float getDeathMaxRotation(HandGrenadeEntity entityLivingBaseIn) {
return 0.0F;
}
}

View file

@ -1,5 +1,6 @@
package com.atsuishio.superbwarfare.client.renderer.entity; package com.atsuishio.superbwarfare.client.renderer.entity;
import com.atsuishio.superbwarfare.entity.layer.JavelinMissleLayer;
import com.atsuishio.superbwarfare.entity.model.JavelinMissileModel; import com.atsuishio.superbwarfare.entity.model.JavelinMissileModel;
import com.atsuishio.superbwarfare.entity.projectile.JavelinMissileEntity; import com.atsuishio.superbwarfare.entity.projectile.JavelinMissileEntity;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
@ -16,7 +17,7 @@ import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class JavelinMissileRenderer extends GeoEntityRenderer<JavelinMissileEntity> { public class JavelinMissileRenderer extends GeoEntityRenderer<JavelinMissileEntity> {
public JavelinMissileRenderer(EntityRendererProvider.Context renderManager) { public JavelinMissileRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new JavelinMissileModel()); super(renderManager, new JavelinMissileModel());
this.shadowRadius = 0.1f; this.addRenderLayer(new JavelinMissleLayer(this));
} }
@Override @Override

View file

@ -1,41 +1,48 @@
package com.atsuishio.superbwarfare.client.renderer.entity; package com.atsuishio.superbwarfare.client.renderer.entity;
import com.atsuishio.superbwarfare.entity.model.MortarShellEntityModel;
import com.atsuishio.superbwarfare.entity.projectile.MortarShellEntity;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.client.model.entity.ModelMortarShell;
import com.atsuishio.superbwarfare.entity.projectile.MortarShellEntity;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class MortarShellRenderer extends EntityRenderer<MortarShellEntity> { public class MortarShellRenderer extends GeoEntityRenderer<MortarShellEntity> {
private static final ResourceLocation TEXTURE = new ResourceLocation(ModUtils.MODID, "textures/entity/mortar_shell.png"); public MortarShellRenderer(EntityRendererProvider.Context renderManager) {
private final ModelMortarShell<MortarShellEntity> model; super(renderManager, new MortarShellEntityModel());
}
public MortarShellRenderer(EntityRendererProvider.Context context) { @Override
super(context); public RenderType getRenderType(MortarShellEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
model = new ModelMortarShell<>(context.bakeLayer(ModelMortarShell.LAYER_LOCATION)); return RenderType.entityTranslucent(getTextureLocation(animatable));
}
@Override
public void preRender(PoseStack poseStack, MortarShellEntity 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 @Override
public void render(MortarShellEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(MortarShellEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
poseStack.popPose();
} }
@Override @Override
public ResourceLocation getTextureLocation(MortarShellEntity entity) { protected float getDeathMaxRotation(MortarShellEntity entityLivingBaseIn) {
return TEXTURE; return 0.0F;
} }
} }

View file

@ -1,10 +1,10 @@
package com.atsuishio.superbwarfare.client.renderer.entity; package com.atsuishio.superbwarfare.client.renderer.entity;
import com.atsuishio.superbwarfare.entity.model.RgoGrenadeEntityModel; import com.atsuishio.superbwarfare.entity.model.RgoGrenadeEntityModel;
import com.atsuishio.superbwarfare.entity.projectile.RgoGrenadeEntity;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.atsuishio.superbwarfare.entity.projectile.RgoGrenadeEntity;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.entity.EntityRendererProvider;
@ -16,7 +16,6 @@ import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class RgoGrenadeRenderer extends GeoEntityRenderer<RgoGrenadeEntity> { public class RgoGrenadeRenderer extends GeoEntityRenderer<RgoGrenadeEntity> {
public RgoGrenadeRenderer(EntityRendererProvider.Context renderManager) { public RgoGrenadeRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new RgoGrenadeEntityModel()); super(renderManager, new RgoGrenadeEntityModel());
this.shadowRadius = 0.1f;
} }
@Override @Override

View file

@ -1,10 +1,11 @@
package com.atsuishio.superbwarfare.client.renderer.entity; package com.atsuishio.superbwarfare.client.renderer.entity;
import com.atsuishio.superbwarfare.entity.layer.RpgRocketLayer;
import com.atsuishio.superbwarfare.entity.model.RpgRocketModel; import com.atsuishio.superbwarfare.entity.model.RpgRocketModel;
import com.atsuishio.superbwarfare.entity.projectile.RpgRocketEntity;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.atsuishio.superbwarfare.entity.projectile.RpgRocketEntity;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.entity.EntityRendererProvider;
@ -16,7 +17,7 @@ import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class RpgRocketRenderer extends GeoEntityRenderer<RpgRocketEntity> { public class RpgRocketRenderer extends GeoEntityRenderer<RpgRocketEntity> {
public RpgRocketRenderer(EntityRendererProvider.Context renderManager) { public RpgRocketRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new RpgRocketModel()); super(renderManager, new RpgRocketModel());
this.shadowRadius = 0.1f; this.addRenderLayer(new RpgRocketLayer(this));
} }
@Override @Override

View file

@ -1,41 +1,48 @@
package com.atsuishio.superbwarfare.client.renderer.entity; package com.atsuishio.superbwarfare.client.renderer.entity;
import com.atsuishio.superbwarfare.entity.model.TaserBulletProjectileModel;
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletProjectileEntity;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis; import com.mojang.math.Axis;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.client.model.entity.ModelTaserRod;
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletProjectileEntity;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class TaserBulletProjectileRenderer extends EntityRenderer<TaserBulletProjectileEntity> { public class TaserBulletProjectileRenderer extends GeoEntityRenderer<TaserBulletProjectileEntity> {
private static final ResourceLocation TEXTURE = new ResourceLocation(ModUtils.MODID, "textures/entity/taser_rod.png"); public TaserBulletProjectileRenderer(EntityRendererProvider.Context renderManager) {
private final ModelTaserRod<TaserBulletProjectileEntity> model; super(renderManager, new TaserBulletProjectileModel());
}
public TaserBulletProjectileRenderer(EntityRendererProvider.Context context) { @Override
super(context); public RenderType getRenderType(TaserBulletProjectileEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
model = new ModelTaserRod<>(context.bakeLayer(ModelTaserRod.LAYER_LOCATION)); return RenderType.entityTranslucent(getTextureLocation(animatable));
}
@Override
public void preRender(PoseStack poseStack, TaserBulletProjectileEntity 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 @Override
public void render(TaserBulletProjectileEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(TaserBulletProjectileEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
poseStack.popPose();
} }
@Override @Override
public ResourceLocation getTextureLocation(TaserBulletProjectileEntity entity) { protected float getDeathMaxRotation(TaserBulletProjectileEntity entityLivingBaseIn) {
return TEXTURE; return 0.0F;
} }
} }

View file

@ -47,6 +47,7 @@ public class ClaymoreEntity extends Entity implements GeoEntity, AnimatedEntity,
public ClaymoreEntity(EntityType<ClaymoreEntity> type, Level world) { public ClaymoreEntity(EntityType<ClaymoreEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public ClaymoreEntity(LivingEntity owner, Level level) { public ClaymoreEntity(LivingEntity owner, Level level) {

View file

@ -81,6 +81,7 @@ public class DroneEntity extends LivingEntity implements GeoEntity {
public DroneEntity(EntityType<DroneEntity> type, Level world) { public DroneEntity(EntityType<DroneEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public DroneEntity(EntityType<? extends DroneEntity> type, Level world, float moveX, float moveY, float moveZ) { public DroneEntity(EntityType<? extends DroneEntity> type, Level world, float moveX, float moveY, float moveZ) {

View file

@ -67,6 +67,7 @@ public class Mk42Entity extends Entity implements GeoEntity, ICannonEntity {
public Mk42Entity(EntityType<Mk42Entity> type, Level world) { public Mk42Entity(EntityType<Mk42Entity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
@Override @Override

View file

@ -69,6 +69,7 @@ public class Mle1934Entity extends Entity implements GeoEntity, ICannonEntity {
public Mle1934Entity(EntityType<Mle1934Entity> type, Level world) { public Mle1934Entity(EntityType<Mle1934Entity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
@Override @Override

View file

@ -60,6 +60,7 @@ public class MortarEntity extends Entity implements GeoEntity, AnimatedEntity {
public MortarEntity(PlayMessages.SpawnEntity packet, Level world) { public MortarEntity(PlayMessages.SpawnEntity packet, Level world) {
this(ModEntities.MORTAR.get(), world); this(ModEntities.MORTAR.get(), world);
this.noCulling = true;
} }
public MortarEntity(EntityType<MortarEntity> type, Level world) { public MortarEntity(EntityType<MortarEntity> type, Level world) {

View file

@ -1,9 +1,9 @@
package com.atsuishio.superbwarfare.entity; package com.atsuishio.superbwarfare.entity;
import com.atsuishio.superbwarfare.init.ModEntities; import com.atsuishio.superbwarfare.init.ModEntities;
import com.atsuishio.superbwarfare.network.ModVariables;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.network.ModVariables;
import com.atsuishio.superbwarfare.tools.SoundTool; import com.atsuishio.superbwarfare.tools.SoundTool;
import net.minecraft.commands.arguments.EntityAnchorArgument; import net.minecraft.commands.arguments.EntityAnchorArgument;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
@ -50,6 +50,7 @@ public class TargetEntity extends LivingEntity implements GeoEntity, AnimatedEnt
public TargetEntity(EntityType<TargetEntity> type, Level world) { public TargetEntity(EntityType<TargetEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
@Override @Override

View file

@ -0,0 +1,27 @@
package com.atsuishio.superbwarfare.entity.layer;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class GunGrenadeLayer extends GeoRenderLayer<GunGrenadeEntity> {
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/entity/cannon_shell_e.png");
public GunGrenadeLayer(GeoRenderer<GunGrenadeEntity> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, GunGrenadeEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
RenderType glowRenderType = RenderType.eyes(LAYER);
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
}
}

View file

@ -0,0 +1,27 @@
package com.atsuishio.superbwarfare.entity.layer;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.projectile.JavelinMissileEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class JavelinMissleLayer extends GeoRenderLayer<JavelinMissileEntity> {
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/entity/rpg_rocket_e.png");
public JavelinMissleLayer(GeoRenderer<JavelinMissileEntity> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, JavelinMissileEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
RenderType glowRenderType = RenderType.eyes(LAYER);
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
}
}

View file

@ -0,0 +1,27 @@
package com.atsuishio.superbwarfare.entity.layer;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.projectile.RpgRocketEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class RpgRocketLayer extends GeoRenderLayer<RpgRocketEntity> {
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/entity/rpg_rocket_e.png");
public RpgRocketLayer(GeoRenderer<RpgRocketEntity> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, RpgRocketEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
RenderType glowRenderType = RenderType.eyes(LAYER);
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
}
}

View file

@ -0,0 +1,33 @@
package com.atsuishio.superbwarfare.entity.model;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
public class GunGrenadeModel extends GeoModel<GunGrenadeEntity> {
@Override
public ResourceLocation getAnimationResource(GunGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "animations/cannon_shell.animation.json");
}
@Override
public ResourceLocation getModelResource(GunGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "geo/cannon_shell.geo.json");
}
@Override
public ResourceLocation getTextureResource(GunGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "textures/entity/cannon_shell.png");
}
@Override
public void setCustomAnimations(GunGrenadeEntity animatable, long instanceId, AnimationState animationState) {
CoreGeoBone bone = getAnimationProcessor().getBone("bone");
bone.setScaleX(0.15f);
bone.setScaleY(0.15f);
bone.setScaleZ(0.15f);
}
}

View file

@ -0,0 +1,23 @@
package com.atsuishio.superbwarfare.entity.model;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.projectile.HandGrenadeEntity;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.model.GeoModel;
public class HandGrenadeEntityModel extends GeoModel<HandGrenadeEntity> {
@Override
public ResourceLocation getAnimationResource(HandGrenadeEntity entity) {
return null;
}
@Override
public ResourceLocation getModelResource(HandGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "geo/hand_grenade.geo.json");
}
@Override
public ResourceLocation getTextureResource(HandGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "textures/entity/hand_grenade.png");
}
}

View file

@ -0,0 +1,24 @@
package com.atsuishio.superbwarfare.entity.model;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.projectile.MortarShellEntity;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.model.GeoModel;
public class MortarShellEntityModel extends GeoModel<MortarShellEntity> {
@Override
public ResourceLocation getAnimationResource(MortarShellEntity entity) {
return null;
}
@Override
public ResourceLocation getModelResource(MortarShellEntity entity) {
return new ResourceLocation(ModUtils.MODID, "geo/mortar_shell.geo.json");
}
@Override
public ResourceLocation getTextureResource(MortarShellEntity entity) {
return ModUtils.loc("textures/entity/mortar.png");
}
}

View file

@ -8,7 +8,7 @@ import software.bernie.geckolib.model.GeoModel;
public class RgoGrenadeEntityModel extends GeoModel<RgoGrenadeEntity> { public class RgoGrenadeEntityModel extends GeoModel<RgoGrenadeEntity> {
@Override @Override
public ResourceLocation getAnimationResource(RgoGrenadeEntity entity) { public ResourceLocation getAnimationResource(RgoGrenadeEntity entity) {
return new ResourceLocation(ModUtils.MODID, "animations/rgo_grenade.animation.json"); return null;
} }
@Override @Override

View file

@ -0,0 +1,23 @@
package com.atsuishio.superbwarfare.entity.model;
import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.entity.projectile.TaserBulletProjectileEntity;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.model.GeoModel;
public class TaserBulletProjectileModel extends GeoModel<TaserBulletProjectileEntity> {
@Override
public ResourceLocation getAnimationResource(TaserBulletProjectileEntity entity) {
return null;
}
@Override
public ResourceLocation getModelResource(TaserBulletProjectileEntity entity) {
return new ResourceLocation(ModUtils.MODID, "geo/taser_rod.geo.json");
}
@Override
public ResourceLocation getTextureResource(TaserBulletProjectileEntity entity) {
return new ResourceLocation(ModUtils.MODID, "textures/entity/taser_rod.png");
}
}

View file

@ -58,6 +58,7 @@ public class CannonShellEntity extends ThrowableItemProjectile implements GeoEnt
public CannonShellEntity(EntityType<? extends CannonShellEntity> type, Level world) { public CannonShellEntity(EntityType<? extends CannonShellEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public CannonShellEntity(EntityType<? extends CannonShellEntity> type, LivingEntity entity, Level world, float damage, float explosionRadius, float explosionDamage, float fireProbability, int fireTime) { public CannonShellEntity(EntityType<? extends CannonShellEntity> type, LivingEntity entity, Level world, float damage, float explosionRadius, float explosionDamage, float fireProbability, int fireTime) {

View file

@ -29,15 +29,21 @@ import net.minecraft.world.phys.EntityHitResult;
import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PacketDistributor; import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.PlayMessages; import net.minecraftforge.network.PlayMessages;
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 GunGrenadeEntity extends ThrowableItemProjectile { public class GunGrenadeEntity extends ThrowableItemProjectile implements GeoEntity {
private float monsterMultiplier = 0.0f; private float monsterMultiplier = 0.0f;
private float damage = 40.0f; private float damage = 40.0f;
private float explosion_damage = 80f; private float explosion_damage = 80f;
private float explosion_radius = 5f; private float explosion_radius = 5f;
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, Level world) { public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public GunGrenadeEntity(LivingEntity entity, Level level, float damage, float explosion_damage, float explosion_radius) { public GunGrenadeEntity(LivingEntity entity, Level level, float damage, float explosion_damage, float explosion_radius) {
@ -141,4 +147,14 @@ public class GunGrenadeEntity extends ThrowableItemProjectile {
this.discard(); this.discard();
} }
} }
@Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
}
@Override
public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache;
}
} }

View file

@ -31,12 +31,18 @@ import net.minecraft.world.phys.HitResult;
import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PacketDistributor; import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.PlayMessages; import net.minecraftforge.network.PlayMessages;
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 HandGrenadeEntity extends ThrowableItemProjectile { public class HandGrenadeEntity extends ThrowableItemProjectile implements GeoEntity {
private int fuse = 100; private int fuse = 100;
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public HandGrenadeEntity(EntityType<? extends HandGrenadeEntity> type, Level world) { public HandGrenadeEntity(EntityType<? extends HandGrenadeEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public HandGrenadeEntity(LivingEntity entity, Level level, int fuse) { public HandGrenadeEntity(LivingEntity entity, Level level, int fuse) {
@ -139,6 +145,15 @@ public class HandGrenadeEntity extends ThrowableItemProjectile {
} }
} }
@Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
}
@Override
public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache;
}
@Override @Override
protected float getGravity() { protected float getGravity() {
return 0.07F; return 0.07F;

View file

@ -61,6 +61,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
public JavelinMissileEntity(EntityType<? extends JavelinMissileEntity> type, Level world) { public JavelinMissileEntity(EntityType<? extends JavelinMissileEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public JavelinMissileEntity(LivingEntity entity, Level level, float damage, float explosion_damage, float explosion_radius) { public JavelinMissileEntity(LivingEntity entity, Level level, float damage, float explosion_damage, float explosion_radius) {

View file

@ -24,15 +24,21 @@ import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.EntityHitResult;
import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages; import net.minecraftforge.network.PlayMessages;
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 MortarShellEntity extends ThrowableItemProjectile { public class MortarShellEntity extends ThrowableItemProjectile implements GeoEntity {
private float damage = ExplosionConfig.MORTAR_SHELL_EXPLOSION_DAMAGE.get(); private float damage = ExplosionConfig.MORTAR_SHELL_EXPLOSION_DAMAGE.get();
private int life = 600; private int life = 600;
private float radius = ExplosionConfig.MORTAR_SHELL_EXPLOSION_RADIUS.get(); private float radius = ExplosionConfig.MORTAR_SHELL_EXPLOSION_RADIUS.get();
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public MortarShellEntity(EntityType<? extends MortarShellEntity> type, Level world) { public MortarShellEntity(EntityType<? extends MortarShellEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public MortarShellEntity(EntityType<? extends MortarShellEntity> type, LivingEntity entity, Level world) { public MortarShellEntity(EntityType<? extends MortarShellEntity> type, LivingEntity entity, Level world) {
@ -134,6 +140,16 @@ public class MortarShellEntity extends ThrowableItemProjectile {
} }
} }
@Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
}
@Override
public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache;
}
@Override @Override
protected float getGravity() { protected float getGravity() {
return 0.05F; return 0.05F;

View file

@ -103,6 +103,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
public ProjectileEntity(EntityType<? extends ProjectileEntity> p_i50159_1_, Level p_i50159_2_) { public ProjectileEntity(EntityType<? extends ProjectileEntity> p_i50159_1_, Level p_i50159_2_) {
super(p_i50159_1_, p_i50159_2_); super(p_i50159_1_, p_i50159_2_);
this.noCulling = true;
} }
public ProjectileEntity(Level level) { public ProjectileEntity(Level level) {

View file

@ -50,6 +50,7 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEnti
public RgoGrenadeEntity(EntityType<? extends RgoGrenadeEntity> type, Level world) { public RgoGrenadeEntity(EntityType<? extends RgoGrenadeEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public RgoGrenadeEntity(LivingEntity entity, Level level, int fuse) { public RgoGrenadeEntity(LivingEntity entity, Level level, int fuse) {

View file

@ -60,6 +60,7 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit
public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, Level world) { public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
public RpgRocketEntity(LivingEntity entity, Level level, float damage, float explosion_damage, float explosion_radius) { public RpgRocketEntity(LivingEntity entity, Level level, float damage, float explosion_damage, float explosion_radius) {

View file

@ -1,8 +1,11 @@
package com.atsuishio.superbwarfare.entity.projectile; package com.atsuishio.superbwarfare.entity.projectile;
import com.atsuishio.superbwarfare.init.*;
import com.atsuishio.superbwarfare.network.message.ClientIndicatorMessage;
import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.ModUtils;
import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModEntities;
import com.atsuishio.superbwarfare.init.ModMobEffects;
import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.network.message.ClientIndicatorMessage;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientGamePacketListener;
@ -19,6 +22,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.AbstractArrow; import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.projectile.ItemSupplier; import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BellBlock; import net.minecraft.world.level.block.BellBlock;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
@ -30,18 +34,24 @@ import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PacketDistributor; import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.PlayMessages; import net.minecraftforge.network.PlayMessages;
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;
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) @OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSupplier { public class TaserBulletProjectileEntity extends AbstractArrow implements GeoEntity {
private float damage = 1f; private float damage = 1f;
private int volt = 0; private int volt = 0;
private int wireLength = 0; private int wireLength = 0;
private boolean stop = false; private boolean stop = false;
public static final ItemStack PROJECTILE_ITEM = new ItemStack(ModItems.TASER_ELECTRODE.get()); public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.AIR);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level world) { public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level world) {
super(ModEntities.TASER_BULLET_PROJECTILE.get(), world); super(ModEntities.TASER_BULLET_PROJECTILE.get(), world);
this.pickup = AbstractArrow.Pickup.DISALLOWED;
} }
public TaserBulletProjectileEntity(LivingEntity entity, Level level, float damage, int volt, int wireLength) { public TaserBulletProjectileEntity(LivingEntity entity, Level level, float damage, int volt, int wireLength) {
@ -53,6 +63,7 @@ public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSu
public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, Level world) { public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, Level world) {
super(type, world); super(type, world);
this.noCulling = true;
} }
@Override @Override
@ -60,23 +71,11 @@ public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSu
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
} }
@Override
@OnlyIn(Dist.CLIENT)
public ItemStack getItem() {
return PROJECTILE_ITEM;
}
@Override @Override
protected ItemStack getPickupItem() { protected ItemStack getPickupItem() {
return PROJECTILE_ITEM; return PROJECTILE_ITEM;
} }
@Override
protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override @Override
protected void onHitEntity(EntityHitResult result) { protected void onHitEntity(EntityHitResult result) {
Entity entity = result.getEntity(); Entity entity = result.getEntity();
@ -127,5 +126,14 @@ public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSu
this.discard(); this.discard();
} }
} }
@Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
}
@Override
public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache;
}
} }

View file

@ -23,7 +23,7 @@ public class ModEntityRenderers {
event.registerEntityRenderer(ModEntities.PROJECTILE.get(), ProjectileEntityRenderer::new); event.registerEntityRenderer(ModEntities.PROJECTILE.get(), ProjectileEntityRenderer::new);
event.registerEntityRenderer(ModEntities.MK_42.get(), Mk42Renderer::new); event.registerEntityRenderer(ModEntities.MK_42.get(), Mk42Renderer::new);
event.registerEntityRenderer(ModEntities.DRONE.get(), DroneRenderer::new); event.registerEntityRenderer(ModEntities.DRONE.get(), DroneRenderer::new);
event.registerEntityRenderer(ModEntities.HAND_GRENADE_ENTITY.get(), HandGrenadeEntityRenderer::new); event.registerEntityRenderer(ModEntities.HAND_GRENADE_ENTITY.get(), HandGrenadeRenderer::new);
event.registerEntityRenderer(ModEntities.RGO_GRENADE.get(), RgoGrenadeRenderer::new); event.registerEntityRenderer(ModEntities.RGO_GRENADE.get(), RgoGrenadeRenderer::new);
event.registerEntityRenderer(ModEntities.MLE_1934.get(), Mle1934Renderer::new); event.registerEntityRenderer(ModEntities.MLE_1934.get(), Mle1934Renderer::new);
event.registerEntityRenderer(ModEntities.JAVELIN_MISSILE.get(), JavelinMissileRenderer::new); event.registerEntityRenderer(ModEntities.JAVELIN_MISSILE.get(), JavelinMissileRenderer::new);

View file

@ -1,21 +0,0 @@
package com.atsuishio.superbwarfare.init;
import com.atsuishio.superbwarfare.client.model.entity.ModelGrenade;
import com.atsuishio.superbwarfare.client.model.entity.ModelHandGrenade;
import com.atsuishio.superbwarfare.client.model.entity.ModelMortarShell;
import com.atsuishio.superbwarfare.client.model.entity.ModelTaserRod;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = {Dist.CLIENT})
public class ModModels {
@SubscribeEvent
public static void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) {
event.registerLayerDefinition(ModelMortarShell.LAYER_LOCATION, ModelMortarShell::createBodyLayer);
event.registerLayerDefinition(ModelTaserRod.LAYER_LOCATION, ModelTaserRod::createBodyLayer);
event.registerLayerDefinition(ModelGrenade.LAYER_LOCATION, ModelGrenade::createBodyLayer);
event.registerLayerDefinition(ModelHandGrenade.LAYER_LOCATION, ModelHandGrenade::createBodyLayer);
}
}

View file

@ -3,7 +3,7 @@
"animations": { "animations": {
"animation.jvm.idle": { "animation.jvm.idle": {
"loop": "hold_on_last_frame", "loop": "hold_on_last_frame",
"animation_length": 10, "animation_length": 10.1,
"bones": { "bones": {
"wing1": { "wing1": {
"rotation": { "rotation": {
@ -82,6 +82,122 @@
"0.2667": [0, 0, 0], "0.2667": [0, 0, 0],
"0.3167": [0, 105, 0] "0.3167": [0, 105, 0]
} }
},
"flare": {
"scale": {
"0.0": [0, 0, 0],
"0.3333": [0, 0, 0],
"0.3833": [1.5, 1.5, 1.5],
"0.4": [1, 1, 1],
"0.5333": [1.07048, 1.07048, 1.07048],
"0.6167": [1.1, 1.1, 1.1],
"0.8": [0.99564, 0.99564, 0.99564],
"0.8833": [0.95632, 0.95632, 0.95632],
"0.9": [0.955, 0.955, 0.955],
"1.1167": [1.01085, 1.01085, 1.01085],
"1.2833": [1.05, 1.05, 1.05],
"1.5": [1.0079, 1.0079, 1.0079],
"1.7": [0.97, 0.97, 0.97],
"1.9167": [1.005, 1.005, 1.005],
"2.1333": [1.04, 1.04, 1.04],
"2.2833": [0.97737, 0.97737, 0.97737],
"2.3667": [0.955, 0.955, 0.955],
"2.5833": [1.01085, 1.01085, 1.01085],
"2.75": [1.05, 1.05, 1.05],
"2.9667": [1.0079, 1.0079, 1.0079],
"3.1667": [0.97, 0.97, 0.97],
"3.3833": [1.005, 1.005, 1.005],
"3.6": [1.04, 1.04, 1.04],
"3.6833": [1.00185, 1.00185, 1.00185],
"3.7333": [0.95134, 0.95134, 0.95134],
"3.75": [0.94107, 0.94107, 0.94107],
"3.7667": [0.94129, 0.94129, 0.94129],
"3.7833": [0.955, 0.955, 0.955],
"3.8": [0.96853, 0.96853, 0.96853],
"4.0167": [1.00672, 1.00672, 1.00672],
"4.1333": [1.02876, 1.02876, 1.02876],
"4.15": [1.03647, 1.03647, 1.03647],
"4.1667": [1.05, 1.05, 1.05],
"4.1833": [1.06006, 1.06006, 1.06006],
"4.4": [1.00033, 1.00033, 1.00033],
"4.5333": [0.9592, 0.9592, 0.9592],
"4.5667": [0.95994, 0.95994, 0.95994],
"4.5833": [0.97, 0.97, 0.97],
"4.6": [0.98259, 0.98259, 0.98259],
"4.8167": [1.00534, 1.00534, 1.00534],
"4.9833": [1.02089, 1.02089, 1.02089],
"5.0": [1.02741, 1.02741, 1.02741],
"5.0167": [1.04, 1.04, 1.04],
"5.0333": [1.05377, 1.05377, 1.05377],
"5.25": [1.05274, 1.05274, 1.05274],
"5.3667": [1.04, 1.04, 1.04],
"5.45": [1.00185, 1.00185, 1.00185],
"5.5": [0.95134, 0.95134, 0.95134],
"5.5167": [0.94107, 0.94107, 0.94107],
"5.5333": [0.94129, 0.94129, 0.94129],
"5.55": [0.955, 0.955, 0.955],
"5.5667": [0.96853, 0.96853, 0.96853],
"5.7833": [1.00672, 1.00672, 1.00672],
"5.9": [1.02876, 1.02876, 1.02876],
"5.9167": [1.03647, 1.03647, 1.03647],
"5.9333": [1.05, 1.05, 1.05],
"5.95": [1.06006, 1.06006, 1.06006],
"6.1667": [1.00033, 1.00033, 1.00033],
"6.3": [0.9592, 0.9592, 0.9592],
"6.3333": [0.95994, 0.95994, 0.95994],
"6.35": [0.97, 0.97, 0.97],
"6.3667": [0.98259, 0.98259, 0.98259],
"6.5833": [1.00534, 1.00534, 1.00534],
"6.75": [1.02089, 1.02089, 1.02089],
"6.7667": [1.02741, 1.02741, 1.02741],
"6.7833": [1.04, 1.04, 1.04],
"6.8": [1.05562, 1.05562, 1.05562],
"7.0": [1.04056, 1.04056, 1.04056],
"7.0167": [1.04, 1.04, 1.04],
"7.1": [1.00185, 1.00185, 1.00185],
"7.15": [0.95134, 0.95134, 0.95134],
"7.1667": [0.94107, 0.94107, 0.94107],
"7.1833": [0.94129, 0.94129, 0.94129],
"7.2": [0.955, 0.955, 0.955],
"7.2167": [0.96853, 0.96853, 0.96853],
"7.4333": [1.00672, 1.00672, 1.00672],
"7.55": [1.02876, 1.02876, 1.02876],
"7.5667": [1.03647, 1.03647, 1.03647],
"7.5833": [1.05, 1.05, 1.05],
"7.6": [1.06006, 1.06006, 1.06006],
"7.8167": [1.00033, 1.00033, 1.00033],
"7.95": [0.9592, 0.9592, 0.9592],
"7.9833": [0.95994, 0.95994, 0.95994],
"8.0": [0.97, 0.97, 0.97],
"8.0167": [0.98259, 0.98259, 0.98259],
"8.2333": [1.00534, 1.00534, 1.00534],
"8.4": [1.02089, 1.02089, 1.02089],
"8.4167": [1.02741, 1.02741, 1.02741],
"8.4333": [1.04, 1.04, 1.04],
"8.45": [1.05529, 1.05529, 1.05529],
"8.6667": [1.04055, 1.04055, 1.04055],
"8.6833": [1.04, 1.04, 1.04],
"8.7667": [1.00185, 1.00185, 1.00185],
"8.8167": [0.95134, 0.95134, 0.95134],
"8.8333": [0.94107, 0.94107, 0.94107],
"8.85": [0.94129, 0.94129, 0.94129],
"8.8667": [0.955, 0.955, 0.955],
"8.8833": [0.96853, 0.96853, 0.96853],
"9.1": [1.00672, 1.00672, 1.00672],
"9.2167": [1.02876, 1.02876, 1.02876],
"9.2333": [1.03647, 1.03647, 1.03647],
"9.25": [1.05, 1.05, 1.05],
"9.2667": [1.06006, 1.06006, 1.06006],
"9.4833": [1.00033, 1.00033, 1.00033],
"9.6167": [0.9592, 0.9592, 0.9592],
"9.65": [0.95994, 0.95994, 0.95994],
"9.6667": [0.97, 0.97, 0.97],
"9.6833": [0.98259, 0.98259, 0.98259],
"9.9": [1.00534, 1.00534, 1.00534],
"10.0667": [1.02089, 1.02089, 1.02089],
"10.0833": [1.02741, 1.02741, 1.02741],
"10.1": [1.04, 1.04, 1.04]
}
} }
} }
} }

View file

@ -1,9 +0,0 @@
{
"format_version": "1.8.0",
"animations": {
"animation.rgo_grenade.idle": {
"loop": true
}
},
"geckolib_format_version": 2
}

View file

@ -7,101 +7,114 @@
"bones": { "bones": {
"wing1": { "wing1": {
"rotation": { "rotation": {
"0.2417": { "0.2417": [0, 0, 0],
"vector": [0, 0, 0] "0.6": [0, 67.5, 0]
},
"0.6": {
"vector": [0, 67.5, 0],
"easing": "easeInElastic"
}
} }
}, },
"wing2": { "wing2": {
"rotation": { "rotation": {
"0.2417": { "0.2417": [0, 0, 0],
"vector": [0, 0, 0] "0.6": [0, 67.5, 0]
},
"0.6": {
"vector": [0, 67.5, 0],
"easing": "easeInElastic"
}
} }
}, },
"wing3": { "wing3": {
"rotation": { "rotation": {
"0.2417": { "0.2417": [0, 0, 0],
"vector": [0, 0, 0] "0.6": [0, 67.5, 0]
},
"0.6": {
"vector": [0, 67.5, 0],
"easing": "easeInElastic"
}
} }
}, },
"wing4": { "wing4": {
"rotation": { "rotation": {
"0.2417": { "0.2417": [0, 0, 0],
"vector": [0, 0, 0] "0.6": [0, 67.5, 0]
},
"0.6": {
"vector": [0, 67.5, 0],
"easing": "easeInElastic"
}
} }
}, },
"wing5": { "wing5": {
"rotation": { "rotation": {
"0.2417": { "0.2417": [0, 0, 0],
"vector": [0, 0, 0] "0.6": [0, 67.5, 0]
},
"0.6": {
"vector": [0, 67.5, 0],
"easing": "easeInElastic"
}
} }
}, },
"wing6": { "wing6": {
"rotation": { "rotation": {
"0.2417": { "0.2417": [0, 0, 0],
"vector": [0, 0, 0] "0.6": [0, 67.5, 0]
},
"0.6": {
"vector": [0, 67.5, 0],
"easing": "easeInElastic"
}
} }
}, },
"wing7": { "wing7": {
"rotation": { "rotation": {
"0.2417": { "0.2417": [0, 0, 0],
"vector": [0, 0, 0] "0.6": [0, 67.5, 0]
},
"0.6": {
"vector": [0, 67.5, 0],
"easing": "easeInElastic"
}
} }
}, },
"wing8": { "wing8": {
"rotation": { "rotation": {
"0.2417": { "0.2417": [0, 0, 0],
"vector": [0, 0, 0] "0.6": [0, 67.5, 0]
},
"0.6": {
"vector": [0, 67.5, 0],
"easing": "easeInElastic"
}
} }
}, },
"body": { "body": {
"rotation": { "rotation": {
"0.0": { "0.0": [0, 0, 0],
"vector": [0, 0, 0] "6.0": [0, 10800, 0]
}, }
"6.0": { },
"vector": [0, 10800, 0], "flare": {
"easing": "easeInSine" "scale": {
} "0.0": [0, 0, 0],
"0.5": [0, 0, 0],
"0.5417": [1.5, 1.5, 1.5],
"0.5667": [1, 1, 1],
"0.675": [1.05, 1.05, 1.05],
"0.7833": [1.1, 1.1, 1.1],
"0.8917": [1.05121, 1.05121, 1.05121],
"1.0": [0.97056, 0.97056, 0.97056],
"1.0583": [0.955, 0.955, 0.955],
"1.1667": [0.97562, 0.97562, 0.97562],
"1.275": [1.01085, 1.01085, 1.01085],
"1.3833": [1.04249, 1.04249, 1.04249],
"1.4417": [1.05, 1.05, 1.05],
"1.55": [1.03425, 1.03425, 1.03425],
"1.6583": [1.0079, 1.0079, 1.0079],
"1.7667": [0.98218, 0.98218, 0.98218],
"1.8583": [0.97, 0.97, 0.97],
"1.9667": [0.98318, 0.98318, 0.98318],
"2.075": [1.005, 1.005, 1.005],
"2.1833": [1.02682, 1.02682, 1.02682],
"2.2917": [1.04, 1.04, 1.04],
"2.4": [1.00495, 1.00495, 1.00495],
"2.5083": [0.95684, 0.95684, 0.95684],
"2.5333": [0.955, 0.955, 0.955],
"2.6417": [0.97562, 0.97562, 0.97562],
"2.75": [1.01085, 1.01085, 1.01085],
"2.8583": [1.04249, 1.04249, 1.04249],
"2.9167": [1.05, 1.05, 1.05],
"3.025": [1.03425, 1.03425, 1.03425],
"3.1333": [1.0079, 1.0079, 1.0079],
"3.2417": [0.98218, 0.98218, 0.98218],
"3.3333": [0.97, 0.97, 0.97],
"3.4417": [0.98318, 0.98318, 0.98318],
"3.55": [1.005, 1.005, 1.005],
"3.6583": [1.02682, 1.02682, 1.02682],
"3.7667": [1.04, 1.04, 1.04],
"3.875": [0.97636, 0.97636, 0.97636],
"3.9167": [0.94107, 0.94107, 0.94107],
"3.95": [0.955, 0.955, 0.955],
"4.0583": [0.99318, 0.99318, 0.99318],
"4.1667": [1.00498, 1.00498, 1.00498],
"4.275": [1.02112, 1.02112, 1.02112],
"4.325": [1.04197, 1.04197, 1.04197],
"4.3333": [1.05, 1.05, 1.05],
"4.4417": [1.04664, 1.04664, 1.04664],
"4.55": [1.00677, 1.00677, 1.00677],
"4.6583": [0.96833, 0.96833, 0.96833],
"4.7333": [0.95994, 0.95994, 0.95994],
"4.75": [0.97, 0.97, 0.97],
"4.8583": [1.00099, 1.00099, 1.00099],
"4.9667": [1.005, 1.005, 1.005],
"5.075": [1.00901, 1.00901, 1.00901],
"5.1667": [1.02741, 1.02741, 1.02741],
"5.1833": [1.04, 1.04, 1.04]
} }
} }
} }

View file

@ -0,0 +1,270 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.hand_grenade - Converted",
"texture_width": 16,
"texture_height": 16,
"visible_bounds_width": 2,
"visible_bounds_height": 1.5,
"visible_bounds_offset": [0, 0.25, 0]
},
"bones": [
{
"name": "bone",
"pivot": [0, 24.02167, 0.48829]
},
{
"name": "body",
"parent": "bone",
"pivot": [0, 1.62167, -1.16171],
"rotation": [90, 0, 0],
"cubes": [
{
"origin": [-0.4375, 0.89764, -2.1875],
"size": [0.875, 0.3, 1.075],
"uv": {
"north": {"uv": [7, 9], "uv_size": [0, 0]},
"east": {"uv": [6, 9], "uv_size": [1, 0]},
"south": {"uv": [8, 9], "uv_size": [0, 0]},
"west": {"uv": [7, 9], "uv_size": [1, 0]},
"up": {"uv": [7, 8], "uv_size": [0, 1]},
"down": {"uv": [7, 9], "uv_size": [0, -1]}
}
},
{
"origin": [-0.45, 1.2, -2.25],
"size": [0.9, 0.85, 1.35],
"uv": {
"north": {"uv": [12, 14], "uv_size": [0, 0]},
"east": {"uv": [11, 14], "uv_size": [1, 0]},
"south": {"uv": [13, 14], "uv_size": [0, 0]},
"west": {"uv": [12, 14], "uv_size": [1, 0]},
"up": {"uv": [12, 13], "uv_size": [0, 1]},
"down": {"uv": [12, 14], "uv_size": [0, -1]}
}
},
{
"origin": [-0.45, 1.2, -0.9],
"size": [0.9, 0.85, 0.3],
"uv": {
"north": {"uv": [13, 14], "uv_size": [0, 0]},
"east": {"uv": [13, 14], "uv_size": [0, 0]},
"south": {"uv": [13, 14], "uv_size": [0, 0]},
"west": {"uv": [13, 14], "uv_size": [0, 0]},
"up": {"uv": [13, 14], "uv_size": [0, 0]},
"down": {"uv": [13, 14], "uv_size": [0, 0]}
}
},
{
"origin": [-0.45, 1.2, -0.6],
"size": [0.9, 0.35, 0.3],
"uv": {
"north": {"uv": [12, 15], "uv_size": [0, 0]},
"east": {"uv": [12, 15], "uv_size": [0, 0]},
"south": {"uv": [12, 15], "uv_size": [0, 0]},
"west": {"uv": [12, 15], "uv_size": [0, 0]},
"up": {"uv": [12, 15], "uv_size": [0, 0]},
"down": {"uv": [12, 15], "uv_size": [0, 0]}
}
},
{
"origin": [-0.45, 1.55, -0.6],
"size": [0.9, 0.3, 0.2],
"uv": {
"north": {"uv": [11, 13], "uv_size": [1, 1]},
"east": {"uv": [11, 13], "uv_size": [1, 1]},
"south": {"uv": [11, 13], "uv_size": [1, 1]},
"west": {"uv": [11, 13], "uv_size": [1, 1]},
"up": {"uv": [12, 14], "uv_size": [-1, -1]},
"down": {"uv": [12, 14], "uv_size": [-1, -1]}
}
},
{
"origin": [-0.45, 1.07737, -2.06648],
"size": [0.9, 0.93906, 0.35078],
"pivot": [1, 0.67737, -2.46648],
"rotation": [22.5, 0, 0],
"uv": {
"north": {"uv": [12, 14], "uv_size": [0, 0]},
"east": {"uv": [12, 14], "uv_size": [0, 0]},
"south": {"uv": [12, 14], "uv_size": [0, 0]},
"west": {"uv": [12, 14], "uv_size": [0, 0]},
"up": {"uv": [12, 14], "uv_size": [0, 0]},
"down": {"uv": [12, 14], "uv_size": [0, 0]}
}
},
{
"origin": [-0.5, 2.05, -2.75],
"size": [1, 0.2, 2.2],
"uv": {
"north": {"uv": [11, 15], "uv_size": [1, 0]},
"east": {"uv": [9, 15], "uv_size": [2, 1]},
"south": {"uv": [14, 15], "uv_size": [1, 0]},
"west": {"uv": [12, 15], "uv_size": [2, 0]},
"up": {"uv": [11, 13], "uv_size": [1, 2]},
"down": {"uv": [12, 15], "uv_size": [1, -2]}
}
},
{
"origin": [-0.5, 0.61466, -0.54406],
"size": [1, 1, 0.2],
"pivot": [1, 1.41466, -2.04406],
"rotation": [22.5, 0, 0],
"uv": {
"north": {"uv": [12, 13], "uv_size": [1, 1]},
"east": {"uv": [9, 15], "uv_size": [1, 1]},
"south": {"uv": [12, 14], "uv_size": [1, 1]},
"west": {"uv": [12, 14], "uv_size": [0, 1]},
"up": {"uv": [10, 16], "uv_size": [1, -1]},
"down": {"uv": [12, 14], "uv_size": [1, 0]}
}
}
]
},
{
"name": "bone2",
"parent": "body",
"pivot": [0, -0.40781, -27.37809],
"cubes": [
{
"origin": [-0.5375, -1.69764, -2.1875],
"size": [1.075, 2.59528, 1.075],
"pivot": [0, -0.4, -1.65],
"rotation": [0, 0, 45],
"uv": {
"north": {"uv": [11, 1], "uv_size": [1, 2]},
"east": {"uv": [10, 1], "uv_size": [1, 2]},
"south": {"uv": [13, 1], "uv_size": [1, 2]},
"west": {"uv": [12, 1], "uv_size": [1, 2]},
"up": {"uv": [11, 0], "uv_size": [1, 1]},
"down": {"uv": [12, 1], "uv_size": [1, -1]}
}
},
{
"origin": [-1.29764, -0.9375, -2.1875],
"size": [2.59528, 1.075, 1.075],
"pivot": [0, -0.4, -1.65],
"rotation": [0, 0, 45],
"uv": {
"north": {"uv": [1, 9], "uv_size": [2, 1]},
"east": {"uv": [0, 9], "uv_size": [1, 1]},
"south": {"uv": [4, 9], "uv_size": [2, 1]},
"west": {"uv": [3, 9], "uv_size": [1, 1]},
"up": {"uv": [1, 8], "uv_size": [2, 1]},
"down": {"uv": [3, 9], "uv_size": [2, -1]}
}
}
]
},
{
"name": "bone3",
"parent": "body",
"pivot": [0, -0.40781, -27.37809],
"cubes": [
{
"origin": [-0.5375, -1.69764, -2.1875],
"size": [1.075, 2.59528, 1.075],
"uv": {
"north": {"uv": [1, 11], "uv_size": [1, 2]},
"east": {"uv": [0, 11], "uv_size": [1, 2]},
"south": {"uv": [3, 11], "uv_size": [1, 2]},
"west": {"uv": [2, 11], "uv_size": [1, 2]},
"up": {"uv": [1, 10], "uv_size": [1, 1]},
"down": {"uv": [2, 11], "uv_size": [1, -1]}
}
},
{
"origin": [-0.5375, -1.69764, -2.1875],
"size": [1.075, 2.59528, 1.075],
"pivot": [0, -0.4, -1.65],
"rotation": [45, 0, 0],
"uv": {
"north": {"uv": [8, 10], "uv_size": [1, 2]},
"east": {"uv": [7, 10], "uv_size": [1, 2]},
"south": {"uv": [10, 10], "uv_size": [1, 2]},
"west": {"uv": [9, 10], "uv_size": [1, 2]},
"up": {"uv": [8, 9], "uv_size": [1, 1]},
"down": {"uv": [9, 10], "uv_size": [1, -1]}
}
},
{
"origin": [-0.5375, -0.9375, -2.94764],
"size": [1.075, 1.075, 2.59528],
"pivot": [0, -0.4, -1.65],
"rotation": [45, 0, 0],
"uv": {
"north": {"uv": [7, 3], "uv_size": [1, 1]},
"east": {"uv": [5, 3], "uv_size": [2, 1]},
"south": {"uv": [10, 3], "uv_size": [1, 1]},
"west": {"uv": [8, 3], "uv_size": [2, 1]},
"up": {"uv": [7, 1], "uv_size": [1, 2]},
"down": {"uv": [8, 3], "uv_size": [1, -2]}
}
}
]
},
{
"name": "bone175",
"parent": "body",
"pivot": [0, -0.40781, -27.37809],
"cubes": [
{
"origin": [-1.29764, -0.9375, -2.1875],
"size": [2.59528, 1.075, 1.075],
"uv": {
"north": {"uv": [8, 8], "uv_size": [2, 1]},
"east": {"uv": [7, 8], "uv_size": [1, 1]},
"south": {"uv": [11, 8], "uv_size": [2, 1]},
"west": {"uv": [10, 8], "uv_size": [1, 1]},
"up": {"uv": [8, 7], "uv_size": [2, 1]},
"down": {"uv": [10, 8], "uv_size": [2, -1]}
}
},
{
"origin": [-1.29764, -0.9375, -2.1875],
"size": [2.59528, 1.075, 1.075],
"pivot": [0, -0.4, -1.65],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [6, 6], "uv_size": [2, 1]},
"east": {"uv": [5, 6], "uv_size": [1, 1]},
"south": {"uv": [9, 6], "uv_size": [2, 1]},
"west": {"uv": [8, 6], "uv_size": [1, 1]},
"up": {"uv": [6, 5], "uv_size": [2, 1]},
"down": {"uv": [8, 6], "uv_size": [2, -1]}
}
},
{
"origin": [-0.5375, -0.9375, -2.94764],
"size": [1.075, 1.075, 2.59528],
"uv": {
"north": {"uv": [2, 6], "uv_size": [1, 1]},
"east": {"uv": [0, 6], "uv_size": [2, 1]},
"south": {"uv": [5, 6], "uv_size": [1, 1]},
"west": {"uv": [3, 6], "uv_size": [2, 1]},
"up": {"uv": [2, 4], "uv_size": [1, 2]},
"down": {"uv": [3, 6], "uv_size": [1, -2]}
}
},
{
"origin": [-0.5375, -0.9375, -2.94764],
"size": [1.075, 1.075, 2.59528],
"pivot": [0, -0.4, -1.65],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [2, 2], "uv_size": [1, 1]},
"east": {"uv": [0, 2], "uv_size": [2, 1]},
"south": {"uv": [5, 2], "uv_size": [1, 1]},
"west": {"uv": [3, 2], "uv_size": [2, 1]},
"up": {"uv": [2, 0], "uv_size": [1, 2]},
"down": {"uv": [3, 2], "uv_size": [1, -2]}
}
}
]
}
]
}
]
}

View file

@ -15,6 +15,113 @@
"name": "bone", "name": "bone",
"pivot": [0, 0, -0.11791] "pivot": [0, 0, -0.11791]
}, },
{
"name": "flare",
"parent": "bone",
"pivot": [0, -0.67, 0],
"cubes": [
{
"origin": [-23.45, -0.63, -1.05],
"size": [22.4, 0, 2.1],
"uv": {
"up": {"uv": [40, 64], "uv_size": [-36, -4]},
"down": {"uv": [40, 64], "uv_size": [-36, -4]}
}
},
{
"origin": [-34.65, -0.63, -1.05],
"size": [33.6, 0, 2.1],
"pivot": [0, 0, 0],
"rotation": [0, 90, 0],
"uv": {
"up": {"uv": [40, 64], "uv_size": [-36, -4]},
"down": {"uv": [40, 64], "uv_size": [-36, -4]}
}
},
{
"origin": [-23.45, -0.63, -1.05],
"size": [22.4, 0, 2.1],
"pivot": [0, 0, 0],
"rotation": [0, 180, 0],
"uv": {
"up": {"uv": [40, 64], "uv_size": [-36, -4]},
"down": {"uv": [40, 64], "uv_size": [-36, -4]}
}
},
{
"origin": [-22.4, 20.3, -1.4],
"size": [44.8, 0, 2.8],
"pivot": [0, 20.3, 0],
"rotation": [135, 0, 90],
"uv": {
"up": {"uv": [40, 64], "uv_size": [-36, -4]},
"down": {"uv": [40, 64], "uv_size": [-36, -4]}
}
},
{
"origin": [-22.4, 20.3, -1.4],
"size": [44.8, 0, 2.8],
"pivot": [0, 20.3, 0],
"rotation": [-135, 0, 90],
"uv": {
"up": {"uv": [40, 64], "uv_size": [-36, -4]},
"down": {"uv": [40, 64], "uv_size": [-36, -4]}
}
},
{
"origin": [-34.65, -0.63, -1.05],
"size": [33.6, 0, 2.1],
"pivot": [0, 0, 0],
"rotation": [0, -90, 0],
"uv": {
"up": {"uv": [40, 64], "uv_size": [-36, -4]},
"down": {"uv": [40, 64], "uv_size": [-36, -4]}
}
},
{
"origin": [-3.85, -0.63, -3.85],
"size": [7.7, 0, 7.7],
"pivot": [0, -0.63, 0],
"rotation": [0, -45, 0],
"uv": {
"north": {"uv": [4, 60], "uv_size": [4, 4]},
"east": {"uv": [4, 60], "uv_size": [4, 4]},
"south": {"uv": [4, 60], "uv_size": [4, 4]},
"west": {"uv": [4, 60], "uv_size": [4, 4]},
"up": {"uv": [8, 64], "uv_size": [-4, -4]},
"down": {"uv": [8, 64], "uv_size": [-4, -4]}
}
},
{
"origin": [-3.5, 1.82, -3.5],
"size": [7, 0, 7],
"pivot": [0, 1.82, 0],
"rotation": [90, -45, 0],
"uv": {
"north": {"uv": [4, 60], "uv_size": [4, 4]},
"east": {"uv": [4, 60], "uv_size": [4, 4]},
"south": {"uv": [4, 60], "uv_size": [4, 4]},
"west": {"uv": [4, 60], "uv_size": [4, 4]},
"up": {"uv": [8, 64], "uv_size": [-4, -4]},
"down": {"uv": [8, 64], "uv_size": [-4, -4]}
}
},
{
"origin": [-3.5, 1.82, -3.5],
"size": [7, 0, 7],
"pivot": [0, 1.82, 0],
"rotation": [90, 45, 0],
"uv": {
"north": {"uv": [4, 60], "uv_size": [4, 4]},
"east": {"uv": [4, 60], "uv_size": [4, 4]},
"south": {"uv": [4, 60], "uv_size": [4, 4]},
"west": {"uv": [4, 60], "uv_size": [4, 4]},
"up": {"uv": [8, 64], "uv_size": [-4, -4]},
"down": {"uv": [8, 64], "uv_size": [-4, -4]}
}
}
]
},
{ {
"name": "body", "name": "body",
"parent": "bone", "parent": "bone",

View file

@ -0,0 +1,689 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.unknown",
"texture_width": 64,
"texture_height": 64,
"visible_bounds_width": 103,
"visible_bounds_height": 102,
"visible_bounds_offset": [0, 1, 0]
},
"bones": [
{
"name": "bone",
"pivot": [0, 3, 0]
},
{
"name": "shell",
"parent": "bone",
"pivot": [0, 4.49255, -0.00105],
"rotation": [-180, 0, 0],
"cubes": [
{
"origin": [-0.40377, 4.34411, -0.19124],
"size": [0.80754, 3.14693, 1.16497],
"uv": {
"north": {"uv": [46, 24], "uv_size": [-1, 3]},
"east": {"uv": [46, 21], "uv_size": [-1, 3]},
"south": {"uv": [22, 45], "uv_size": [-1, 3]},
"west": {"uv": [46, 27], "uv_size": [-1, 3]},
"up": {"uv": [3, 51], "uv_size": [1, -1]},
"down": {"uv": [4, 50], "uv_size": [1, 1]}
}
},
{
"origin": [0.69683, 4.34411, -0.23246],
"size": [0.80754, 3.14693, 1.16497],
"pivot": [0.60006, 2.66391, 1.30687],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [46, 15], "uv_size": [-1, 3]},
"east": {"uv": [46, 12], "uv_size": [-1, 3]},
"south": {"uv": [46, 9], "uv_size": [-1, 3]},
"west": {"uv": [46, 18], "uv_size": [-1, 3]},
"up": {"uv": [50, 2], "uv_size": [1, -1]},
"down": {"uv": [2, 50], "uv_size": [1, 1]}
}
},
{
"origin": [1.15271, 4.34411, -0.33197],
"size": [0.80754, 3.14693, 1.16497],
"pivot": [0.84861, 2.66391, 0.70682],
"rotation": [0, 90, 0],
"uv": {
"north": {"uv": [46, 3], "uv_size": [-1, 3]},
"east": {"uv": [46, 0], "uv_size": [-1, 3]},
"south": {"uv": [45, 44], "uv_size": [-1, 3]},
"west": {"uv": [46, 6], "uv_size": [-1, 3]},
"up": {"uv": [50, 1], "uv_size": [1, -1]},
"down": {"uv": [1, 50], "uv_size": [1, 1]}
}
},
{
"origin": [0.69683, 4.34411, -0.43149],
"size": [0.80754, 3.14693, 1.16497],
"pivot": [0.60006, 2.66391, 0.10676],
"rotation": [0, 135, 0],
"uv": {
"north": {"uv": [45, 41], "uv_size": [-1, 3]},
"east": {"uv": [45, 38], "uv_size": [-1, 3]},
"south": {"uv": [37, 44], "uv_size": [-1, 3]},
"west": {"uv": [44, 44], "uv_size": [-1, 3]},
"up": {"uv": [49, 50], "uv_size": [1, -1]},
"down": {"uv": [0, 50], "uv_size": [1, 1]}
}
},
{
"origin": [-0.40377, 4.34411, -0.47271],
"size": [0.80754, 3.14693, 1.16497],
"pivot": [0, 2.66391, -0.14179],
"rotation": [0, -180, 0],
"uv": {
"north": {"uv": [35, 44], "uv_size": [-1, 3]},
"east": {"uv": [34, 44], "uv_size": [-1, 3]},
"south": {"uv": [33, 44], "uv_size": [-1, 3]},
"west": {"uv": [36, 44], "uv_size": [-1, 3]},
"up": {"uv": [49, 48], "uv_size": [1, -1]},
"down": {"uv": [49, 48], "uv_size": [1, 1]}
}
},
{
"origin": [-1.50436, 4.34411, -0.43149],
"size": [0.80754, 3.14693, 1.16497],
"pivot": [-0.60006, 2.66391, 0.10676],
"rotation": [0, -135, 0],
"uv": {
"north": {"uv": [28, 44], "uv_size": [-1, 3]},
"east": {"uv": [27, 44], "uv_size": [-1, 3]},
"south": {"uv": [26, 44], "uv_size": [-1, 3]},
"west": {"uv": [29, 44], "uv_size": [-1, 3]},
"up": {"uv": [49, 47], "uv_size": [1, -1]},
"down": {"uv": [47, 49], "uv_size": [1, 1]}
}
},
{
"origin": [-1.96025, 4.34411, -0.33197],
"size": [0.80754, 3.14693, 1.16497],
"pivot": [-0.84861, 2.66391, 0.70682],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [24, 44], "uv_size": [-1, 3]},
"east": {"uv": [21, 44], "uv_size": [-1, 3]},
"south": {"uv": [20, 44], "uv_size": [-1, 3]},
"west": {"uv": [25, 44], "uv_size": [-1, 3]},
"up": {"uv": [49, 45], "uv_size": [1, -1]},
"down": {"uv": [49, 45], "uv_size": [1, 1]}
}
},
{
"origin": [-1.50436, 4.34411, -0.23246],
"size": [0.80754, 3.14693, 1.16497],
"pivot": [-0.60006, 2.66391, 1.30687],
"rotation": [0, -45, 0],
"uv": {
"north": {"uv": [10, 44], "uv_size": [-1, 3]},
"east": {"uv": [44, 41], "uv_size": [-1, 3]},
"south": {"uv": [44, 38], "uv_size": [-1, 3]},
"west": {"uv": [19, 44], "uv_size": [-1, 3]},
"up": {"uv": [43, 50], "uv_size": [1, -1]},
"down": {"uv": [44, 49], "uv_size": [1, 1]}
}
},
{
"origin": [-0.3432, 3.33013, -0.16271],
"size": [0.68641, 4.67489, 0.99022],
"uv": {
"north": {"uv": [27.5, 47], "uv_size": [-0.5, 4.5]},
"east": {"uv": [8, 35], "uv_size": [-1, 4.5]},
"south": {"uv": [26.5, 47], "uv_size": [-0.5, 4.5]},
"west": {"uv": [9, 35], "uv_size": [-1, 4.5]},
"up": {"uv": [51, 38], "uv_size": [0.5, -1]},
"down": {"uv": [51, 38], "uv_size": [0.5, 1]}
}
},
{
"origin": [0.5923, 3.33013, -0.19774],
"size": [0.68641, 4.67489, 0.99022],
"pivot": [0.51005, 3.15196, 1.11068],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [25.5, 47], "uv_size": [-0.5, 4.5]},
"east": {"uv": [6, 35], "uv_size": [-1, 4.5]},
"south": {"uv": [47.5, 24], "uv_size": [-0.5, 4.5]},
"west": {"uv": [7, 35], "uv_size": [-1, 4.5]},
"up": {"uv": [51, 36], "uv_size": [0.5, -1]},
"down": {"uv": [51, 36], "uv_size": [0.5, 1]}
}
},
{
"origin": [0.9798, 3.33013, -0.28233],
"size": [0.68641, 4.67489, 0.99022],
"pivot": [0.72132, 3.15196, 0.60064],
"rotation": [0, 90, 0],
"uv": {
"north": {"uv": [24.5, 47], "uv_size": [-0.5, 4.5]},
"east": {"uv": [35, 18], "uv_size": [-1, 4.5]},
"south": {"uv": [23.5, 47], "uv_size": [-0.5, 4.5]},
"west": {"uv": [35, 30], "uv_size": [-1, 4.5]},
"up": {"uv": [51, 34], "uv_size": [0.5, -1]},
"down": {"uv": [51, 34], "uv_size": [0.5, 1]}
}
},
{
"origin": [0.5923, 3.33013, -0.36692],
"size": [0.68641, 4.67489, 0.99022],
"pivot": [0.51005, 3.15196, 0.09059],
"rotation": [0, 135, 0],
"uv": {
"north": {"uv": [20.5, 47], "uv_size": [-0.5, 4.5]},
"east": {"uv": [35, 8], "uv_size": [-1, 4.5]},
"south": {"uv": [47.5, 19], "uv_size": [-0.5, 4.5]},
"west": {"uv": [35, 13], "uv_size": [-1, 4.5]},
"up": {"uv": [51, 32], "uv_size": [0.5, -1]},
"down": {"uv": [51, 32], "uv_size": [0.5, 1]}
}
},
{
"origin": [-0.3432, 3.33013, -0.40196],
"size": [0.68641, 4.67489, 0.99022],
"pivot": [0, 3.15196, -0.12068],
"rotation": [0, -180, 0],
"uv": {
"north": {"uv": [19.5, 47], "uv_size": [-0.5, 4.5]},
"east": {"uv": [34, 18], "uv_size": [-1, 4.5]},
"south": {"uv": [18.5, 47], "uv_size": [-0.5, 4.5]},
"west": {"uv": [34, 30], "uv_size": [-1, 4.5]},
"up": {"uv": [51, 30], "uv_size": [0.5, -1]},
"down": {"uv": [51, 30], "uv_size": [0.5, 1]}
}
},
{
"origin": [-1.27871, 3.33013, -0.36692],
"size": [0.68641, 4.67489, 0.99022],
"pivot": [-0.51005, 3.15196, 0.09059],
"rotation": [0, -135, 0],
"uv": {
"north": {"uv": [17.5, 47], "uv_size": [-0.5, 4.5]},
"east": {"uv": [34, 8], "uv_size": [-1, 4.5]},
"south": {"uv": [16.5, 47], "uv_size": [-0.5, 4.5]},
"west": {"uv": [34, 13], "uv_size": [-1, 4.5]},
"up": {"uv": [51, 28], "uv_size": [0.5, -1]},
"down": {"uv": [51, 28], "uv_size": [0.5, 1]}
}
},
{
"origin": [-1.66621, 3.33013, -0.28233],
"size": [0.68641, 4.67489, 0.99022],
"pivot": [-0.72132, 3.15196, 0.60064],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [15.5, 47], "uv_size": [-0.5, 4.5]},
"east": {"uv": [33, 30], "uv_size": [-1, 4.5]},
"south": {"uv": [47.5, 14], "uv_size": [-0.5, 4.5]},
"west": {"uv": [32, 32], "uv_size": [-1, 4.5]},
"up": {"uv": [51, 26], "uv_size": [0.5, -1]},
"down": {"uv": [51, 26], "uv_size": [0.5, 1]}
}
},
{
"origin": [-1.27871, 3.33013, -0.19774],
"size": [0.68641, 4.67489, 0.99022],
"pivot": [-0.51005, 3.15196, 1.11068],
"rotation": [0, -45, 0],
"uv": {
"north": {"uv": [14.5, 47], "uv_size": [-0.5, 4.5]},
"east": {"uv": [30, 32], "uv_size": [-1, 4.5]},
"south": {"uv": [13.5, 47], "uv_size": [-0.5, 4.5]},
"west": {"uv": [31, 32], "uv_size": [-1, 4.5]},
"up": {"uv": [51, 24], "uv_size": [0.5, -1]},
"down": {"uv": [51, 24], "uv_size": [0.5, 1]}
}
},
{
"origin": [-0.29172, 2.43075, -0.13846],
"size": [0.58345, 5.87366, 0.84169],
"uv": {
"north": {"uv": [47.5, 0], "uv_size": [-0.5, 6]},
"east": {"uv": [33, 14], "uv_size": [-1, 6]},
"south": {"uv": [46.5, 42], "uv_size": [-0.5, 6]},
"west": {"uv": [33, 20], "uv_size": [-1, 6]},
"up": {"uv": [51, 51], "uv_size": [0.5, -1]},
"down": {"uv": [51, 51], "uv_size": [0.5, 1]}
}
},
{
"origin": [0.50346, 2.43075, -0.16824],
"size": [0.58345, 5.87366, 0.84169],
"pivot": [0.43354, 3.5293, 0.94392],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [46.5, 36], "uv_size": [-0.5, 6]},
"east": {"uv": [32, 26], "uv_size": [-1, 6]},
"south": {"uv": [31.5, 46], "uv_size": [-0.5, 6]},
"west": {"uv": [33, 8], "uv_size": [-1, 6]},
"up": {"uv": [51, 50], "uv_size": [0.5, -1]},
"down": {"uv": [50, 51], "uv_size": [0.5, 1]}
}
},
{
"origin": [0.83283, 2.43075, -0.24014],
"size": [0.58345, 5.87366, 0.84169],
"pivot": [0.61312, 3.5293, 0.51038],
"rotation": [0, 90, 0],
"uv": {
"north": {"uv": [46.5, 30], "uv_size": [-0.5, 6]},
"east": {"uv": [32, 14], "uv_size": [-1, 6]},
"south": {"uv": [30.5, 46], "uv_size": [-0.5, 6]},
"west": {"uv": [32, 20], "uv_size": [-1, 6]},
"up": {"uv": [51, 48], "uv_size": [0.5, -1]},
"down": {"uv": [51, 48], "uv_size": [0.5, 1]}
}
},
{
"origin": [0.50346, 2.43075, -0.31204],
"size": [0.58345, 5.87366, 0.84169],
"pivot": [0.43354, 3.5293, 0.07684],
"rotation": [0, 135, 0],
"uv": {
"north": {"uv": [29.5, 46], "uv_size": [-0.5, 6]},
"east": {"uv": [31, 26], "uv_size": [-1, 6]},
"south": {"uv": [46.5, 24], "uv_size": [-0.5, 6]},
"west": {"uv": [32, 8], "uv_size": [-1, 6]},
"up": {"uv": [51, 46], "uv_size": [0.5, -1]},
"down": {"uv": [51, 46], "uv_size": [0.5, 1]}
}
},
{
"origin": [-0.29172, 2.43075, -0.34182],
"size": [0.58345, 5.87366, 0.84169],
"pivot": [0, 3.5293, -0.10273],
"rotation": [0, -180, 0],
"uv": {
"north": {"uv": [22.5, 46], "uv_size": [-0.5, 6]},
"east": {"uv": [31, 20], "uv_size": [-1, 6]},
"south": {"uv": [46.5, 18], "uv_size": [-0.5, 6]},
"west": {"uv": [22, 30], "uv_size": [-1, 6]},
"up": {"uv": [51, 44], "uv_size": [0.5, -1]},
"down": {"uv": [51, 44], "uv_size": [0.5, 1]}
}
},
{
"origin": [-1.0869, 2.43075, -0.31204],
"size": [0.58345, 5.87366, 0.84169],
"pivot": [-0.43354, 3.5293, 0.07684],
"rotation": [0, -135, 0],
"uv": {
"north": {"uv": [46.5, 12], "uv_size": [-0.5, 6]},
"east": {"uv": [31, 8], "uv_size": [-1, 6]},
"south": {"uv": [46.5, 6], "uv_size": [-0.5, 6]},
"west": {"uv": [31, 14], "uv_size": [-1, 6]},
"up": {"uv": [42, 52], "uv_size": [0.5, -1]},
"down": {"uv": [51, 42], "uv_size": [0.5, 1]}
}
},
{
"origin": [-1.41628, 2.43075, -0.24014],
"size": [0.58345, 5.87366, 0.84169],
"pivot": [-0.61312, 3.5293, 0.51038],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [46.5, 0], "uv_size": [-0.5, 6]},
"east": {"uv": [30, 20], "uv_size": [-1, 6]},
"south": {"uv": [45.5, 44], "uv_size": [-0.5, 6]},
"west": {"uv": [30, 26], "uv_size": [-1, 6]},
"up": {"uv": [51, 41], "uv_size": [0.5, -1]},
"down": {"uv": [51, 41], "uv_size": [0.5, 1]}
}
},
{
"origin": [-1.0869, 2.43075, -0.16824],
"size": [0.58345, 5.87366, 0.84169],
"pivot": [-0.43354, 3.5293, 0.94392],
"rotation": [0, -45, 0],
"uv": {
"north": {"uv": [42.5, 45], "uv_size": [-0.5, 6]},
"east": {"uv": [30, 8], "uv_size": [-1, 6]},
"south": {"uv": [45.5, 38], "uv_size": [-0.5, 6]},
"west": {"uv": [30, 14], "uv_size": [-1, 6]},
"up": {"uv": [39, 52], "uv_size": [0.5, -1]},
"down": {"uv": [51, 39], "uv_size": [0.5, 1]}
}
},
{
"origin": [-0.23046, 1.29748, -0.1096],
"size": [0.46092, 7.39019, 0.66493],
"uv": {
"north": {"uv": [42.5, 8], "uv_size": [-0.5, 7.5]},
"east": {"uv": [4.5, 42], "uv_size": [-0.5, 7.5]},
"south": {"uv": [3.5, 42], "uv_size": [-0.5, 7.5]},
"west": {"uv": [42.5, 16], "uv_size": [-0.5, 7.5]},
"up": {"uv": [18, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 18], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [0.39773, 1.29748, -0.13313],
"size": [0.46092, 7.39019, 0.66493],
"pivot": [0.3425, 3.91534, 0.74548],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [1.5, 42], "uv_size": [-0.5, 7.5]},
"east": {"uv": [42.5, 0], "uv_size": [-0.5, 7.5]},
"south": {"uv": [0.5, 42], "uv_size": [-0.5, 7.5]},
"west": {"uv": [2.5, 42], "uv_size": [-0.5, 7.5]},
"up": {"uv": [17, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 17], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [0.65794, 1.29748, -0.18993],
"size": [0.46092, 7.39019, 0.66493],
"pivot": [0.48436, 3.91534, 0.40298],
"rotation": [0, 90, 0],
"uv": {
"north": {"uv": [39.5, 41], "uv_size": [-0.5, 7.5]},
"east": {"uv": [38.5, 41], "uv_size": [-0.5, 7.5]},
"south": {"uv": [41.5, 32], "uv_size": [-0.5, 7.5]},
"west": {"uv": [41.5, 40], "uv_size": [-0.5, 7.5]},
"up": {"uv": [16, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 16], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [0.39773, 1.29748, -0.24673],
"size": [0.46092, 7.39019, 0.66493],
"pivot": [0.3425, 3.91534, 0.06049],
"rotation": [0, 135, 0],
"uv": {
"north": {"uv": [41.5, 16], "uv_size": [-0.5, 7.5]},
"east": {"uv": [41.5, 8], "uv_size": [-0.5, 7.5]},
"south": {"uv": [41.5, 0], "uv_size": [-0.5, 7.5]},
"west": {"uv": [41.5, 24], "uv_size": [-0.5, 7.5]},
"up": {"uv": [15, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 15], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.23046, 1.29748, -0.27026],
"size": [0.46092, 7.39019, 0.66493],
"pivot": [0, 3.91534, -0.08138],
"rotation": [0, -180, 0],
"uv": {
"north": {"uv": [37.5, 40], "uv_size": [-0.5, 7.5]},
"east": {"uv": [40.5, 32], "uv_size": [-0.5, 7.5]},
"south": {"uv": [40.5, 24], "uv_size": [-0.5, 7.5]},
"west": {"uv": [40.5, 40], "uv_size": [-0.5, 7.5]},
"up": {"uv": [14, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 14], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.85865, 1.29748, -0.24673],
"size": [0.46092, 7.39019, 0.66493],
"pivot": [-0.3425, 3.91534, 0.06049],
"rotation": [0, -135, 0],
"uv": {
"north": {"uv": [40.5, 8], "uv_size": [-0.5, 7.5]},
"east": {"uv": [8.5, 40], "uv_size": [-0.5, 7.5]},
"south": {"uv": [7.5, 40], "uv_size": [-0.5, 7.5]},
"west": {"uv": [40.5, 16], "uv_size": [-0.5, 7.5]},
"up": {"uv": [13, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 13], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-1.11886, 1.29748, -0.18993],
"size": [0.46092, 7.39019, 0.66493],
"pivot": [-0.48436, 3.91534, 0.40298],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [5.5, 40], "uv_size": [-0.5, 7.5]},
"east": {"uv": [40.5, 0], "uv_size": [-0.5, 7.5]},
"south": {"uv": [39.5, 33], "uv_size": [-0.5, 7.5]},
"west": {"uv": [6.5, 40], "uv_size": [-0.5, 7.5]},
"up": {"uv": [12, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 12], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.85865, 1.29748, -0.13313],
"size": [0.46092, 7.39019, 0.66493],
"pivot": [-0.3425, 3.91534, 0.74548],
"rotation": [0, -45, 0],
"uv": {
"north": {"uv": [39.5, 8], "uv_size": [-0.5, 7.5]},
"east": {"uv": [39.5, 0], "uv_size": [-0.5, 7.5]},
"south": {"uv": [38.5, 33], "uv_size": [-0.5, 7.5]},
"west": {"uv": [39.5, 16], "uv_size": [-0.5, 7.5]},
"up": {"uv": [11, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 11], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.16568, 0.64242, -0.07909],
"size": [0.33136, 8.45031, 0.47802],
"uv": {
"north": {"uv": [17.5, 38], "uv_size": [-0.5, 8.5]},
"east": {"uv": [16.5, 38], "uv_size": [-0.5, 8.5]},
"south": {"uv": [15.5, 38], "uv_size": [-0.5, 8.5]},
"west": {"uv": [38.5, 22], "uv_size": [-0.5, 8.5]},
"up": {"uv": [26, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 26], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [0.28593, 0.64242, -0.096],
"size": [0.33136, 8.45031, 0.47802],
"pivot": [0.24622, 4.2744, 0.53563],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [38.5, 13], "uv_size": [-0.5, 8.5]},
"east": {"uv": [13.5, 38], "uv_size": [-0.5, 8.5]},
"south": {"uv": [12.5, 38], "uv_size": [-0.5, 8.5]},
"west": {"uv": [14.5, 38], "uv_size": [-0.5, 8.5]},
"up": {"uv": [25, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 25], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [0.47299, 0.64242, -0.13684],
"size": [0.33136, 8.45031, 0.47802],
"pivot": [0.34821, 4.2744, 0.28941],
"rotation": [0, 90, 0],
"uv": {
"north": {"uv": [10.5, 38], "uv_size": [-0.5, 8.5]},
"east": {"uv": [38.5, 4], "uv_size": [-0.5, 8.5]},
"south": {"uv": [37.5, 31], "uv_size": [-0.5, 8.5]},
"west": {"uv": [11.5, 38], "uv_size": [-0.5, 8.5]},
"up": {"uv": [24, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 24], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [0.28593, 0.64242, -0.17767],
"size": [0.33136, 8.45031, 0.47802],
"pivot": [0.24622, 4.2744, 0.04319],
"rotation": [0, 135, 0],
"uv": {
"north": {"uv": [30.5, 37], "uv_size": [-0.5, 8.5]},
"east": {"uv": [29.5, 37], "uv_size": [-0.5, 8.5]},
"south": {"uv": [37.5, 22], "uv_size": [-0.5, 8.5]},
"west": {"uv": [31.5, 37], "uv_size": [-0.5, 8.5]},
"up": {"uv": [23, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 23], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.16568, 0.64242, -0.19459],
"size": [0.33136, 8.45031, 0.47802],
"pivot": [0, 4.2744, -0.0588],
"rotation": [0, -180, 0],
"uv": {
"north": {"uv": [37.5, 13], "uv_size": [-0.5, 8.5]},
"east": {"uv": [37.5, 4], "uv_size": [-0.5, 8.5]},
"south": {"uv": [36.5, 35], "uv_size": [-0.5, 8.5]},
"west": {"uv": [22.5, 37], "uv_size": [-0.5, 8.5]},
"up": {"uv": [22, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 22], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.61729, 0.64242, -0.17767],
"size": [0.33136, 8.45031, 0.47802],
"pivot": [-0.24622, 4.2744, 0.04319],
"rotation": [0, -135, 0],
"uv": {
"north": {"uv": [21.5, 36], "uv_size": [-0.5, 8.5]},
"east": {"uv": [36.5, 17], "uv_size": [-0.5, 8.5]},
"south": {"uv": [36.5, 8], "uv_size": [-0.5, 8.5]},
"west": {"uv": [36.5, 26], "uv_size": [-0.5, 8.5]},
"up": {"uv": [21, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 21], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.80435, 0.64242, -0.13684],
"size": [0.33136, 8.45031, 0.47802],
"pivot": [-0.34821, 4.2744, 0.28941],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [34.5, 35], "uv_size": [-0.5, 8.5]},
"east": {"uv": [33.5, 35], "uv_size": [-0.5, 8.5]},
"south": {"uv": [32.5, 35], "uv_size": [-0.5, 8.5]},
"west": {"uv": [35.5, 35], "uv_size": [-0.5, 8.5]},
"up": {"uv": [20, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 20], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.61729, 0.64242, -0.096],
"size": [0.33136, 8.45031, 0.47802],
"pivot": [-0.24622, 4.2744, 0.53563],
"rotation": [0, -45, 0],
"uv": {
"north": {"uv": [35.5, 17], "uv_size": [-0.5, 8.5]},
"east": {"uv": [9.5, 35], "uv_size": [-0.5, 8.5]},
"south": {"uv": [35.5, 8], "uv_size": [-0.5, 8.5]},
"west": {"uv": [35.5, 26], "uv_size": [-0.5, 8.5]},
"up": {"uv": [19, 52.5], "uv_size": [0.5, -0.5]},
"down": {"uv": [52, 19], "uv_size": [0.5, 0.5]}
}
},
{
"origin": [-0.61729, -0.35758, -1.096],
"size": [0.33136, 1, 1.47802],
"pivot": [-0.24622, 4.2744, 0.53563],
"rotation": [0, -45, 0],
"uv": {
"north": {"uv": [52.5, 7], "uv_size": [-0.5, 1]},
"east": {"uv": [50.5, 33], "uv_size": [-1.5, 1]},
"south": {"uv": [7.5, 52], "uv_size": [-0.5, 1]},
"west": {"uv": [35.5, 49], "uv_size": [-1.5, 1]},
"up": {"uv": [50, 49.5], "uv_size": [0.5, -1.5]},
"down": {"uv": [49, 50], "uv_size": [0.5, 1.5]}
}
},
{
"origin": [-0.80435, -0.35758, -1.13684],
"size": [0.33136, 1, 1.47802],
"pivot": [-0.34821, 4.2744, 0.28941],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [52.5, 6], "uv_size": [-0.5, 1]},
"east": {"uv": [33.5, 49], "uv_size": [-1.5, 1]},
"south": {"uv": [6.5, 52], "uv_size": [-0.5, 1]},
"west": {"uv": [50.5, 32], "uv_size": [-1.5, 1]},
"up": {"uv": [47, 51.5], "uv_size": [0.5, -1.5]},
"down": {"uv": [48, 50], "uv_size": [0.5, 1.5]}
}
},
{
"origin": [-0.61729, -0.35758, -1.17767],
"size": [0.33136, 1, 1.47802],
"pivot": [-0.24622, 4.2744, 0.04319],
"rotation": [0, -135, 0],
"uv": {
"north": {"uv": [52.5, 5], "uv_size": [-0.5, 1]},
"east": {"uv": [50.5, 30], "uv_size": [-1.5, 1]},
"south": {"uv": [5.5, 52], "uv_size": [-0.5, 1]},
"west": {"uv": [50.5, 31], "uv_size": [-1.5, 1]},
"up": {"uv": [46, 51.5], "uv_size": [0.5, -1.5]},
"down": {"uv": [50, 46], "uv_size": [0.5, 1.5]}
}
},
{
"origin": [-0.16568, -0.35758, -1.19459],
"size": [0.33136, 1, 1.47802],
"pivot": [0, 4.2744, -0.0588],
"rotation": [0, -180, 0],
"uv": {
"north": {"uv": [52.5, 4], "uv_size": [-0.5, 1]},
"east": {"uv": [50.5, 28], "uv_size": [-1.5, 1]},
"south": {"uv": [4.5, 52], "uv_size": [-0.5, 1]},
"west": {"uv": [50.5, 29], "uv_size": [-1.5, 1]},
"up": {"uv": [50, 45.5], "uv_size": [0.5, -1.5]},
"down": {"uv": [45, 50], "uv_size": [0.5, 1.5]}
}
},
{
"origin": [0.28593, -0.35758, -1.17767],
"size": [0.33136, 1, 1.47802],
"pivot": [0.24622, 4.2744, 0.04319],
"rotation": [0, 135, 0],
"uv": {
"north": {"uv": [52.5, 3], "uv_size": [-0.5, 1]},
"east": {"uv": [50.5, 26], "uv_size": [-1.5, 1]},
"south": {"uv": [3.5, 52], "uv_size": [-0.5, 1]},
"west": {"uv": [50.5, 27], "uv_size": [-1.5, 1]},
"up": {"uv": [43, 51.5], "uv_size": [0.5, -1.5]},
"down": {"uv": [44, 50], "uv_size": [0.5, 1.5]}
}
},
{
"origin": [0.47299, -0.35758, -1.13684],
"size": [0.33136, 1, 1.47802],
"pivot": [0.34821, 4.2744, 0.28941],
"rotation": [0, 90, 0],
"uv": {
"north": {"uv": [52.5, 2], "uv_size": [-0.5, 1]},
"east": {"uv": [50.5, 24], "uv_size": [-1.5, 1]},
"south": {"uv": [2.5, 52], "uv_size": [-0.5, 1]},
"west": {"uv": [50.5, 25], "uv_size": [-1.5, 1]},
"up": {"uv": [41, 51.5], "uv_size": [0.5, -1.5]},
"down": {"uv": [50, 42], "uv_size": [0.5, 1.5]}
}
},
{
"origin": [0.28593, -0.35758, -1.096],
"size": [0.33136, 1, 1.47802],
"pivot": [0.24622, 4.2744, 0.53563],
"rotation": [0, 45, 0],
"uv": {
"north": {"uv": [52.5, 1], "uv_size": [-0.5, 1]},
"east": {"uv": [50.5, 22], "uv_size": [-1.5, 1]},
"south": {"uv": [1.5, 52], "uv_size": [-0.5, 1]},
"west": {"uv": [50.5, 23], "uv_size": [-1.5, 1]},
"up": {"uv": [40, 51.5], "uv_size": [0.5, -1.5]},
"down": {"uv": [50, 40], "uv_size": [0.5, 1.5]}
}
},
{
"origin": [-0.16568, -0.35758, -1.07909],
"size": [0.33136, 1, 1.47802],
"uv": {
"north": {"uv": [52.5, 0], "uv_size": [-0.5, 1]},
"east": {"uv": [50.5, 20], "uv_size": [-1.5, 1]},
"south": {"uv": [0.5, 52], "uv_size": [-0.5, 1]},
"west": {"uv": [50.5, 21], "uv_size": [-1.5, 1]},
"up": {"uv": [38, 51.5], "uv_size": [0.5, -1.5]},
"down": {"uv": [50, 38], "uv_size": [0.5, 1.5]}
}
}
]
}
]
}
]
}

View file

@ -15,6 +15,113 @@
"name": "bone", "name": "bone",
"pivot": [0, 19.5, 0] "pivot": [0, 19.5, 0]
}, },
{
"name": "flare",
"parent": "bone",
"pivot": [0, -0.47857, 0],
"cubes": [
{
"origin": [-16.75, -0.45, -0.75],
"size": [16, 0, 1.5],
"uv": {
"up": {"uv": [20, 32], "uv_size": [-16, -2]},
"down": {"uv": [20, 32], "uv_size": [-16, -2]}
}
},
{
"origin": [-24.75, -0.45, -0.75],
"size": [24, 0, 1.5],
"pivot": [0, 0, 0],
"rotation": [0, 90, 0],
"uv": {
"up": {"uv": [20, 32], "uv_size": [-16, -2]},
"down": {"uv": [20, 32], "uv_size": [-16, -2]}
}
},
{
"origin": [-16.75, -0.45, -0.75],
"size": [16, 0, 1.5],
"pivot": [0, 0, 0],
"rotation": [0, 180, 0],
"uv": {
"up": {"uv": [20, 32], "uv_size": [-16, -2]},
"down": {"uv": [20, 32], "uv_size": [-16, -2]}
}
},
{
"origin": [-16, 14.5, -1],
"size": [32, 0, 2],
"pivot": [0, 14.5, 0],
"rotation": [135, 0, 90],
"uv": {
"up": {"uv": [20, 32], "uv_size": [-16, -2]},
"down": {"uv": [20, 32], "uv_size": [-16, -2]}
}
},
{
"origin": [-16, 14.5, -1],
"size": [32, 0, 2],
"pivot": [0, 14.5, 0],
"rotation": [-135, 0, 90],
"uv": {
"up": {"uv": [20, 32], "uv_size": [-16, -2]},
"down": {"uv": [20, 32], "uv_size": [-16, -2]}
}
},
{
"origin": [-24.75, -0.45, -0.75],
"size": [24, 0, 1.5],
"pivot": [0, 0, 0],
"rotation": [0, -90, 0],
"uv": {
"up": {"uv": [20, 32], "uv_size": [-16, -2]},
"down": {"uv": [20, 32], "uv_size": [-16, -2]}
}
},
{
"origin": [-2.75, -0.45, -2.75],
"size": [5.5, 0, 5.5],
"pivot": [0, -0.45, 0],
"rotation": [0, -45, 0],
"uv": {
"north": {"uv": [2, 30], "uv_size": [2, 2]},
"east": {"uv": [2, 30], "uv_size": [2, 2]},
"south": {"uv": [2, 30], "uv_size": [2, 2]},
"west": {"uv": [2, 30], "uv_size": [2, 2]},
"up": {"uv": [4, 32], "uv_size": [-2, -2]},
"down": {"uv": [4, 32], "uv_size": [-2, -2]}
}
},
{
"origin": [-2.5, 1.3, -2.5],
"size": [5, 0, 5],
"pivot": [0, 1.3, 0],
"rotation": [90, -45, 0],
"uv": {
"north": {"uv": [2, 30], "uv_size": [2, 2]},
"east": {"uv": [2, 30], "uv_size": [2, 2]},
"south": {"uv": [2, 30], "uv_size": [2, 2]},
"west": {"uv": [2, 30], "uv_size": [2, 2]},
"up": {"uv": [4, 32], "uv_size": [-2, -2]},
"down": {"uv": [4, 32], "uv_size": [-2, -2]}
}
},
{
"origin": [-2.5, 1.3, -2.5],
"size": [5, 0, 5],
"pivot": [0, 1.3, 0],
"rotation": [90, 45, 0],
"uv": {
"north": {"uv": [2, 30], "uv_size": [2, 2]},
"east": {"uv": [2, 30], "uv_size": [2, 2]},
"south": {"uv": [2, 30], "uv_size": [2, 2]},
"west": {"uv": [2, 30], "uv_size": [2, 2]},
"up": {"uv": [4, 32], "uv_size": [-2, -2]},
"down": {"uv": [4, 32], "uv_size": [-2, -2]}
}
}
]
},
{ {
"name": "body", "name": "body",
"parent": "bone", "parent": "bone",
@ -243,8 +350,6 @@
{ {
"origin": [-0.24018, -19.185, -16.12402], "origin": [-0.24018, -19.185, -16.12402],
"size": [0.53362, 1.28869, 25.62752], "size": [0.53362, 1.28869, 25.62752],
"pivot": [0.02663, -18.54066, 9.18974],
"rotation": [0, 0, 0],
"uv": { "uv": {
"north": {"uv": [13, 29], "uv_size": [1, 1]}, "north": {"uv": [13, 29], "uv_size": [1, 1]},
"south": {"uv": [29, 13], "uv_size": [1, 1]}, "south": {"uv": [29, 13], "uv_size": [1, 1]},
@ -298,8 +403,6 @@
{ {
"origin": [-0.60307, -20.15708, -11.65478], "origin": [-0.60307, -20.15708, -11.65478],
"size": [1.34712, 3.25329, 8.54567], "size": [1.34712, 3.25329, 8.54567],
"pivot": [0.0705, -18.53043, 4.5988],
"rotation": [0, 0, 0],
"uv": { "uv": {
"north": {"uv": [16, 25], "uv_size": [1, 3]}, "north": {"uv": [16, 25], "uv_size": [1, 3]},
"south": {"uv": [17, 25], "uv_size": [1, 3]}, "south": {"uv": [17, 25], "uv_size": [1, 3]},
@ -353,8 +456,6 @@
{ {
"origin": [-0.33442, -19.43744, -21.21069], "origin": [-0.33442, -19.43744, -21.21069],
"size": [0.74488, 1.79888, 5.72526], "size": [0.74488, 1.79888, 5.72526],
"pivot": [0.03802, -18.538, -11.22341],
"rotation": [0, 0, 0],
"uv": { "uv": {
"north": {"uv": [2, 26], "uv_size": [1, 2]}, "north": {"uv": [2, 26], "uv_size": [1, 2]},
"south": {"uv": [26, 2], "uv_size": [1, 2]}, "south": {"uv": [26, 2], "uv_size": [1, 2]},
@ -408,8 +509,6 @@
{ {
"origin": [-0.24018, -19.185, 17.37598], "origin": [-0.24018, -19.185, 17.37598],
"size": [0.53362, 1.28869, 0.62752], "size": [0.53362, 1.28869, 0.62752],
"pivot": [0.02663, -18.54066, 27.68974],
"rotation": [0, 0, 0],
"uv": { "uv": {
"north": {"uv": [29, 27], "uv_size": [1, 1]}, "north": {"uv": [29, 27], "uv_size": [1, 1]},
"south": {"uv": [28, 29], "uv_size": [1, 1]}, "south": {"uv": [28, 29], "uv_size": [1, 1]},
@ -463,8 +562,6 @@
{ {
"origin": [-0.29088, -19.30743, 1.69012], "origin": [-0.29088, -19.30743, 1.69012],
"size": [0.63501, 1.53354, 1.23175], "size": [0.63501, 1.53354, 1.23175],
"pivot": [0.02663, -18.54066, 10.48849],
"rotation": [0, 0, 0],
"uv": { "uv": {
"north": {"uv": [21, 25], "uv_size": [1, 2]}, "north": {"uv": [21, 25], "uv_size": [1, 2]},
"south": {"uv": [25, 21], "uv_size": [1, 2]}, "south": {"uv": [25, 21], "uv_size": [1, 2]},
@ -518,8 +615,6 @@
{ {
"origin": [-0.07743, -18.79195, 9.47598], "origin": [-0.07743, -18.79195, 9.47598],
"size": [0.20811, 0.50259, 8], "size": [0.20811, 0.50259, 8],
"pivot": [0.02663, -18.54066, 17.59835],
"rotation": [0, 0, 0],
"uv": { "uv": {
"north": {"uv": [29, 21], "uv_size": [1, 1]}, "north": {"uv": [29, 21], "uv_size": [1, 1]},
"south": {"uv": [22, 29], "uv_size": [1, 1]}, "south": {"uv": [22, 29], "uv_size": [1, 1]},

View file

@ -0,0 +1,79 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.unknown",
"texture_width": 16,
"texture_height": 16,
"visible_bounds_width": 2,
"visible_bounds_height": 1.5,
"visible_bounds_offset": [0, 0.25, 0]
},
"bones": [
{
"name": "bone",
"pivot": [0, 0, 0],
"cubes": [
{
"origin": [-0.5, 1.25, -1.25],
"size": [1, 1, 1],
"pivot": [0, 0, 0],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [1, 0], "uv_size": [1, 1]},
"east": {"uv": [1, 0], "uv_size": [1, 1]},
"south": {"uv": [1, 0], "uv_size": [1, 1]},
"west": {"uv": [1, 0], "uv_size": [1, 1]},
"up": {"uv": [1, 0], "uv_size": [1, 1]},
"down": {"uv": [1, 1], "uv_size": [1, -1]}
}
},
{
"origin": [-0.25, -1, -1],
"size": [0.5, 2.25, 0.5],
"pivot": [0, 0, 0],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [0, 0], "uv_size": [1, 3]},
"east": {"uv": [0, 0], "uv_size": [1, 3]},
"south": {"uv": [0, 0], "uv_size": [1, 3]},
"west": {"uv": [0, 0], "uv_size": [1, 3]},
"up": {"uv": [0, 0], "uv_size": [1, 3]},
"down": {"uv": [0, 3], "uv_size": [1, -3]}
}
},
{
"origin": [-0.5, 1.25, 0.25],
"size": [1, 1, 1],
"pivot": [0, 0, 0],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [1, 0], "uv_size": [1, 1]},
"east": {"uv": [1, 0], "uv_size": [1, 1]},
"south": {"uv": [1, 0], "uv_size": [1, 1]},
"west": {"uv": [1, 0], "uv_size": [1, 1]},
"up": {"uv": [1, 0], "uv_size": [1, 1]},
"down": {"uv": [1, 1], "uv_size": [1, -1]}
}
},
{
"origin": [-0.25, -1, 0.5],
"size": [0.5, 2.25, 0.5],
"pivot": [0, 0, 0],
"rotation": [0, -90, 0],
"uv": {
"north": {"uv": [0, 0], "uv_size": [1, 3]},
"east": {"uv": [0, 0], "uv_size": [1, 3]},
"south": {"uv": [0, 0], "uv_size": [1, 3]},
"west": {"uv": [0, 0], "uv_size": [1, 3]},
"up": {"uv": [0, 0], "uv_size": [1, 3]},
"down": {"uv": [0, 3], "uv_size": [1, -3]}
}
}
]
}
]
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 109 B