diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelRPGRocket.java b/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelRPGRocket.java deleted file mode 100644 index 5d1ecbc14..000000000 --- a/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelRPGRocket.java +++ /dev/null @@ -1,325 +0,0 @@ -package net.mcreator.superbwarfare.client.model.entity; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import net.mcreator.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 ModelRPGRocket extends EntityModel { - // 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, "modelrpg_7_rocket_converted"), "main"); - public final ModelPart Rockets; - - public ModelRPGRocket(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 Rockets2 = Rockets.addOrReplaceChild("Rockets2", CubeListBuilder.create(), PartPose.offset(0.0F, 0.4579F, -0.0535F)); - PartDefinition bone23 = Rockets2.addOrReplaceChild("bone23", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -10.1988F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -1.0385F)); - PartDefinition octagon_r1 = bone23.addOrReplaceChild("octagon_r1", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r2 = bone23.addOrReplaceChild("octagon_r2", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r3 = bone23.addOrReplaceChild("octagon_r3", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r4 = bone23.addOrReplaceChild("octagon_r4", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r5 = bone23.addOrReplaceChild("octagon_r5", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r6 = bone23.addOrReplaceChild("octagon_r6", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r7 = bone23.addOrReplaceChild("octagon_r7", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone24 = Rockets2.addOrReplaceChild("bone24", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -0.2217F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -10.1912F)); - PartDefinition octagon_r8 = bone24.addOrReplaceChild("octagon_r8", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r9 = bone24.addOrReplaceChild("octagon_r9", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r10 = bone24.addOrReplaceChild("octagon_r10", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r11 = bone24.addOrReplaceChild("octagon_r11", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r12 = bone24.addOrReplaceChild("octagon_r12", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r13 = bone24.addOrReplaceChild("octagon_r13", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r14 = bone24.addOrReplaceChild("octagon_r14", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone34 = Rockets2.addOrReplaceChild("bone34", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, 0.3534F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -10.312F)); - PartDefinition octagon_r15 = bone34.addOrReplaceChild("octagon_r15", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r16 = bone34.addOrReplaceChild("octagon_r16", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r17 = bone34.addOrReplaceChild("octagon_r17", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r18 = bone34.addOrReplaceChild("octagon_r18", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r19 = bone34.addOrReplaceChild("octagon_r19", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r20 = bone34.addOrReplaceChild("octagon_r20", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r21 = bone34.addOrReplaceChild("octagon_r21", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone26 = Rockets2.addOrReplaceChild("bone26", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -1.5592F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -9.2513F)); - PartDefinition octagon_r22 = bone26.addOrReplaceChild("octagon_r22", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r23 = bone26.addOrReplaceChild("octagon_r23", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r24 = bone26.addOrReplaceChild("octagon_r24", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r25 = bone26.addOrReplaceChild("octagon_r25", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r26 = bone26.addOrReplaceChild("octagon_r26", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r27 = bone26.addOrReplaceChild("octagon_r27", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r28 = bone26.addOrReplaceChild("octagon_r28", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone19 = Rockets2.addOrReplaceChild("bone19", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, 0.9259F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -6.0195F)); - PartDefinition octagon_r29 = bone19.addOrReplaceChild("octagon_r29", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r30 = bone19.addOrReplaceChild("octagon_r30", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r31 = bone19.addOrReplaceChild("octagon_r31", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r32 = bone19.addOrReplaceChild("octagon_r32", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r33 = bone19.addOrReplaceChild("octagon_r33", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r34 = bone19.addOrReplaceChild("octagon_r34", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r35 = bone19.addOrReplaceChild("octagon_r35", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone33 = bone19.addOrReplaceChild("bone33", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -2.4449F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, -1.0285F)); - PartDefinition octagon_r36 = bone33.addOrReplaceChild("octagon_r36", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r37 = bone33.addOrReplaceChild("octagon_r37", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r38 = bone33.addOrReplaceChild("octagon_r38", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r39 = bone33.addOrReplaceChild("octagon_r39", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r40 = bone33.addOrReplaceChild("octagon_r40", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r41 = bone33.addOrReplaceChild("octagon_r41", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -1.5708F)); - PartDefinition octagon_r42 = bone33.addOrReplaceChild("octagon_r42", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 0.7854F)); - PartDefinition bone20 = Rockets2.addOrReplaceChild("bone20", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.2F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, 2.8992F)); - PartDefinition octagon_r43 = bone20.addOrReplaceChild("octagon_r43", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r44 = bone20.addOrReplaceChild("octagon_r44", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r45 = bone20.addOrReplaceChild("octagon_r45", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r46 = bone20.addOrReplaceChild("octagon_r46", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r47 = bone20.addOrReplaceChild("octagon_r47", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r48 = bone20.addOrReplaceChild("octagon_r48", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r49 = bone20.addOrReplaceChild("octagon_r49", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone22 = Rockets2.addOrReplaceChild("bone22", CubeListBuilder.create(), PartPose.offset(0.0268F, 0.0407F, 3.383F)); - PartDefinition octagon_r50 = bone22.addOrReplaceChild("octagon_r50", CubeListBuilder.create().texOffs(0, 0).addBox(0.3224F, -0.7931F, -0.5685F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -0.7854F)); - PartDefinition octagon_r51 = bone22.addOrReplaceChild("octagon_r51", CubeListBuilder.create().texOffs(0, 0).addBox(0.3224F, -0.7982F, -0.4228F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -0.7854F)); - PartDefinition octagon_r52 = bone22.addOrReplaceChild("octagon_r52", CubeListBuilder.create().texOffs(0, 0).addBox(0.0278F, -0.5846F, -0.5258F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -1.5708F)); - PartDefinition octagon_r53 = bone22.addOrReplaceChild("octagon_r53", CubeListBuilder.create().texOffs(0, 0).addBox(0.0278F, -0.6255F, -0.4008F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -1.5708F)); - PartDefinition octagon_r54 = bone22.addOrReplaceChild("octagon_r54", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3482F, -0.6542F, -0.4296F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -2.3562F)); - PartDefinition octagon_r55 = bone22.addOrReplaceChild("octagon_r55", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3482F, -0.6213F, -0.5081F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -2.3562F)); - PartDefinition octagon_r56 = bone22.addOrReplaceChild("octagon_r56", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5852F, -0.8866F, -0.3801F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -3.1416F)); - PartDefinition octagon_r57 = bone22.addOrReplaceChild("octagon_r57", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5852F, -0.8626F, -0.6379F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, 3.1416F)); - PartDefinition octagon_r58 = bone22.addOrReplaceChild("octagon_r58", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.4137F, -0.1891F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, -0.7854F, 0.0F, 2.3562F)); - PartDefinition octagon_r59 = bone22.addOrReplaceChild("octagon_r59", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.3149F, -0.6559F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, 0.4494F, 0.0F, 2.3562F)); - PartDefinition octagon_r60 = bone22.addOrReplaceChild("octagon_r60", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.3282F, -0.6495F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, 0.4494F, 0.0F, 1.5708F)); - PartDefinition octagon_r61 = bone22.addOrReplaceChild("octagon_r61", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.4242F, -0.1995F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, -0.7854F, 0.0F, 1.5708F)); - PartDefinition octagon_r62 = bone22.addOrReplaceChild("octagon_r62", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.4137F, -0.1891F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, -0.7854F, 0.0F, 0.7854F)); - PartDefinition octagon_r63 = bone22.addOrReplaceChild("octagon_r63", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.3149F, -0.6559F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, 0.4494F, 0.0F, 0.7854F)); - PartDefinition octagon_r64 = bone22.addOrReplaceChild("octagon_r64", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.3282F, -0.6495F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, 0.4494F, 0.0F, 0.0F)); - PartDefinition octagon_r65 = bone22.addOrReplaceChild("octagon_r65", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.4242F, -0.1995F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, -0.7854F, 0.0F, 0.0F)); - PartDefinition bone21 = Rockets2.addOrReplaceChild("bone21", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, 2.6961F)); - PartDefinition octagon_r66 = bone21.addOrReplaceChild("octagon_r66", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r67 = bone21.addOrReplaceChild("octagon_r67", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r68 = bone21.addOrReplaceChild("octagon_r68", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r69 = bone21.addOrReplaceChild("octagon_r69", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r70 = bone21.addOrReplaceChild("octagon_r70", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r71 = bone21.addOrReplaceChild("octagon_r71", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r72 = bone21.addOrReplaceChild("octagon_r72", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone18 = Rockets2.addOrReplaceChild("bone18", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2378F, -0.6508F, -9.1073F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartPose.offset(-0.0021F, 0.0474F, 7.8333F)); - PartDefinition octagon_r73 = bone18.addOrReplaceChild("octagon_r73", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r74 = bone18.addOrReplaceChild("octagon_r74", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r75 = bone18.addOrReplaceChild("octagon_r75", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r76 = bone18.addOrReplaceChild("octagon_r76", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r77 = bone18.addOrReplaceChild("octagon_r77", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r78 = bone18.addOrReplaceChild("octagon_r78", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r79 = bone18.addOrReplaceChild("octagon_r79", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone25 = Rockets2.addOrReplaceChild("bone25", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 0.2985F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -12.411F)); - PartDefinition octagon_r80 = bone25.addOrReplaceChild("octagon_r80", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r81 = bone25.addOrReplaceChild("octagon_r81", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r82 = bone25.addOrReplaceChild("octagon_r82", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r83 = bone25.addOrReplaceChild("octagon_r83", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r84 = bone25.addOrReplaceChild("octagon_r84", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r85 = bone25.addOrReplaceChild("octagon_r85", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r86 = bone25.addOrReplaceChild("octagon_r86", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone30 = Rockets2.addOrReplaceChild("bone30", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, -3.9858F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -18.5853F)); - PartDefinition octagon_r87 = bone30.addOrReplaceChild("octagon_r87", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r88 = bone30.addOrReplaceChild("octagon_r88", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r89 = bone30.addOrReplaceChild("octagon_r89", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r90 = bone30.addOrReplaceChild("octagon_r90", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r91 = bone30.addOrReplaceChild("octagon_r91", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r92 = bone30.addOrReplaceChild("octagon_r92", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r93 = bone30.addOrReplaceChild("octagon_r93", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone31 = Rockets2.addOrReplaceChild("bone31", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 1.3934F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -25.0853F)); - PartDefinition octagon_r94 = bone31.addOrReplaceChild("octagon_r94", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r95 = bone31.addOrReplaceChild("octagon_r95", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r96 = bone31.addOrReplaceChild("octagon_r96", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r97 = bone31.addOrReplaceChild("octagon_r97", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r98 = bone31.addOrReplaceChild("octagon_r98", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r99 = bone31.addOrReplaceChild("octagon_r99", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r100 = bone31.addOrReplaceChild("octagon_r100", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone32 = Rockets2.addOrReplaceChild("bone32", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, -0.4736F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -24.5343F)); - PartDefinition octagon_r101 = bone32.addOrReplaceChild("octagon_r101", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r102 = bone32.addOrReplaceChild("octagon_r102", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r103 = bone32.addOrReplaceChild("octagon_r103", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r104 = bone32.addOrReplaceChild("octagon_r104", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r105 = bone32.addOrReplaceChild("octagon_r105", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r106 = bone32.addOrReplaceChild("octagon_r106", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r107 = bone32.addOrReplaceChild("octagon_r107", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone29 = Rockets2.addOrReplaceChild("bone29", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, -0.5789F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -12.2801F)); - PartDefinition octagon_r108 = bone29.addOrReplaceChild("octagon_r108", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r109 = bone29.addOrReplaceChild("octagon_r109", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r110 = bone29.addOrReplaceChild("octagon_r110", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r111 = bone29.addOrReplaceChild("octagon_r111", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r112 = bone29.addOrReplaceChild("octagon_r112", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r113 = bone29.addOrReplaceChild("octagon_r113", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r114 = bone29.addOrReplaceChild("octagon_r114", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone28 = Rockets2.addOrReplaceChild("bone28", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, -3.0583F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -19.1553F)); - PartDefinition octagon_r115 = bone28.addOrReplaceChild("octagon_r115", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r116 = bone28.addOrReplaceChild("octagon_r116", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r117 = bone28.addOrReplaceChild("octagon_r117", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r118 = bone28.addOrReplaceChild("octagon_r118", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r119 = bone28.addOrReplaceChild("octagon_r119", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r120 = bone28.addOrReplaceChild("octagon_r120", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r121 = bone28.addOrReplaceChild("octagon_r121", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -1.5708F)); - PartDefinition bone27 = Rockets2.addOrReplaceChild("bone27", - CubeListBuilder.create().texOffs(0, 0).addBox(-0.2342F, -0.5653F, -4.8664F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2014F, -0.4862F, -11.3624F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)), - PartPose.offset(0.0268F, 0.0407F, -13.0786F)); - PartDefinition octagon_r122 = bone27.addOrReplaceChild("octagon_r122", - CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 0.7854F)); - PartDefinition octagon_r123 = bone27.addOrReplaceChild("octagon_r123", - CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 2.3562F)); - PartDefinition octagon_r124 = bone27.addOrReplaceChild("octagon_r124", - CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 1.5708F)); - PartDefinition octagon_r125 = bone27.addOrReplaceChild("octagon_r125", - CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 3.1416F)); - PartDefinition octagon_r126 = bone27.addOrReplaceChild("octagon_r126", - CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -2.3562F)); - PartDefinition octagon_r127 = bone27.addOrReplaceChild("octagon_r127", - CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -0.7854F)); - PartDefinition octagon_r128 = bone27.addOrReplaceChild("octagon_r128", - CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -1.5708F)); - 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); - } -} diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/CannonShellRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/CannonShellRenderer.java index 01fd7afef..5897e84af 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/CannonShellRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/CannonShellRenderer.java @@ -3,38 +3,49 @@ package net.mcreator.superbwarfare.client.renderer.entity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; -import net.mcreator.superbwarfare.client.model.entity.ModelMortarShell; import net.mcreator.superbwarfare.entity.CannonShellEntity; +import net.mcreator.superbwarfare.entity.layer.CannonShellLayer; +import net.mcreator.superbwarfare.entity.model.CannonShellEntityModel; 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; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.renderer.GeoEntityRenderer; -public class CannonShellRenderer extends EntityRenderer { - private static final ResourceLocation texture = new ResourceLocation("superbwarfare:textures/entity/mortar_shell.png"); - private final ModelMortarShell model; +public class CannonShellRenderer extends GeoEntityRenderer { + public CannonShellRenderer(EntityRendererProvider.Context renderManager) { + super(renderManager, new CannonShellEntityModel()); + this.addRenderLayer(new CannonShellLayer(this)); + this.shadowRadius = 0f; + } - public CannonShellRenderer(EntityRendererProvider.Context context) { - super(context); - model = new ModelMortarShell<>(context.bakeLayer(ModelMortarShell.LAYER_LOCATION)); + @Override + public RenderType getRenderType(CannonShellEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + @Override + public void preRender(PoseStack poseStack, CannonShellEntity 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(CannonShellEntity 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); + poseStack.popPose(); } @Override - public ResourceLocation getTextureLocation(CannonShellEntity entity) { - return texture; + protected float getDeathMaxRotation(CannonShellEntity entityLivingBaseIn) { + return 0.0F; } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RpgRocketRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RpgRocketRenderer.java index ae4817673..f455c10b7 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RpgRocketRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RpgRocketRenderer.java @@ -3,38 +3,47 @@ package net.mcreator.superbwarfare.client.renderer.entity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; -import net.mcreator.superbwarfare.client.model.entity.ModelRPGRocket; import net.mcreator.superbwarfare.entity.RpgRocketEntity; +import net.mcreator.superbwarfare.entity.model.RpgRocketModel; 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; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.renderer.GeoEntityRenderer; -public class RpgRocketRenderer extends EntityRenderer { - private static final ResourceLocation texture = new ResourceLocation("superbwarfare:textures/entity/rocket.png"); - private final ModelRPGRocket model; +public class RpgRocketRenderer extends GeoEntityRenderer { + public RpgRocketRenderer(EntityRendererProvider.Context renderManager) { + super(renderManager, new RpgRocketModel()); + this.shadowRadius = 0.1f; + } - public RpgRocketRenderer(EntityRendererProvider.Context context) { - super(context); - model = new ModelRPGRocket<>(context.bakeLayer(ModelRPGRocket.LAYER_LOCATION)); + @Override + public RenderType getRenderType(RpgRocketEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + @Override + public void preRender(PoseStack poseStack, RpgRocketEntity 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(RpgRocketEntity 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); + poseStack.popPose(); } @Override - public ResourceLocation getTextureLocation(RpgRocketEntity entity) { - return texture; + protected float getDeathMaxRotation(RpgRocketEntity entityLivingBaseIn) { + return 0.0F; } } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/CannonShellEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/CannonShellEntity.java index defeb7e95..338ec1531 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/CannonShellEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/CannonShellEntity.java @@ -9,6 +9,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -27,8 +30,21 @@ import net.minecraft.world.phys.Vec3; import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.PacketDistributor; 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.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.util.GeckoLibUtil; -public class CannonShellEntity extends ThrowableItemProjectile { +public class CannonShellEntity extends ThrowableItemProjectile implements GeoEntity, AnimatedEntity{ + + public static final EntityDataAccessor ANIMATION = SynchedEntityData.defineId(CannonShellEntity.class, EntityDataSerializers.STRING); + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); + + public String animationprocedure = "empty"; private float damage = 0; private float explosionRadius = 0; private float explosionDamage = 0; @@ -77,6 +93,11 @@ public class CannonShellEntity extends ThrowableItemProjectile { return ModItems.HE_5_INCHES.get(); } + @Override + public boolean shouldRenderAtSqrDistance(double pDistance) { + return true; + } + @Override public void onHitEntity(EntityHitResult entityHitResult) { Entity entity = entityHitResult.getEntity(); @@ -171,7 +192,7 @@ public class CannonShellEntity extends ThrowableItemProjectile { public void tick() { super.tick(); if (this.level() instanceof ServerLevel serverLevel) { - ParticleTool.sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, this.getX(), this.getY(), this.getZ(), + ParticleTool.sendParticle(serverLevel, ParticleTypes.SMOKE, this.xo, this.yo, this.zo, 1, 0, 0, 0, 0.001, true); } if (this.tickCount > 600 || this.isInWater()) { @@ -201,8 +222,52 @@ public class CannonShellEntity extends ThrowableItemProjectile { this.discard(); } + private PlayState movementPredicate(AnimationState event) { + if (this.animationprocedure.equals("empty")) { + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.cannon_shell.idle")); + } + return PlayState.STOP; + } + + private PlayState procedurePredicate(AnimationState event) { + if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { + event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); + if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { + this.animationprocedure = "empty"; + event.getController().forceAnimationReset(); + } + } else if (animationprocedure.equals("empty")) { + return PlayState.STOP; + } + return PlayState.CONTINUE; + } + @Override protected float getGravity() { return 0.05F; } + + public String getSyncedAnimation() { + return this.entityData.get(ANIMATION); + } + + public void setAnimation(String animation) { + this.entityData.set(ANIMATION, animation); + } + + @Override + public void setAnimationProcedure(String procedure) { + this.animationprocedure = procedure; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate)); + data.add(new AnimationController<>(this, "procedure", 0, this::procedurePredicate)); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.cache; + } } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java index dd1110115..c891fc743 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java @@ -67,6 +67,11 @@ public class GunGrenadeEntity extends ThrowableItemProjectile { return ModItems.GRENADE_40MM.get(); } + @Override + public boolean shouldRenderAtSqrDistance(double pDistance) { + return true; + } + @Override protected void onHitEntity(EntityHitResult result) { float damageMultiplier = 1 + 0.2f * this.monsterMultiplier; @@ -156,7 +161,7 @@ public class GunGrenadeEntity extends ThrowableItemProjectile { super.tick(); if (!this.level().isClientSide() && this.level() instanceof ServerLevel serverLevel) { - ParticleTool.sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, this.getX(), this.getY(), this.getZ(), + ParticleTool.sendParticle(serverLevel, ParticleTypes.SMOKE, this.xo, this.yo, this.zo, 1, 0, 0, 0, 0.02, true); } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/HandGrenadeEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/HandGrenadeEntity.java index b26efa46d..f9fb1a069 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/HandGrenadeEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/HandGrenadeEntity.java @@ -62,6 +62,10 @@ public class HandGrenadeEntity extends ThrowableItemProjectile { return ModItems.HAND_GRENADE.get(); } + @Override + public boolean shouldRenderAtSqrDistance(double pDistance) { + return true; + } @Override protected void onHit(HitResult result) { diff --git a/src/main/java/net/mcreator/superbwarfare/entity/MortarShellEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/MortarShellEntity.java index 168261552..c6408359b 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/MortarShellEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/MortarShellEntity.java @@ -55,6 +55,10 @@ public class MortarShellEntity extends ThrowableItemProjectile { return ModItems.MORTAR_SHELLS.get(); } + @Override + public boolean shouldRenderAtSqrDistance(double pDistance) { + return true; + } @Override public void onHitEntity(EntityHitResult entityHitResult) { @@ -81,7 +85,7 @@ public class MortarShellEntity extends ThrowableItemProjectile { public void tick() { super.tick(); if (this.level() instanceof ServerLevel serverLevel) { - ParticleTool.sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, this.getX(), this.getY(), this.getZ(), + ParticleTool.sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, this.xo, this.yo, this.zo, 2, 0, 0, 0, 0.02, true); } if (this.tickCount > 600 || this.isInWater()) { diff --git a/src/main/java/net/mcreator/superbwarfare/entity/RgoGrenadeEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/RgoGrenadeEntity.java index 13619b807..d08fc2bdd 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/RgoGrenadeEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/RgoGrenadeEntity.java @@ -73,6 +73,10 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEnti return ModItems.RGO_GRENADE.get(); } + @Override + public boolean shouldRenderAtSqrDistance(double pDistance) { + return true; + } @Override protected void onHit(HitResult result) { diff --git a/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java index 34dc45889..43487ef4d 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java @@ -13,6 +13,9 @@ import net.mcreator.superbwarfare.tools.ParticleTool; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -31,10 +34,23 @@ import net.minecraft.world.phys.Vec3; import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.PacketDistributor; 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.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.util.GeckoLibUtil; import java.util.Optional; -public class RpgRocketEntity extends ThrowableItemProjectile { +public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntity, AnimatedEntity{ + + public static final EntityDataAccessor ANIMATION = SynchedEntityData.defineId(CannonShellEntity.class, EntityDataSerializers.STRING); + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); + + public String animationprocedure = "empty"; private int monsterMultiplier = 0; private float damage = 150f; @@ -160,18 +176,17 @@ public class RpgRocketEntity extends ThrowableItemProjectile { public void tick() { super.tick(); - if (this.tickCount == 2) { + if (this.tickCount == 3) { if (!this.level().isClientSide() && this.level() instanceof ServerLevel serverLevel) { - ParticleTool.sendParticle(serverLevel, ParticleTypes.CLOUD, this.getX(), this.getY(), this.getZ(), 50, 0.8, 0.8, 0.8, 0.01, true); - ParticleTool.sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, this.getX(), this.getY(), this.getZ(), 50, 0.8, 0.8, 0.8, 0.01, true); + ParticleTool.sendParticle(serverLevel, ParticleTypes.CLOUD, this.xo, this.yo, this.zo, 15, 0.8, 0.8, 0.8, 0.01, true); + ParticleTool.sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, this.xo, this.yo, this.zo, 10, 0.8, 0.8, 0.8, 0.01, true); } } - if (this.tickCount > 1) { + if (this.tickCount > 2) { this.setDeltaMovement(new Vec3((1.03 * this.getDeltaMovement().x()), (1.03 * this.getDeltaMovement().y() - 0.02), (1.03 * this.getDeltaMovement().z()))); if (!this.level().isClientSide() && this.level() instanceof ServerLevel serverLevel) { - ParticleTool.sendParticle(serverLevel, ParticleTypes.SMOKE, this.getX(), this.getY(), this.getZ(), 2, 0, 0, 0, 0, true); - ParticleTool.sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, this.getX(), this.getY(), this.getZ(), 2, 0, 0, 0, 0, true); + ParticleTool.sendParticle(serverLevel, ParticleTypes.SMOKE, this.xo, this.yo, this.zo, 1, 0, 0, 0, 0, true); } } @@ -193,4 +208,53 @@ public class RpgRocketEntity extends ThrowableItemProjectile { ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); } + + private PlayState movementPredicate(AnimationState event) { + if (this.animationprocedure.equals("empty")) { + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.rpg.idle")); + } + return PlayState.STOP; + } + + private PlayState procedurePredicate(AnimationState event) { + if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { + event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); + if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { + this.animationprocedure = "empty"; + event.getController().forceAnimationReset(); + } + } else if (animationprocedure.equals("empty")) { + return PlayState.STOP; + } + return PlayState.CONTINUE; + } + + @Override + protected float getGravity() { + return 0.05F; + } + + public String getSyncedAnimation() { + return this.entityData.get(ANIMATION); + } + + public void setAnimation(String animation) { + this.entityData.set(ANIMATION, animation); + } + + @Override + public void setAnimationProcedure(String procedure) { + this.animationprocedure = procedure; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar data) { + data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate)); + data.add(new AnimationController<>(this, "procedure", 0, this::procedurePredicate)); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.cache; + } } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/layer/CannonShellLayer.java b/src/main/java/net/mcreator/superbwarfare/entity/layer/CannonShellLayer.java new file mode 100644 index 000000000..6cc5a4637 --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/entity/layer/CannonShellLayer.java @@ -0,0 +1,27 @@ +package net.mcreator.superbwarfare.entity.layer; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.entity.CannonShellEntity; +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 CannonShellLayer extends GeoRenderLayer { + private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/entity/cannon_shell_e.png"); + + public CannonShellLayer(GeoRenderer entityRenderer) { + super(entityRenderer); + } + + @Override + public void render(PoseStack poseStack, CannonShellEntity 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); + } +} diff --git a/src/main/java/net/mcreator/superbwarfare/entity/model/CannonShellEntityModel.java b/src/main/java/net/mcreator/superbwarfare/entity/model/CannonShellEntityModel.java new file mode 100644 index 000000000..3ced82a92 --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/entity/model/CannonShellEntityModel.java @@ -0,0 +1,31 @@ +package net.mcreator.superbwarfare.entity.model; + +import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.entity.CannonShellEntity; +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 CannonShellEntityModel extends GeoModel { + @Override + public ResourceLocation getAnimationResource(CannonShellEntity entity) { + return new ResourceLocation(ModUtils.MODID, "animations/cannon_shell.animation.json"); + } + + @Override + public ResourceLocation getModelResource(CannonShellEntity entity) { + return new ResourceLocation(ModUtils.MODID, "geo/cannon_shell.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(CannonShellEntity entity) { + return new ResourceLocation(ModUtils.MODID, "textures/entity/cannon_shell.png"); + } + + @Override + public void setCustomAnimations(CannonShellEntity animatable, long instanceId, AnimationState animationState) { + CoreGeoBone bone = getAnimationProcessor().getBone("bone"); + bone.setHidden(animatable.tickCount <= 1); + } +} diff --git a/src/main/java/net/mcreator/superbwarfare/entity/model/ProjectileEntityModel.java b/src/main/java/net/mcreator/superbwarfare/entity/model/ProjectileEntityModel.java index 3c58f1a28..253dd3e5e 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/model/ProjectileEntityModel.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/model/ProjectileEntityModel.java @@ -34,8 +34,6 @@ public class ProjectileEntityModel extends GeoModel { @Override public void setCustomAnimations(ProjectileEntity animatable, long instanceId, AnimationState animationState) { CoreGeoBone bone = getAnimationProcessor().getBone("bone"); - bone.setHidden(animatable.tickCount <= 1); - } } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/model/RpgRocketModel.java b/src/main/java/net/mcreator/superbwarfare/entity/model/RpgRocketModel.java new file mode 100644 index 000000000..99addc92d --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/entity/model/RpgRocketModel.java @@ -0,0 +1,29 @@ +package net.mcreator.superbwarfare.entity.model; + +import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.entity.RpgRocketEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class RpgRocketModel extends GeoModel { + @Override + public ResourceLocation getAnimationResource(RpgRocketEntity entity) { + return new ResourceLocation(ModUtils.MODID, "animations/rpg_rocket.animation.json"); + } + + @Override + public ResourceLocation getModelResource(RpgRocketEntity entity) { + return new ResourceLocation(ModUtils.MODID, "geo/rpg_rocket.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(RpgRocketEntity entity) { + return new ResourceLocation(ModUtils.MODID, "textures/entity/rpg_rocket.png"); + } + +// @Override +// public void setCustomAnimations(RpgRocketEntity animatable, long instanceId, AnimationState animationState) { +// CoreGeoBone bone = getAnimationProcessor().getBone("bone"); +// bone.setHidden(animatable.tickCount <= 1); +// } +} diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java b/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java index 616666d77..0f9a11bc6 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java @@ -18,7 +18,7 @@ public class ModEntities { public static final DeferredRegister> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, ModUtils.MODID); public static final RegistryObject> TARGET_1 = register("target_1", - EntityType.Builder.of(Target1Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(256).setUpdateInterval(3).setCustomClientFactory(Target1Entity::new).fireImmune().sized(0.875f, 2f)); + EntityType.Builder.of(Target1Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(Target1Entity::new).fireImmune().sized(0.875f, 2f)); public static final RegistryObject> MORTAR = register("mortar", EntityType.Builder.of(MortarEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(MortarEntity::new).fireImmune().sized(0.8f, 1.4f)); public static final RegistryObject> SENPAI = register("senpai", @@ -27,37 +27,37 @@ public class ModEntities { public static final RegistryObject> CLAYMORE = register("claymore", EntityType.Builder.of(ClaymoreEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ClaymoreEntity::new).fireImmune().sized(0.5f, 0.5f)); public static final RegistryObject> MK_42 = register("mk_42", - EntityType.Builder.of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(3.4f, 3.5f)); + EntityType.Builder.of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(5124).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(3.4f, 3.5f)); public static final RegistryObject> MLE_1934 = register("mle_1934", - EntityType.Builder.of(Mle1934Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Mle1934Entity::new).fireImmune().sized(6f, 3.7f)); + EntityType.Builder.of(Mle1934Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(Mle1934Entity::new).fireImmune().sized(6f, 3.7f)); public static final RegistryObject> DRONE = register("drone", - EntityType.Builder.of(DroneEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(DroneEntity::new).sized(0.7f, 0.175f)); + EntityType.Builder.of(DroneEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(3).setCustomClientFactory(DroneEntity::new).sized(0.7f, 0.175f)); public static final RegistryObject> TASER_BULLET_PROJECTILE = register("projectile_taser_bullet_projectile", EntityType.Builder.of(TaserBulletProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64) .setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> GUN_GRENADE = register("projectile_gun_grenade", - EntityType.Builder.of(GunGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(GunGrenadeEntity::new).sized(0.5f, 0.5f)); + EntityType.Builder.of(GunGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(GunGrenadeEntity::new).sized(0.5f, 0.5f)); public static final RegistryObject> FRAG = register("projectile_frag", EntityType.Builder.of(FragEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(FragEntity::new).sized(0.5f, 0.5f)); public static final RegistryObject> TARGET = register("target", EntityType.Builder.of(TargetEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TargetEntity::new).fireImmune().sized(0.875f, 2f)); public static final RegistryObject> RPG_ROCKET = register("projectile_rpg_rocket", - EntityType.Builder.of(RpgRocketEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(RpgRocketEntity::new).sized(0.5f, 0.5f)); + EntityType.Builder.of(RpgRocketEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(RpgRocketEntity::new).sized(0.5f, 0.5f)); public static final RegistryObject> MORTAR_SHELL = register("projectile_mortar_shell", - EntityType.Builder.of(MortarShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(MortarShellEntity::new).sized(0.5f, 0.5f)); + EntityType.Builder.of(MortarShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(MortarShellEntity::new).sized(0.5f, 0.5f)); public static final RegistryObject> BOCEK_ARROW = register("projectile_bocekarrow", - EntityType.Builder.of(BocekArrowEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setCustomClientFactory(BocekArrowEntity::new).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); + EntityType.Builder.of(BocekArrowEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setCustomClientFactory(BocekArrowEntity::new).setTrackingRange(512).setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> PROJECTILE = register("projectile", EntityType.Builder.of(ProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(ProjectileEntity::new).setTrackingRange(512).sized(0.5f, 0.5f)); public static final RegistryObject> CANNON_SHELL = register("projectile_cannon_shell", - EntityType.Builder.of(CannonShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(CannonShellEntity::new).sized(0.5f, 0.5f)); + EntityType.Builder.of(CannonShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(CannonShellEntity::new).sized(0.5f, 0.5f)); public static final RegistryObject> HAND_GRENADE_ENTITY = register("projectile_hand_grenade_entity", - EntityType.Builder.of(HandGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(HandGrenadeEntity::new).sized(0.3f, 0.3f)); + EntityType.Builder.of(HandGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(HandGrenadeEntity::new).sized(0.3f, 0.3f)); public static final RegistryObject> RGO_GRENADE = register("projectile_rgo_grenade", - EntityType.Builder.of(RgoGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(RgoGrenadeEntity::new).sized(0.3f, 0.3f)); + EntityType.Builder.of(RgoGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(RgoGrenadeEntity::new).sized(0.3f, 0.3f)); private static RegistryObject> register(String registryname, EntityType.Builder entityTypeBuilder) { diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModModels.java b/src/main/java/net/mcreator/superbwarfare/init/ModModels.java index eba739db0..cc9799686 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModModels.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModModels.java @@ -10,7 +10,6 @@ import net.minecraftforge.fml.common.Mod; public class ModModels { @SubscribeEvent public static void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) { - event.registerLayerDefinition(ModelRPGRocket.LAYER_LOCATION, ModelRPGRocket::createBodyLayer); event.registerLayerDefinition(ModelBullet.LAYER_LOCATION, ModelBullet::createBodyLayer); event.registerLayerDefinition(ModelMortarShell.LAYER_LOCATION, ModelMortarShell::createBodyLayer); event.registerLayerDefinition(ModelTaserRod.LAYER_LOCATION, ModelTaserRod::createBodyLayer); diff --git a/src/main/resources/assets/superbwarfare/animations/cannon_shell.animation.json b/src/main/resources/assets/superbwarfare/animations/cannon_shell.animation.json new file mode 100644 index 000000000..1a7e2db30 --- /dev/null +++ b/src/main/resources/assets/superbwarfare/animations/cannon_shell.animation.json @@ -0,0 +1,22 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.cannon_shell.idle": { + "loop": true, + "animation_length": 0.5, + "bones": { + "bone": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.5": { + "vector": [0, 360, 0] + } + } + } + } + } + }, + "geckolib_format_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/animations/rpg_rocket.animation.json b/src/main/resources/assets/superbwarfare/animations/rpg_rocket.animation.json new file mode 100644 index 000000000..342c0b13e --- /dev/null +++ b/src/main/resources/assets/superbwarfare/animations/rpg_rocket.animation.json @@ -0,0 +1,111 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.rpg.idle": { + "loop": "hold_on_last_frame", + "animation_length": 6, + "bones": { + "wing1": { + "rotation": { + "0.2417": { + "vector": [0, 0, 0] + }, + "0.6": { + "vector": [0, 67.5, 0], + "easing": "easeInElastic" + } + } + }, + "wing2": { + "rotation": { + "0.2417": { + "vector": [0, 0, 0] + }, + "0.6": { + "vector": [0, 67.5, 0], + "easing": "easeInElastic" + } + } + }, + "wing3": { + "rotation": { + "0.2417": { + "vector": [0, 0, 0] + }, + "0.6": { + "vector": [0, 67.5, 0], + "easing": "easeInElastic" + } + } + }, + "wing4": { + "rotation": { + "0.2417": { + "vector": [0, 0, 0] + }, + "0.6": { + "vector": [0, 67.5, 0], + "easing": "easeInElastic" + } + } + }, + "wing5": { + "rotation": { + "0.2417": { + "vector": [0, 0, 0] + }, + "0.6": { + "vector": [0, 67.5, 0], + "easing": "easeInElastic" + } + } + }, + "wing6": { + "rotation": { + "0.2417": { + "vector": [0, 0, 0] + }, + "0.6": { + "vector": [0, 67.5, 0], + "easing": "easeInElastic" + } + } + }, + "wing7": { + "rotation": { + "0.2417": { + "vector": [0, 0, 0] + }, + "0.6": { + "vector": [0, 67.5, 0], + "easing": "easeInElastic" + } + } + }, + "wing8": { + "rotation": { + "0.2417": { + "vector": [0, 0, 0] + }, + "0.6": { + "vector": [0, 67.5, 0], + "easing": "easeInElastic" + } + } + }, + "body": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "6.0": { + "vector": [0, 10800, 0], + "easing": "easeInSine" + } + } + } + } + } + }, + "geckolib_format_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/geo/cannon_shell.geo.json b/src/main/resources/assets/superbwarfare/geo/cannon_shell.geo.json new file mode 100644 index 000000000..f8dacd20b --- /dev/null +++ b/src/main/resources/assets/superbwarfare/geo/cannon_shell.geo.json @@ -0,0 +1,517 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "bone", + "pivot": [0, 13.5, 0] + }, + { + "name": "bone2", + "parent": "bone", + "pivot": [0, 16, 0], + "cubes": [ + { + "origin": [-4.81953, 15, -2], + "size": [9.63906, 2, 4], + "uv": { + "east": {"uv": [25, 37], "uv_size": [4, 2]}, + "west": {"uv": [29, 37], "uv_size": [4, 2]}, + "up": {"uv": [0, 0], "uv_size": [10, 4]}, + "down": {"uv": [0, 8], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 15, -2], + "size": [9.63906, 2, 4], + "pivot": [0, 13.5, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [0, 38], "uv_size": [4, 2]}, + "west": {"uv": [4, 38], "uv_size": [4, 2]}, + "up": {"uv": [0, 8], "uv_size": [10, 4]}, + "down": {"uv": [10, 4], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 15, -2], + "size": [9.63906, 2, 4], + "pivot": [0, 13.5, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [8, 38], "uv_size": [4, 2]}, + "west": {"uv": [12, 38], "uv_size": [4, 2]}, + "up": {"uv": [10, 4], "uv_size": [10, 4]}, + "down": {"uv": [10, 12], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 15, -2], + "size": [9.63906, 2, 4], + "pivot": [0, 13.5, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [16, 38], "uv_size": [4, 2]}, + "west": {"uv": [33, 38], "uv_size": [4, 2]}, + "up": {"uv": [0, 12], "uv_size": [10, 4]}, + "down": {"uv": [10, 16], "uv_size": [10, -4]} + } + } + ] + }, + { + "name": "bone4", + "parent": "bone", + "pivot": [0, 16, 0], + "cubes": [ + { + "origin": [-4.81953, 13, -2], + "size": [9.63906, 1, 4], + "uv": { + "east": {"uv": [40, 28], "uv_size": [4, 1]}, + "west": {"uv": [40, 29], "uv_size": [4, 1]}, + "up": {"uv": [0, 16], "uv_size": [10, 4]}, + "down": {"uv": [10, 20], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 13, -2], + "size": [9.63906, 1, 4], + "pivot": [0, 13.5, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [40, 30], "uv_size": [4, 1]}, + "west": {"uv": [40, 31], "uv_size": [4, 1]}, + "up": {"uv": [0, 20], "uv_size": [10, 4]}, + "down": {"uv": [20, 4], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 13, -2], + "size": [9.63906, 1, 4], + "pivot": [0, 13.5, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [32, 40], "uv_size": [4, 1]}, + "west": {"uv": [40, 32], "uv_size": [4, 1]}, + "up": {"uv": [20, 4], "uv_size": [10, 4]}, + "down": {"uv": [20, 12], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 13, -2], + "size": [9.63906, 1, 4], + "pivot": [0, 13.5, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [40, 33], "uv_size": [4, 1]}, + "west": {"uv": [36, 40], "uv_size": [4, 1]}, + "up": {"uv": [10, 20], "uv_size": [10, 4]}, + "down": {"uv": [20, 16], "uv_size": [10, -4]} + } + } + ] + }, + { + "name": "bone3", + "parent": "bone", + "pivot": [0, 15.93, 0], + "cubes": [ + { + "origin": [-4.48216, 14, -1.86], + "size": [8.96433, 1, 3.72], + "uv": { + "east": {"uv": [0, 40], "uv_size": [4, 1]}, + "west": {"uv": [4, 40], "uv_size": [4, 1]} + } + }, + { + "origin": [-4.48216, 14, -1.86], + "size": [8.96433, 1, 3.72], + "pivot": [0, 13.605, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [8, 40], "uv_size": [4, 1]}, + "west": {"uv": [12, 40], "uv_size": [4, 1]} + } + }, + { + "origin": [-4.48216, 14, -1.86], + "size": [8.96433, 1, 3.72], + "pivot": [0, 13.605, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [16, 40], "uv_size": [4, 1]}, + "west": {"uv": [40, 25], "uv_size": [4, 1]} + } + }, + { + "origin": [-4.48216, 14, -1.86], + "size": [8.96433, 1, 3.72], + "pivot": [0, 13.605, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [40, 26], "uv_size": [4, 1]}, + "west": {"uv": [40, 27], "uv_size": [4, 1]} + } + } + ] + }, + { + "name": "bone5", + "parent": "bone", + "pivot": [0, 13.93, 0], + "cubes": [ + { + "origin": [-4.48216, 12, -1.86], + "size": [8.96433, 1, 3.72], + "uv": { + "east": {"uv": [40, 40], "uv_size": [4, 1]}, + "west": {"uv": [0, 41], "uv_size": [4, 1]} + } + }, + { + "origin": [-4.48216, 12, -1.86], + "size": [8.96433, 1, 3.72], + "pivot": [0, 11.605, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [4, 41], "uv_size": [4, 1]}, + "west": {"uv": [8, 41], "uv_size": [4, 1]} + } + }, + { + "origin": [-4.48216, 12, -1.86], + "size": [8.96433, 1, 3.72], + "pivot": [0, 11.605, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [12, 41], "uv_size": [4, 1]}, + "west": {"uv": [16, 41], "uv_size": [4, 1]} + } + }, + { + "origin": [-4.48216, 12, -1.86], + "size": [8.96433, 1, 3.72], + "pivot": [0, 11.605, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [41, 16], "uv_size": [4, 1]}, + "west": {"uv": [41, 17], "uv_size": [4, 1]} + } + } + ] + }, + { + "name": "bone6", + "parent": "bone", + "pivot": [0, 14, 0], + "cubes": [ + { + "origin": [-4.81953, 6, -2], + "size": [9.63906, 6, 4], + "pivot": [0, 11.5, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [30, 16], "uv_size": [4, 6]}, + "west": {"uv": [30, 22], "uv_size": [4, 6]}, + "up": {"uv": [20, 16], "uv_size": [10, 4]}, + "down": {"uv": [20, 24], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 6, -2], + "size": [9.63906, 6, 4], + "pivot": [0, 11.5, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [30, 28], "uv_size": [4, 6]}, + "west": {"uv": [0, 32], "uv_size": [4, 6]}, + "up": {"uv": [0, 24], "uv_size": [10, 4]}, + "down": {"uv": [10, 28], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 6, -2], + "size": [9.63906, 6, 4], + "pivot": [0, 11.5, 0], + "rotation": [-180, 0, 180], + "uv": { + "east": {"uv": [4, 32], "uv_size": [4, 6]}, + "west": {"uv": [8, 32], "uv_size": [4, 6]}, + "up": {"uv": [20, 24], "uv_size": [10, 4]}, + "down": {"uv": [0, 32], "uv_size": [10, -4]} + } + }, + { + "origin": [-4.81953, 6, -2], + "size": [9.63906, 6, 4], + "pivot": [0, 11.5, 0], + "rotation": [-180, 45, 180], + "uv": { + "east": {"uv": [12, 32], "uv_size": [4, 6]}, + "west": {"uv": [16, 32], "uv_size": [4, 6]}, + "up": {"uv": [10, 28], "uv_size": [10, 4]}, + "down": {"uv": [20, 32], "uv_size": [10, -4]} + } + } + ] + }, + { + "name": "bone7", + "parent": "bone", + "pivot": [0, 13, 0], + "cubes": [ + { + "origin": [-4.33758, 4, -1.8], + "size": [8.67516, 2, 3.6], + "uv": { + "east": {"uv": [38, 34], "uv_size": [4, 2]}, + "west": {"uv": [38, 36], "uv_size": [4, 2]}, + "down": {"uv": [30, 4], "uv_size": [9, -4]} + } + }, + { + "origin": [-4.33758, 4, -1.8], + "size": [8.67516, 2, 3.6], + "pivot": [0, 10.75, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [37, 38], "uv_size": [4, 2]}, + "west": {"uv": [39, 0], "uv_size": [4, 2]}, + "down": {"uv": [30, 8], "uv_size": [9, -4]} + } + }, + { + "origin": [-4.33758, 4, -1.8], + "size": [8.67516, 2, 3.6], + "pivot": [0, 10.75, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [39, 2], "uv_size": [4, 2]}, + "west": {"uv": [39, 4], "uv_size": [4, 2]}, + "down": {"uv": [30, 12], "uv_size": [9, -4]} + } + }, + { + "origin": [-4.33758, 4, -1.8], + "size": [8.67516, 2, 3.6], + "pivot": [0, 10.75, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [39, 6], "uv_size": [4, 2]}, + "west": {"uv": [39, 8], "uv_size": [4, 2]}, + "down": {"uv": [30, 16], "uv_size": [9, -4]} + } + } + ] + }, + { + "name": "bone8", + "parent": "bone", + "pivot": [0, 11.65, 0], + "cubes": [ + { + "origin": [-3.68694, 2.25, -1.53], + "size": [7.37388, 1.75, 3.06], + "uv": { + "east": {"uv": [27, 32], "uv_size": [3, 2]}, + "west": {"uv": [39, 10], "uv_size": [3, 2]}, + "down": {"uv": [20, 35], "uv_size": [7, -3]} + } + }, + { + "origin": [-3.68694, 2.25, -1.53], + "size": [7.37388, 1.75, 3.06], + "pivot": [0, 9.7375, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [39, 12], "uv_size": [3, 2]}, + "west": {"uv": [39, 14], "uv_size": [3, 2]}, + "down": {"uv": [34, 19], "uv_size": [7, -3]} + } + }, + { + "origin": [-3.68694, 2.25, -1.53], + "size": [7.37388, 1.75, 3.06], + "pivot": [0, 9.7375, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [20, 39], "uv_size": [3, 2]}, + "west": {"uv": [23, 39], "uv_size": [3, 2]}, + "down": {"uv": [34, 22], "uv_size": [7, -3]} + } + }, + { + "origin": [-3.68694, 2.25, -1.53], + "size": [7.37388, 1.75, 3.06], + "pivot": [0, 9.7375, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [26, 39], "uv_size": [3, 2]}, + "west": {"uv": [29, 39], "uv_size": [3, 2]}, + "down": {"uv": [34, 25], "uv_size": [7, -3]} + } + } + ] + }, + { + "name": "bone9", + "parent": "bone", + "pivot": [0, 10.146, 0], + "cubes": [ + { + "origin": [-3.09703, 1.25, -1.2852], + "size": [6.19406, 1, 2.5704], + "uv": { + "east": {"uv": [41, 18], "uv_size": [3, 1]}, + "west": {"uv": [41, 19], "uv_size": [3, 1]}, + "down": {"uv": [34, 28], "uv_size": [6, -3]} + } + }, + { + "origin": [-3.09703, 1.25, -1.2852], + "size": [6.19406, 1, 2.5704], + "pivot": [0, 8.5395, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [20, 41], "uv_size": [3, 1]}, + "west": {"uv": [41, 20], "uv_size": [3, 1]}, + "down": {"uv": [27, 37], "uv_size": [6, -3]} + } + }, + { + "origin": [-3.09703, 1.25, -1.2852], + "size": [6.19406, 1, 2.5704], + "pivot": [0, 8.5395, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [41, 21], "uv_size": [3, 1]}, + "west": {"uv": [41, 22], "uv_size": [3, 1]}, + "down": {"uv": [34, 31], "uv_size": [6, -3]} + } + }, + { + "origin": [-3.09703, 1.25, -1.2852], + "size": [6.19406, 1, 2.5704], + "pivot": [0, 8.5395, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [23, 41], "uv_size": [3, 1]}, + "west": {"uv": [41, 23], "uv_size": [3, 1]}, + "down": {"uv": [34, 34], "uv_size": [6, -3]} + } + } + ] + }, + { + "name": "bone10", + "parent": "bone", + "pivot": [0, 7.922, 0], + "cubes": [ + { + "origin": [-2.32277, 0.5, -0.9639], + "size": [4.64555, 0.75, 1.9278], + "uv": { + "east": {"uv": [25, 35], "uv_size": [2, 1]}, + "west": {"uv": [25, 36], "uv_size": [2, 1]}, + "down": {"uv": [33, 36], "uv_size": [5, -2]} + } + }, + { + "origin": [-2.32277, 0.5, -0.9639], + "size": [4.64555, 0.75, 1.9278], + "pivot": [0, 6.71713, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [35, 41], "uv_size": [2, 1]}, + "west": {"uv": [37, 41], "uv_size": [2, 1]}, + "down": {"uv": [20, 37], "uv_size": [5, -2]} + } + }, + { + "origin": [-2.32277, 0.5, -0.9639], + "size": [4.64555, 0.75, 1.9278], + "pivot": [0, 6.71713, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [41, 38], "uv_size": [2, 1]}, + "west": {"uv": [39, 41], "uv_size": [2, 1]}, + "down": {"uv": [33, 38], "uv_size": [5, -2]} + } + }, + { + "origin": [-2.32277, 0.5, -0.9639], + "size": [4.64555, 0.75, 1.9278], + "pivot": [0, 6.71713, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [41, 39], "uv_size": [2, 1]}, + "west": {"uv": [41, 41], "uv_size": [2, 1]}, + "down": {"uv": [20, 39], "uv_size": [5, -2]} + } + } + ] + }, + { + "name": "bone11", + "parent": "bone", + "pivot": [0, 5.76962, 0], + "cubes": [ + { + "origin": [-1.64917, -0.15313, -0.68437], + "size": [3.29834, 0.65313, 1.36874], + "uv": { + "east": {"uv": [32, 39], "uv_size": [1, 1]}, + "west": {"uv": [0, 42], "uv_size": [1, 1]}, + "down": {"uv": [41, 25], "uv_size": [3, -1]} + } + }, + { + "origin": [-1.64917, -0.15313, -0.68437], + "size": [3.29834, 0.65313, 1.36874], + "pivot": [0, 4.91416, 0], + "rotation": [0, -45, 0], + "uv": { + "east": {"uv": [1, 42], "uv_size": [1, 1]}, + "west": {"uv": [2, 42], "uv_size": [1, 1]}, + "down": {"uv": [26, 42], "uv_size": [3, -1]} + } + }, + { + "origin": [-1.64917, -0.15313, -0.68437], + "size": [3.29834, 0.65313, 1.36874], + "pivot": [0, 4.91416, 0], + "rotation": [0, -90, 0], + "uv": { + "east": {"uv": [3, 42], "uv_size": [1, 1]}, + "west": {"uv": [4, 42], "uv_size": [1, 1]}, + "down": {"uv": [29, 42], "uv_size": [3, -1]} + } + }, + { + "origin": [-1.64917, -0.15313, -0.68437], + "size": [3.29834, 0.65313, 1.36874], + "pivot": [0, 4.91416, 0], + "rotation": [-180, -45, 180], + "uv": { + "east": {"uv": [5, 42], "uv_size": [1, 1]}, + "west": {"uv": [6, 42], "uv_size": [1, 1]}, + "down": {"uv": [32, 42], "uv_size": [3, -1]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/geo/rpg_rocket.geo.json b/src/main/resources/assets/superbwarfare/geo/rpg_rocket.geo.json new file mode 100644 index 000000000..e25174bcf --- /dev/null +++ b/src/main/resources/assets/superbwarfare/geo/rpg_rocket.geo.json @@ -0,0 +1,895 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.rpg", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 91, + "visible_bounds_height": 8, + "visible_bounds_offset": [0, 2, 0] + }, + "bones": [ + { + "name": "bone", + "pivot": [0, 19.5, 0] + }, + { + "name": "body", + "parent": "bone", + "pivot": [0, -18.5, 0], + "rotation": [90, 0, 0] + }, + { + "name": "wing", + "parent": "body", + "pivot": [-0.00215, -18.54737, 15.73332] + }, + { + "name": "wing1", + "parent": "wing", + "pivot": [0.02684, -18.54066, 17.03474], + "cubes": [ + { + "origin": [-0.59835, -18.97641, 9.72598], + "size": [0.63362, 0.7715, 7.52752], + "pivot": [-0.28154, -18.54066, 13.61474], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [3, 29], "uv_size": [1, 1]}, + "east": {"uv": [12, 0], "uv_size": [8, 1]}, + "south": {"uv": [29, 3], "uv_size": [1, 1]}, + "west": {"uv": [12, 1], "uv_size": [8, 1]}, + "up": {"uv": [12, 2], "uv_size": [1, 8]}, + "down": {"uv": [12, 18], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "wing2", + "parent": "wing", + "pivot": [0.02684, -18.54066, 17.03474], + "rotation": [0, 0, -45], + "cubes": [ + { + "origin": [-0.59835, -18.97641, 9.72598], + "size": [0.63362, 0.7715, 7.52752], + "pivot": [-0.28154, -18.54066, 13.61474], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [4, 29], "uv_size": [1, 1]}, + "east": {"uv": [13, 2], "uv_size": [8, 1]}, + "south": {"uv": [29, 4], "uv_size": [1, 1]}, + "west": {"uv": [13, 3], "uv_size": [8, 1]}, + "up": {"uv": [13, 4], "uv_size": [1, 8]}, + "down": {"uv": [13, 20], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "wing3", + "parent": "wing", + "pivot": [0.02684, -18.54066, 17.03474], + "rotation": [0, 0, -90], + "cubes": [ + { + "origin": [-0.59835, -18.97641, 9.72598], + "size": [0.63362, 0.7715, 7.52752], + "pivot": [-0.28154, -18.54066, 13.61474], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [5, 29], "uv_size": [1, 1]}, + "east": {"uv": [14, 4], "uv_size": [8, 1]}, + "south": {"uv": [29, 5], "uv_size": [1, 1]}, + "west": {"uv": [14, 5], "uv_size": [8, 1]}, + "up": {"uv": [14, 6], "uv_size": [1, 8]}, + "down": {"uv": [14, 22], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "wing4", + "parent": "wing", + "pivot": [0.02684, -18.54066, 17.03474], + "rotation": [0, 0, -135], + "cubes": [ + { + "origin": [-0.59835, -18.97641, 9.72598], + "size": [0.63362, 0.7715, 7.52752], + "pivot": [-0.28154, -18.54066, 13.61474], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [6, 29], "uv_size": [1, 1]}, + "east": {"uv": [15, 6], "uv_size": [8, 1]}, + "south": {"uv": [29, 6], "uv_size": [1, 1]}, + "west": {"uv": [15, 7], "uv_size": [8, 1]}, + "up": {"uv": [15, 8], "uv_size": [1, 8]}, + "down": {"uv": [16, 16], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "wing5", + "parent": "wing", + "pivot": [0.02684, -18.54066, 17.03474], + "rotation": [0, 0, -180], + "cubes": [ + { + "origin": [-0.59835, -18.97641, 9.72598], + "size": [0.63362, 0.7715, 7.52752], + "pivot": [-0.28154, -18.54066, 13.61474], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [7, 29], "uv_size": [1, 1]}, + "east": {"uv": [15, 16], "uv_size": [8, 1]}, + "south": {"uv": [29, 7], "uv_size": [1, 1]}, + "west": {"uv": [17, 8], "uv_size": [8, 1]}, + "up": {"uv": [15, 17], "uv_size": [1, 8]}, + "down": {"uv": [16, 25], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "wing6", + "parent": "wing", + "pivot": [0.02684, -18.54066, 17.03474], + "rotation": [0, 0, 135], + "cubes": [ + { + "origin": [-0.59835, -18.97641, 9.72598], + "size": [0.63362, 0.7715, 7.52752], + "pivot": [-0.28154, -18.54066, 13.61474], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [8, 29], "uv_size": [1, 1]}, + "east": {"uv": [17, 9], "uv_size": [8, 1]}, + "south": {"uv": [29, 8], "uv_size": [1, 1]}, + "west": {"uv": [17, 10], "uv_size": [8, 1]}, + "up": {"uv": [17, 17], "uv_size": [1, 8]}, + "down": {"uv": [8, 26], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "wing7", + "parent": "wing", + "pivot": [0.02684, -18.54066, 17.03474], + "rotation": [0, 0, 90], + "cubes": [ + { + "origin": [-0.59835, -18.97641, 9.72598], + "size": [0.63362, 0.7715, 7.52752], + "pivot": [-0.28154, -18.54066, 13.61474], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [9, 29], "uv_size": [1, 1]}, + "east": {"uv": [17, 11], "uv_size": [8, 1]}, + "south": {"uv": [29, 9], "uv_size": [1, 1]}, + "west": {"uv": [17, 12], "uv_size": [8, 1]}, + "up": {"uv": [9, 18], "uv_size": [1, 8]}, + "down": {"uv": [10, 26], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "wing8", + "parent": "wing", + "pivot": [0.02684, -18.54066, 17.03474], + "rotation": [0, 0, 45], + "cubes": [ + { + "origin": [-0.59835, -18.97641, 9.72598], + "size": [0.63362, 0.7715, 7.52752], + "pivot": [-0.28154, -18.54066, 13.61474], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [10, 29], "uv_size": [1, 1]}, + "east": {"uv": [17, 13], "uv_size": [8, 1]}, + "south": {"uv": [29, 10], "uv_size": [1, 1]}, + "west": {"uv": [17, 14], "uv_size": [8, 1]}, + "up": {"uv": [11, 18], "uv_size": [1, 8]}, + "down": {"uv": [12, 26], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "bone4", + "parent": "body", + "pivot": [-0.00215, -18.54737, 15.73332] + }, + { + "name": "bone23", + "parent": "bone4", + "pivot": [0.02684, -18.54066, -1.03851] + }, + { + "name": "bone5", + "parent": "bone23", + "pivot": [-0.00215, -18.54737, 10.23332], + "cubes": [ + { + "origin": [-0.23997, -19.18522, -16.12402], + "size": [0.53362, 1.28869, 25.62752], + "pivot": [0.02684, -18.54066, 3.13474], + "rotation": [0, 0, 90], + "uv": { + "north": {"uv": [11, 29], "uv_size": [1, 1]}, + "south": {"uv": [29, 11], "uv_size": [1, 1]}, + "up": {"uv": [0, 0], "uv_size": [1, 26]}, + "down": {"uv": [1, 26], "uv_size": [1, -26]} + } + }, + { + "origin": [-0.24018, -19.185, -16.12402], + "size": [0.53362, 1.28869, 25.62752], + "pivot": [0.02663, -18.54066, 9.18974], + "rotation": [0, 0, 45], + "uv": { + "north": {"uv": [12, 29], "uv_size": [1, 1]}, + "south": {"uv": [29, 12], "uv_size": [1, 1]}, + "up": {"uv": [2, 0], "uv_size": [1, 26]}, + "down": {"uv": [3, 26], "uv_size": [1, -26]} + } + }, + { + "origin": [-0.24018, -19.185, -16.12402], + "size": [0.53362, 1.28869, 25.62752], + "pivot": [0.02663, -18.54066, 9.18974], + "rotation": [0, 0, 0], + "uv": { + "north": {"uv": [13, 29], "uv_size": [1, 1]}, + "south": {"uv": [29, 13], "uv_size": [1, 1]}, + "up": {"uv": [4, 0], "uv_size": [1, 26]}, + "down": {"uv": [5, 26], "uv_size": [1, -26]} + } + }, + { + "origin": [-0.24018, -19.185, -16.12402], + "size": [0.53362, 1.28869, 25.62752], + "pivot": [0.02663, -18.54066, 9.18974], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [29, 14], "uv_size": [1, 1]}, + "south": {"uv": [15, 29], "uv_size": [1, 1]}, + "up": {"uv": [6, 0], "uv_size": [1, 26]}, + "down": {"uv": [7, 26], "uv_size": [1, -26]} + } + } + ] + }, + { + "name": "bone7", + "parent": "bone23", + "pivot": [-0.00215, -18.54737, 7.23332], + "cubes": [ + { + "origin": [-0.60253, -20.15762, -11.65478], + "size": [1.34712, 3.25329, 8.54567], + "pivot": [0.07104, -18.53043, -10.68705], + "rotation": [0, 0, 90], + "uv": { + "north": {"uv": [21, 0], "uv_size": [1, 3]}, + "south": {"uv": [25, 12], "uv_size": [1, 3]}, + "up": {"uv": [8, 0], "uv_size": [1, 9]}, + "down": {"uv": [9, 9], "uv_size": [1, -9]} + } + }, + { + "origin": [-0.60307, -20.15708, -11.65478], + "size": [1.34712, 3.25329, 8.54567], + "pivot": [0.0705, -18.53043, 4.5988], + "rotation": [0, 0, 45], + "uv": { + "north": {"uv": [15, 25], "uv_size": [1, 3]}, + "south": {"uv": [25, 15], "uv_size": [1, 3]}, + "up": {"uv": [8, 9], "uv_size": [1, 9]}, + "down": {"uv": [9, 18], "uv_size": [1, -9]} + } + }, + { + "origin": [-0.60307, -20.15708, -11.65478], + "size": [1.34712, 3.25329, 8.54567], + "pivot": [0.0705, -18.53043, 4.5988], + "rotation": [0, 0, 0], + "uv": { + "north": {"uv": [16, 25], "uv_size": [1, 3]}, + "south": {"uv": [17, 25], "uv_size": [1, 3]}, + "up": {"uv": [10, 0], "uv_size": [1, 9]}, + "down": {"uv": [10, 18], "uv_size": [1, -9]} + } + }, + { + "origin": [-0.60307, -20.15708, -11.65478], + "size": [1.34712, 3.25329, 8.54567], + "pivot": [0.0705, -18.53043, 4.5988], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [18, 25], "uv_size": [1, 3]}, + "south": {"uv": [25, 18], "uv_size": [1, 3]}, + "up": {"uv": [11, 0], "uv_size": [1, 9]}, + "down": {"uv": [11, 18], "uv_size": [1, -9]} + } + } + ] + }, + { + "name": "bone8", + "parent": "bone23", + "pivot": [-0.00215, -18.54737, -11.76668], + "cubes": [ + { + "origin": [-0.33412, -19.43774, -21.21069], + "size": [0.74488, 1.79888, 5.72526], + "pivot": [0.03832, -18.538, -19.67559], + "rotation": [0, 0, 90], + "uv": { + "north": {"uv": [25, 25], "uv_size": [1, 2]}, + "south": {"uv": [0, 26], "uv_size": [1, 2]}, + "up": {"uv": [22, 0], "uv_size": [1, 6]}, + "down": {"uv": [23, 21], "uv_size": [1, -6]} + } + }, + { + "origin": [-0.33442, -19.43744, -21.21069], + "size": [0.74488, 1.79888, 5.72526], + "pivot": [0.03802, -18.538, -11.22341], + "rotation": [0, 0, 45], + "uv": { + "north": {"uv": [26, 0], "uv_size": [1, 2]}, + "south": {"uv": [1, 26], "uv_size": [1, 2]}, + "up": {"uv": [23, 21], "uv_size": [1, 6]}, + "down": {"uv": [24, 6], "uv_size": [1, -6]} + } + }, + { + "origin": [-0.33442, -19.43744, -21.21069], + "size": [0.74488, 1.79888, 5.72526], + "pivot": [0.03802, -18.538, -11.22341], + "rotation": [0, 0, 0], + "uv": { + "north": {"uv": [2, 26], "uv_size": [1, 2]}, + "south": {"uv": [26, 2], "uv_size": [1, 2]}, + "up": {"uv": [24, 15], "uv_size": [1, 6]}, + "down": {"uv": [24, 27], "uv_size": [1, -6]} + } + }, + { + "origin": [-0.33442, -19.43744, -21.21069], + "size": [0.74488, 1.79888, 5.72526], + "pivot": [0.03802, -18.538, -11.22341], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [3, 26], "uv_size": [1, 2]}, + "south": {"uv": [4, 26], "uv_size": [1, 2]}, + "up": {"uv": [25, 0], "uv_size": [1, 6]}, + "down": {"uv": [25, 12], "uv_size": [1, -6]} + } + } + ] + }, + { + "name": "bone2", + "parent": "bone23", + "pivot": [-0.00215, -18.54737, 28.73332], + "cubes": [ + { + "origin": [-0.23997, -19.18522, 17.37598], + "size": [0.53362, 1.28869, 0.62752], + "pivot": [0.02684, -18.54066, 21.63474], + "rotation": [0, 0, 90], + "uv": { + "north": {"uv": [29, 23], "uv_size": [1, 1]}, + "south": {"uv": [24, 29], "uv_size": [1, 1]}, + "up": {"uv": [29, 24], "uv_size": [1, 1]}, + "down": {"uv": [25, 30], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.24018, -19.185, 17.37598], + "size": [0.53362, 1.28869, 0.62752], + "pivot": [0.02663, -18.54066, 27.68974], + "rotation": [0, 0, 45], + "uv": { + "north": {"uv": [29, 25], "uv_size": [1, 1]}, + "south": {"uv": [26, 29], "uv_size": [1, 1]}, + "up": {"uv": [29, 26], "uv_size": [1, 1]}, + "down": {"uv": [27, 30], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.24018, -19.185, 17.37598], + "size": [0.53362, 1.28869, 0.62752], + "pivot": [0.02663, -18.54066, 27.68974], + "rotation": [0, 0, 0], + "uv": { + "north": {"uv": [29, 27], "uv_size": [1, 1]}, + "south": {"uv": [28, 29], "uv_size": [1, 1]}, + "up": {"uv": [29, 28], "uv_size": [1, 1]}, + "down": {"uv": [29, 30], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.24018, -19.185, 17.37598], + "size": [0.53362, 1.28869, 0.62752], + "pivot": [0.02663, -18.54066, 27.68974], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [0, 30], "uv_size": [1, 1]}, + "south": {"uv": [30, 0], "uv_size": [1, 1]}, + "up": {"uv": [1, 30], "uv_size": [1, 1]}, + "down": {"uv": [30, 2], "uv_size": [1, -1]} + } + } + ] + }, + { + "name": "bone6", + "parent": "bone23", + "pivot": [0.02663, -18.54066, 2.15849], + "cubes": [ + { + "origin": [-0.29062, -19.30768, 1.69012], + "size": [0.63501, 1.53354, 1.23175], + "pivot": [0.02688, -18.54066, 3.28304], + "rotation": [0, 0, 90], + "uv": { + "north": {"uv": [20, 0], "uv_size": [1, 2]}, + "south": {"uv": [24, 6], "uv_size": [1, 2]}, + "up": {"uv": [29, 15], "uv_size": [1, 1]}, + "down": {"uv": [16, 30], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.29088, -19.30743, 1.69012], + "size": [0.63501, 1.53354, 1.23175], + "pivot": [0.02663, -18.54066, 10.48849], + "rotation": [0, 0, 45], + "uv": { + "north": {"uv": [19, 25], "uv_size": [1, 2]}, + "south": {"uv": [20, 25], "uv_size": [1, 2]}, + "up": {"uv": [29, 16], "uv_size": [1, 1]}, + "down": {"uv": [17, 30], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.29088, -19.30743, 1.69012], + "size": [0.63501, 1.53354, 1.23175], + "pivot": [0.02663, -18.54066, 10.48849], + "rotation": [0, 0, 0], + "uv": { + "north": {"uv": [21, 25], "uv_size": [1, 2]}, + "south": {"uv": [25, 21], "uv_size": [1, 2]}, + "up": {"uv": [29, 17], "uv_size": [1, 1]}, + "down": {"uv": [18, 30], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.29088, -19.30743, 1.69012], + "size": [0.63501, 1.53354, 1.23175], + "pivot": [0.02663, -18.54066, 10.48849], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [22, 25], "uv_size": [1, 2]}, + "south": {"uv": [25, 23], "uv_size": [1, 2]}, + "up": {"uv": [29, 18], "uv_size": [1, 1]}, + "down": {"uv": [19, 30], "uv_size": [1, -1]} + } + } + ] + }, + { + "name": "bone3", + "parent": "bone23", + "pivot": [0.02663, -18.54066, 17.47598], + "cubes": [ + { + "origin": [-0.07735, -18.79204, 9.47598], + "size": [0.20811, 0.50259, 8], + "pivot": [0.02671, -18.54066, 15.2369], + "rotation": [0, 0, 90], + "uv": { + "north": {"uv": [29, 19], "uv_size": [1, 1]}, + "south": {"uv": [20, 29], "uv_size": [1, 1]}, + "up": {"uv": [18, 17], "uv_size": [1, 8]}, + "down": {"uv": [19, 25], "uv_size": [1, -8]} + } + }, + { + "origin": [-0.07743, -18.79195, 9.47598], + "size": [0.20811, 0.50259, 8], + "pivot": [0.02663, -18.54066, 17.59835], + "rotation": [0, 0, 45], + "uv": { + "north": {"uv": [29, 20], "uv_size": [1, 1]}, + "south": {"uv": [21, 29], "uv_size": [1, 1]}, + "up": {"uv": [13, 20], "uv_size": [1, 8]}, + "down": {"uv": [20, 25], "uv_size": [1, -8]} + } + }, + { + "origin": [-0.07743, -18.79195, 9.47598], + "size": [0.20811, 0.50259, 8], + "pivot": [0.02663, -18.54066, 17.59835], + "rotation": [0, 0, 0], + "uv": { + "north": {"uv": [29, 21], "uv_size": [1, 1]}, + "south": {"uv": [22, 29], "uv_size": [1, 1]}, + "up": {"uv": [21, 17], "uv_size": [1, 8]}, + "down": {"uv": [14, 30], "uv_size": [1, -8]} + } + }, + { + "origin": [-0.07743, -18.79195, 9.47598], + "size": [0.20811, 0.50259, 8], + "pivot": [0.02663, -18.54066, 17.59835], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [29, 22], "uv_size": [1, 1]}, + "south": {"uv": [23, 29], "uv_size": [1, 1]}, + "up": {"uv": [22, 17], "uv_size": [1, 8]}, + "down": {"uv": [23, 8], "uv_size": [1, -8]} + } + } + ] + }, + { + "name": "bone22", + "parent": "bone4", + "pivot": [0.02684, -18.54066, 3.38298], + "cubes": [ + { + "origin": [-0.08423, -17.6592, 2.25283], + "size": [0.22215, 0.30156, 0.40994], + "pivot": [0.36213, -17.78179, 2.45236], + "rotation": [-45, 0, 0], + "uv": { + "north": {"uv": [17, 15], "uv_size": [1, 1]}, + "east": {"uv": [18, 15], "uv_size": [1, 1]}, + "south": {"uv": [19, 15], "uv_size": [1, 1]}, + "west": {"uv": [20, 15], "uv_size": [1, 1]}, + "up": {"uv": [21, 3], "uv_size": [1, 1]}, + "down": {"uv": [21, 16], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.08423, -17.85514, 1.80286], + "size": [0.22215, 0.40156, 0.98416], + "pivot": [0.36213, -17.78179, 2.45236], + "rotation": [25.75, 0, 0], + "uv": { + "north": {"uv": [22, 15], "uv_size": [1, 1]}, + "east": {"uv": [26, 4], "uv_size": [1, 1]}, + "south": {"uv": [5, 26], "uv_size": [1, 1]}, + "west": {"uv": [26, 5], "uv_size": [1, 1]}, + "up": {"uv": [6, 26], "uv_size": [1, 1]}, + "down": {"uv": [26, 7], "uv_size": [1, -1]} + } + }, + { + "origin": [0.55057, -17.86848, 1.79643], + "size": [0.22215, 0.40156, 0.98416], + "pivot": [0.36213, -17.78179, 2.45236], + "rotation": [25.75, 0, 45], + "uv": { + "north": {"uv": [7, 26], "uv_size": [1, 1]}, + "east": {"uv": [26, 7], "uv_size": [1, 1]}, + "south": {"uv": [8, 26], "uv_size": [1, 1]}, + "west": {"uv": [26, 8], "uv_size": [1, 1]}, + "up": {"uv": [9, 26], "uv_size": [1, 1]}, + "down": {"uv": [26, 10], "uv_size": [1, -1]} + } + }, + { + "origin": [0.55057, -17.66967, 2.2633], + "size": [0.22215, 0.30156, 0.40994], + "pivot": [0.36213, -17.78179, 2.45236], + "rotation": [-45, 0, 45], + "uv": { + "north": {"uv": [10, 26], "uv_size": [1, 1]}, + "east": {"uv": [26, 10], "uv_size": [1, 1]}, + "south": {"uv": [11, 26], "uv_size": [1, 1]}, + "west": {"uv": [26, 11], "uv_size": [1, 1]}, + "up": {"uv": [12, 26], "uv_size": [1, 1]}, + "down": {"uv": [26, 13], "uv_size": [1, -1]} + } + }, + { + "origin": [0.33935, -18.75335, 2.25283], + "size": [0.22215, 0.30156, 0.40994], + "pivot": [0.78571, -18.87595, 2.45236], + "rotation": [-45, 0, 90], + "uv": { + "north": {"uv": [26, 13], "uv_size": [1, 1]}, + "east": {"uv": [26, 14], "uv_size": [1, 1]}, + "south": {"uv": [26, 15], "uv_size": [1, 1]}, + "west": {"uv": [26, 16], "uv_size": [1, 1]}, + "up": {"uv": [26, 17], "uv_size": [1, 1]}, + "down": {"uv": [26, 19], "uv_size": [1, -1]} + } + }, + { + "origin": [0.33935, -18.94929, 1.80286], + "size": [0.22215, 0.40156, 0.98416], + "pivot": [0.78571, -18.87595, 2.45236], + "rotation": [25.75, 0, 90], + "uv": { + "north": {"uv": [26, 19], "uv_size": [1, 1]}, + "east": {"uv": [26, 20], "uv_size": [1, 1]}, + "south": {"uv": [26, 21], "uv_size": [1, 1]}, + "west": {"uv": [26, 22], "uv_size": [1, 1]}, + "up": {"uv": [26, 23], "uv_size": [1, 1]}, + "down": {"uv": [26, 25], "uv_size": [1, -1]} + } + }, + { + "origin": [0.97415, -18.96264, 1.79643], + "size": [0.22215, 0.40156, 0.98416], + "pivot": [0.78571, -18.87595, 2.45236], + "rotation": [25.75, 0, 135], + "uv": { + "north": {"uv": [26, 25], "uv_size": [1, 1]}, + "east": {"uv": [26, 26], "uv_size": [1, 1]}, + "south": {"uv": [27, 0], "uv_size": [1, 1]}, + "west": {"uv": [27, 1], "uv_size": [1, 1]}, + "up": {"uv": [27, 2], "uv_size": [1, 1]}, + "down": {"uv": [27, 4], "uv_size": [1, -1]} + } + }, + { + "origin": [0.97415, -18.76383, 2.2633], + "size": [0.22215, 0.30156, 0.40994], + "pivot": [0.78571, -18.87595, 2.45236], + "rotation": [-45, 0, 135], + "uv": { + "north": {"uv": [27, 4], "uv_size": [1, 1]}, + "east": {"uv": [5, 27], "uv_size": [1, 1]}, + "south": {"uv": [27, 5], "uv_size": [1, 1]}, + "west": {"uv": [6, 27], "uv_size": [1, 1]}, + "up": {"uv": [27, 6], "uv_size": [1, 1]}, + "down": {"uv": [7, 28], "uv_size": [1, -1]} + } + }, + { + "origin": [-1.03257, -18.11855, 1.81443], + "size": [0.22215, 0.30156, 0.40994], + "pivot": [-0.44733, -18.67954, 2.45236], + "rotation": [-45, 0, 180], + "uv": { + "north": {"uv": [27, 7], "uv_size": [1, 1]}, + "east": {"uv": [8, 27], "uv_size": [1, 1]}, + "south": {"uv": [27, 8], "uv_size": [1, 1]}, + "west": {"uv": [9, 27], "uv_size": [1, 1]}, + "up": {"uv": [27, 9], "uv_size": [1, 1]}, + "down": {"uv": [10, 28], "uv_size": [1, -1]} + } + }, + { + "origin": [-1.03257, -18.19446, 2.07221], + "size": [0.22215, 0.40156, 0.98416], + "pivot": [-0.44733, -18.67954, 2.45236], + "rotation": [25.75, 0, -180], + "uv": { + "north": {"uv": [27, 10], "uv_size": [1, 1]}, + "east": {"uv": [11, 27], "uv_size": [1, 1]}, + "south": {"uv": [27, 11], "uv_size": [1, 1]}, + "west": {"uv": [12, 27], "uv_size": [1, 1]}, + "up": {"uv": [27, 12], "uv_size": [1, 1]}, + "down": {"uv": [27, 14], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.79548, -18.45982, 1.94422], + "size": [0.22215, 0.40156, 0.98416], + "pivot": [-0.44733, -18.67954, 2.45236], + "rotation": [25.75, 0, -135], + "uv": { + "north": {"uv": [27, 14], "uv_size": [1, 1]}, + "east": {"uv": [27, 15], "uv_size": [1, 1]}, + "south": {"uv": [27, 16], "uv_size": [1, 1]}, + "west": {"uv": [27, 17], "uv_size": [1, 1]}, + "up": {"uv": [27, 18], "uv_size": [1, 1]}, + "down": {"uv": [19, 28], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.79548, -18.32687, 2.02275], + "size": [0.22215, 0.30156, 0.40994], + "pivot": [-0.44733, -18.67954, 2.45236], + "rotation": [-45, 0, -135], + "uv": { + "north": {"uv": [27, 19], "uv_size": [1, 1]}, + "east": {"uv": [20, 27], "uv_size": [1, 1]}, + "south": {"uv": [27, 20], "uv_size": [1, 1]}, + "west": {"uv": [21, 27], "uv_size": [1, 1]}, + "up": {"uv": [27, 21], "uv_size": [1, 1]}, + "down": {"uv": [22, 28], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.41952, -18.35563, 2.05151], + "size": [0.22215, 0.30156, 0.40994], + "pivot": [-0.44733, -18.67954, 2.45236], + "rotation": [-45, 0, -90], + "uv": { + "north": {"uv": [27, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 27], "uv_size": [1, 1]}, + "south": {"uv": [27, 23], "uv_size": [1, 1]}, + "west": {"uv": [24, 27], "uv_size": [1, 1]}, + "up": {"uv": [27, 24], "uv_size": [1, 1]}, + "down": {"uv": [25, 28], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.41952, -18.49646, 1.92655], + "size": [0.22215, 0.40156, 0.98416], + "pivot": [-0.44733, -18.67954, 2.45236], + "rotation": [25.75, 0, -90], + "uv": { + "north": {"uv": [27, 25], "uv_size": [1, 1]}, + "east": {"uv": [26, 27], "uv_size": [1, 1]}, + "south": {"uv": [27, 26], "uv_size": [1, 1]}, + "west": {"uv": [27, 27], "uv_size": [1, 1]}, + "up": {"uv": [0, 28], "uv_size": [1, 1]}, + "down": {"uv": [28, 1], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.12491, -18.28291, 2.02955], + "size": [0.22215, 0.40156, 0.98416], + "pivot": [-0.44733, -18.67954, 2.45236], + "rotation": [25.75, 0, -45], + "uv": { + "north": {"uv": [1, 28], "uv_size": [1, 1]}, + "east": {"uv": [28, 1], "uv_size": [1, 1]}, + "south": {"uv": [2, 28], "uv_size": [1, 1]}, + "west": {"uv": [28, 2], "uv_size": [1, 1]}, + "up": {"uv": [3, 28], "uv_size": [1, 1]}, + "down": {"uv": [28, 4], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.12491, -18.18799, 1.88387], + "size": [0.22215, 0.30156, 0.40994], + "pivot": [-0.44733, -18.67954, 2.45236], + "rotation": [-45, 0, -45], + "uv": { + "north": {"uv": [4, 28], "uv_size": [1, 1]}, + "east": {"uv": [28, 4], "uv_size": [1, 1]}, + "south": {"uv": [5, 28], "uv_size": [1, 1]}, + "west": {"uv": [28, 5], "uv_size": [1, 1]}, + "up": {"uv": [6, 28], "uv_size": [1, 1]}, + "down": {"uv": [28, 7], "uv_size": [1, -1]} + } + } + ] + }, + { + "name": "bone21", + "parent": "bone4", + "pivot": [0.02684, -18.54066, 2.69609], + "cubes": [ + { + "origin": [-0.08423, -17.77908, 2.49113], + "size": [0.22215, 0.14844, 0.40994], + "uv": { + "north": {"uv": [7, 28], "uv_size": [1, 1]}, + "east": {"uv": [28, 7], "uv_size": [1, 1]}, + "south": {"uv": [8, 28], "uv_size": [1, 1]}, + "west": {"uv": [28, 8], "uv_size": [1, 1]}, + "up": {"uv": [9, 28], "uv_size": [1, 1]}, + "down": {"uv": [28, 10], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.08423, -17.77908, 2.49113], + "size": [0.22215, 0.14844, 0.40994], + "pivot": [0.02684, -18.54066, 2.69609], + "rotation": [0, 0, -90], + "uv": { + "north": {"uv": [10, 28], "uv_size": [1, 1]}, + "east": {"uv": [28, 10], "uv_size": [1, 1]}, + "south": {"uv": [11, 28], "uv_size": [1, 1]}, + "west": {"uv": [28, 11], "uv_size": [1, 1]}, + "up": {"uv": [12, 28], "uv_size": [1, 1]}, + "down": {"uv": [28, 13], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.08423, -17.77908, 2.49113], + "size": [0.22215, 0.14844, 0.40994], + "pivot": [0.02684, -18.54066, 2.69609], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [13, 28], "uv_size": [1, 1]}, + "east": {"uv": [28, 13], "uv_size": [1, 1]}, + "south": {"uv": [28, 14], "uv_size": [1, 1]}, + "west": {"uv": [15, 28], "uv_size": [1, 1]}, + "up": {"uv": [28, 15], "uv_size": [1, 1]}, + "down": {"uv": [16, 29], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.08423, -17.77908, 2.49113], + "size": [0.22215, 0.14844, 0.40994], + "pivot": [0.02684, -18.54066, 2.69609], + "rotation": [0, 0, -135], + "uv": { + "north": {"uv": [28, 16], "uv_size": [1, 1]}, + "east": {"uv": [17, 28], "uv_size": [1, 1]}, + "south": {"uv": [28, 17], "uv_size": [1, 1]}, + "west": {"uv": [18, 28], "uv_size": [1, 1]}, + "up": {"uv": [28, 18], "uv_size": [1, 1]}, + "down": {"uv": [19, 29], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.08423, -17.77908, 2.49113], + "size": [0.22215, 0.14844, 0.40994], + "pivot": [0.02684, -18.54066, 2.69609], + "rotation": [0, 0, 180], + "uv": { + "north": {"uv": [28, 19], "uv_size": [1, 1]}, + "east": {"uv": [20, 28], "uv_size": [1, 1]}, + "south": {"uv": [28, 20], "uv_size": [1, 1]}, + "west": {"uv": [21, 28], "uv_size": [1, 1]}, + "up": {"uv": [28, 21], "uv_size": [1, 1]}, + "down": {"uv": [22, 29], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.08423, -17.77908, 2.49113], + "size": [0.22215, 0.14844, 0.40994], + "pivot": [0.02684, -18.54066, 2.69609], + "rotation": [0, 0, 90], + "uv": { + "north": {"uv": [28, 22], "uv_size": [1, 1]}, + "east": {"uv": [23, 28], "uv_size": [1, 1]}, + "south": {"uv": [28, 23], "uv_size": [1, 1]}, + "west": {"uv": [24, 28], "uv_size": [1, 1]}, + "up": {"uv": [28, 24], "uv_size": [1, 1]}, + "down": {"uv": [25, 29], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.08423, -17.77908, 2.49113], + "size": [0.22215, 0.14844, 0.40994], + "pivot": [0.02684, -18.54066, 2.69609], + "rotation": [0, 0, 135], + "uv": { + "north": {"uv": [28, 25], "uv_size": [1, 1]}, + "east": {"uv": [26, 28], "uv_size": [1, 1]}, + "south": {"uv": [28, 26], "uv_size": [1, 1]}, + "west": {"uv": [27, 28], "uv_size": [1, 1]}, + "up": {"uv": [28, 27], "uv_size": [1, 1]}, + "down": {"uv": [28, 29], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.08423, -17.77908, 2.49113], + "size": [0.22215, 0.14844, 0.40994], + "pivot": [0.02684, -18.54066, 2.69609], + "rotation": [0, 0, 45], + "uv": { + "north": {"uv": [0, 29], "uv_size": [1, 1]}, + "east": {"uv": [29, 0], "uv_size": [1, 1]}, + "south": {"uv": [1, 29], "uv_size": [1, 1]}, + "west": {"uv": [29, 1], "uv_size": [1, 1]}, + "up": {"uv": [2, 29], "uv_size": [1, 1]}, + "down": {"uv": [29, 3], "uv_size": [1, -1]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/textures/entity/cannon_shell.png b/src/main/resources/assets/superbwarfare/textures/entity/cannon_shell.png new file mode 100644 index 000000000..8741d13a5 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/entity/cannon_shell.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/entity/cannon_shell_e.png b/src/main/resources/assets/superbwarfare/textures/entity/cannon_shell_e.png new file mode 100644 index 000000000..589f0de4b Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/entity/cannon_shell_e.png differ diff --git a/src/main/resources/assets/superbwarfare/textures/entity/rpg_rocket.png b/src/main/resources/assets/superbwarfare/textures/entity/rpg_rocket.png new file mode 100644 index 000000000..991b7800f Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/entity/rpg_rocket.png differ