diff --git a/common/src/main/java/dev/itsmeow/betteranimalsplus/client/ClientLifecycleHandler.java b/common/src/main/java/dev/itsmeow/betteranimalsplus/client/ClientLifecycleHandler.java index 59a3d463..bbc07022 100644 --- a/common/src/main/java/dev/itsmeow/betteranimalsplus/client/ClientLifecycleHandler.java +++ b/common/src/main/java/dev/itsmeow/betteranimalsplus/client/ClientLifecycleHandler.java @@ -204,6 +204,16 @@ public static void registerEntityRenders() { } // s.translate(0.0F, -1.2F, 0.0F); })); + R.addRender(ModEntities.GAZELLE::getEntityType, 0.8F, r -> r.tVariant().childScale(0.6F).mMapped(e -> { + String v = e.getVariantNameOrEmpty(); + if(v.equals("blackbuck_2")) { + return "blackbuck_gazelle"; + } + return v.isEmpty() ? "blackbuck_gazelle" : v + "_gazelle"; + }, ModelGazelle::new, "blackbuck_gazelle") + .mEntry(ModelGazelle::new, "chinkara_gazelle") + .mEntry(ModelGazelle::new, "erlanger_gazelle") + .mEntry(ModelGazelle::new, "springbok_gazelle")); RenderFactory.addRender(ModEntities.PROJECTILE_BADGER_DIRT::get, RenderFactory.nothing()); } @@ -264,6 +274,11 @@ public static void layerDefinitions(ImmutableMap.Builder extends ModelBAP { + + public ModelPart body; + public ModelPart ass; + public ModelPart lHindLeg01; + public ModelPart rHindLeg01; + public ModelPart tail; + public ModelPart chest; + public ModelPart neck; + public ModelPart head; + public ModelPart snout; + public ModelPart lEar; + public ModelPart rEar; + public ModelPart throat; + public ModelPart lowerJaw; + public ModelPart lForeleg01; + public ModelPart rForeleg01; + + public ModelGazelle(ModelPart root) { + this.body = root.getChild("body"); + this.ass = body.getChild("ass"); + this.lHindLeg01 = ass.getChild("lHindLeg01"); + this.rHindLeg01 = ass.getChild("rHindLeg01"); + this.tail = ass.getChild("tail"); + this.chest = body.getChild("chest"); + this.neck = chest.getChild("neck"); + this.head = neck.getChild("head"); + this.throat = head.getChild("throat"); + this.lowerJaw = throat.getChild("lowerJaw"); + this.lForeleg01 = body.getChild("lForeleg01"); + this.rForeleg01 = body.getChild("rForeleg01"); + } + + public static LayerDefinition createBlackbuck() { + MeshDefinition meshdefinition = new MeshDefinition(); + PartDefinition partdefinition = meshdefinition.getRoot(); + PartDefinition body = partdefinition.addOrReplaceChild("body", CubeListBuilder.create().texOffs(0, 0).addBox(-3.5F, -3.5F, 0.0F, 7.0F, 7.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 9.0F, -8.0F)); + PartDefinition ass = body.addOrReplaceChild("ass", CubeListBuilder.create().texOffs(0, 20).addBox(-3.0F, -3.5F, 0.0F, 6.0F, 7.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.4F, 11.3F, -0.1745F, 0.0F, 0.0F)); + PartDefinition lHindLeg01 = ass.addOrReplaceChild("lHindLeg01", CubeListBuilder.create().texOffs(46, 0).addBox(-0.7F, -2.45F, -2.05F, 4.0F, 8.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(1.25F, -0.35F, 2.95F, -0.2269F, 0.0F, 0.0F)); + PartDefinition lHindLeg02 = lHindLeg01.addOrReplaceChild("lHindLeg02", CubeListBuilder.create().texOffs(48, 15).addBox(-1.55F, -0.05F, -1.4F, 3.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.5F, 4.0F, -1.0F, 0.9076F, 0.0F, 0.0F)); + PartDefinition lHindLeg03 = lHindLeg02.addOrReplaceChild("lHindLeg03", CubeListBuilder.create().texOffs(45, 27).addBox(-1.0F, 0.5F, -1.1F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.25F, 4.75F, 1.0F, -0.5236F, 0.0F, 0.0F)); + PartDefinition lHindHoofClaw01a = lHindLeg03.addOrReplaceChild("lHindHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.55F, 8.15F, -0.2F, 0.0F, -0.0524F, 0.0F)); + PartDefinition lHindHoofClaw01b = lHindHoofClaw01a.addOrReplaceChild("lHindHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition lHindHoofClaw02a = lHindLeg03.addOrReplaceChild("lHindHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.45F, 8.15F, -0.2F, 0.0F, 0.0873F, 0.0F)); + PartDefinition lHindHoofClaw02b2 = lHindHoofClaw02a.addOrReplaceChild("lHindHoofClaw02b2", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rHindLeg01 = ass.addOrReplaceChild("rHindLeg01", CubeListBuilder.create().texOffs(46, 0).mirror().addBox(-3.3F, -2.45F, -2.05F, 4.0F, 8.0F, 5.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(-1.25F, -0.35F, 2.95F, -0.2269F, 0.0F, 0.0F)); + PartDefinition rHindLeg02 = rHindLeg01.addOrReplaceChild("rHindLeg02", CubeListBuilder.create().texOffs(48, 15).mirror().addBox(-1.45F, -0.05F, -1.4F, 3.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-1.5F, 4.0F, -1.0F, 0.9076F, 0.0F, 0.0F)); + PartDefinition rHindLeg03 = rHindLeg02.addOrReplaceChild("rHindLeg03", CubeListBuilder.create().texOffs(45, 27).mirror().addBox(-1.0F, 0.5F, -1.1F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.25F, 4.75F, 1.0F, -0.5236F, 0.0F, 0.0F)); + PartDefinition rHindHoofClaw01a = rHindLeg03.addOrReplaceChild("rHindHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.55F, 8.15F, -0.2F, 0.0F, 0.0524F, 0.0F)); + PartDefinition rHindHoofClaw01b = rHindHoofClaw01a.addOrReplaceChild("rHindHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rHindHoofClaw02a = rHindLeg03.addOrReplaceChild("rHindHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.45F, 8.15F, -0.2F, 0.0F, -0.0873F, 0.0F)); + PartDefinition rHindHoofClaw02b = rHindHoofClaw02a.addOrReplaceChild("rHindHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition tail = ass.addOrReplaceChild("tail", CubeListBuilder.create().texOffs(54, 25).addBox(-1.0F, -0.1F, -1.05F, 2.0F, 3.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -2.6F, 5.2F, 0.576F, 0.0F, 0.0F)); + PartDefinition rTailFur_r1 = tail.addOrReplaceChild("rTailFur_r1", CubeListBuilder.create().texOffs(55, 37).mirror().addBox(-0.75F, -1.5F, -2.5F, 0.0F, 7.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -0.1745F, 0.3054F, 0.0F)); + PartDefinition lTailFur_r1 = tail.addOrReplaceChild("lTailFur_r1", CubeListBuilder.create().texOffs(55, 37).addBox(0.75F, -1.5F, -2.5F, 0.0F, 7.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -0.1745F, -0.3054F, 0.0F)); + PartDefinition mTailFur = tail.addOrReplaceChild("mTailFur", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 1.5F, -0.25F, -0.3054F, 0.0F, 0.0F)); + PartDefinition Box_r1 = mTailFur.addOrReplaceChild("Box_r1", CubeListBuilder.create().texOffs(54, 31).mirror().addBox(-0.5F, 0.5F, -0.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + PartDefinition chest = body.addOrReplaceChild("chest", CubeListBuilder.create().texOffs(0, 34).addBox(-2.5F, -3.0F, -5.0F, 5.0F, 6.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.8F, 2.4F, -0.8378F, 0.0F, 0.0F)); + PartDefinition neck = chest.addOrReplaceChild("neck", CubeListBuilder.create().texOffs(0, 45).addBox(-2.0F, -2.5F, -6.0F, 4.0F, 5.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.4F, -3.0F, -0.3142F, 0.0F, 0.0F)); + PartDefinition head = neck.addOrReplaceChild("head", CubeListBuilder.create().texOffs(17, 55).addBox(-2.0F, -3.0F, -4.0F, 4.0F, 5.0F, 4.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(0.0F, 1.1F, -5.0F, -0.3142F, 0.0F, 0.0F)); + PartDefinition snout = head.addOrReplaceChild("snout", CubeListBuilder.create().texOffs(0, 57).addBox(-1.0F, -0.45F, -0.75F, 2.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.45F, -2.35F, 0.2618F, 0.0F, 0.0F)); + PartDefinition lEar = head.addOrReplaceChild("lEar", CubeListBuilder.create().texOffs(22, 48).mirror().addBox(-1.0F, -0.7F, -3.35F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(1.35F, -1.75F, -3.25F, -0.0873F, -1.1257F, 0.0F)); + PartDefinition rEar = head.addOrReplaceChild("rEar", CubeListBuilder.create().texOffs(22, 48).addBox(-1.0F, -0.7F, -3.35F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.35F, -1.5F, -3.25F, -0.0873F, 1.1257F, 0.0F)); + PartDefinition throat = head.addOrReplaceChild("throat", CubeListBuilder.create().texOffs(35, 57).addBox(-1.0F, 0.0F, -1.5F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.01F)), PartPose.offset(0.0F, 0.95F, -0.24F)); + PartDefinition lowerJaw = throat.addOrReplaceChild("lowerJaw", CubeListBuilder.create().texOffs(36, 61).addBox(-1.0F, 0.0F, -0.49F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 1.75F, -0.01F)); + PartDefinition upperMuzzle = head.addOrReplaceChild("upperMuzzle", CubeListBuilder.create(), PartPose.offset(0.0F, 1.75F, -1.0F)); + PartDefinition rUpperLip_r1 = upperMuzzle.addOrReplaceChild("rUpperLip_r1", CubeListBuilder.create().texOffs(7, 56).mirror().addBox(-1.5F, -0.75F, -1.25F, 2.0F, 4.0F, 2.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.0436F, -0.1309F)); + PartDefinition lUpperLip_r1 = upperMuzzle.addOrReplaceChild("lUpperLip_r1", CubeListBuilder.create().texOffs(7, 56).addBox(-0.5F, -0.75F, -1.25F, 2.0F, 4.0F, 2.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0436F, 0.1309F)); + PartDefinition lHorn01 = head.addOrReplaceChild("lHorn01", CubeListBuilder.create(), PartPose.offsetAndRotation(1.0F, 0.2F, -3.4F, -0.2618F, -0.3927F, 0.0F)); + PartDefinition cube_r1 = lHorn01.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 3.0F, new CubeDeformation(-0.3F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn02 = lHorn01.addOrReplaceChild("lHorn02", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -2.25F, 0.9163F, 0.0F, 0.3491F)); + PartDefinition cube_r2 = lHorn02.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(21, 39).addBox(-1.0F, -2.5F, -1.0F, 2.0F, 3.0F, 2.0F, new CubeDeformation(-0.4F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + PartDefinition lHorn03 = lHorn02.addOrReplaceChild("lHorn03", CubeListBuilder.create().texOffs(30, 40).addBox(-0.5F, -0.5F, -3.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -1.75F, 0.25F, -0.9163F, 0.5236F, 0.0F)); + PartDefinition lHorn04 = lHorn03.addOrReplaceChild("lHorn04", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -2.75F, 0.0F, -1.2217F, -1.6581F)); + PartDefinition cube_r3 = lHorn04.addOrReplaceChild("cube_r3", CubeListBuilder.create().texOffs(39, 42).addBox(-2.0F, -0.5F, -0.5F, 2.0F, 1.0F, 1.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, -0.1745F, 0.0F, 0.0F)); + PartDefinition lHorn05 = lHorn04.addOrReplaceChild("lHorn05", CubeListBuilder.create(), PartPose.offsetAndRotation(-2.0F, 0.0F, 0.0F, 0.0F, 1.1781F, 0.0F)); + PartDefinition cube_r4 = lHorn05.addOrReplaceChild("cube_r4", CubeListBuilder.create().texOffs(32, 45).addBox(-0.4F, -0.5F, -2.5F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0873F)); + PartDefinition lHorn06 = lHorn05.addOrReplaceChild("lHorn06", CubeListBuilder.create().texOffs(41, 46).addBox(-0.5F, -0.5F, -0.65F, 2.0F, 1.0F, 1.0F, new CubeDeformation(-0.25F)), PartPose.offsetAndRotation(0.25F, 0.0F, -2.25F, 0.0F, 1.4399F, 0.0F)); + PartDefinition rHorn01 = head.addOrReplaceChild("rHorn01", CubeListBuilder.create(), PartPose.offsetAndRotation(-1.0F, 0.2F, -3.4F, -0.2618F, 0.3927F, 0.0F)); + PartDefinition cube_r5 = rHorn01.addOrReplaceChild("cube_r5", CubeListBuilder.create().texOffs(22, 34).mirror().addBox(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 3.0F, new CubeDeformation(-0.3F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn02 = rHorn01.addOrReplaceChild("rHorn02", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -2.25F, 0.9163F, 0.0F, -0.3491F)); + PartDefinition cube_r6 = rHorn02.addOrReplaceChild("cube_r6", CubeListBuilder.create().texOffs(21, 39).mirror().addBox(-1.0F, -2.5F, -1.0F, 2.0F, 3.0F, 2.0F, new CubeDeformation(-0.4F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); + PartDefinition rHorn03 = rHorn02.addOrReplaceChild("rHorn03", CubeListBuilder.create().texOffs(30, 40).mirror().addBox(-0.5F, -0.5F, -3.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, -1.75F, 0.25F, -0.9163F, -0.5236F, 0.0F)); + PartDefinition rHorn04 = rHorn03.addOrReplaceChild("rHorn04", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -2.75F, 0.0F, 1.2217F, 1.6581F)); + PartDefinition cube_r7 = rHorn04.addOrReplaceChild("cube_r7", CubeListBuilder.create().texOffs(39, 42).mirror().addBox(0.0F, -0.5F, -0.5F, 2.0F, 1.0F, 1.0F, new CubeDeformation(-0.1F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, -0.1745F, 0.0F, 0.0F)); + PartDefinition rHorn05 = rHorn04.addOrReplaceChild("rHorn05", CubeListBuilder.create(), PartPose.offsetAndRotation(2.0F, 0.0F, 0.0F, 0.0F, -1.1781F, 0.0F)); + PartDefinition cube_r8 = rHorn05.addOrReplaceChild("cube_r8", CubeListBuilder.create().texOffs(32, 45).mirror().addBox(-0.6F, -0.5F, -2.5F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.0873F)); + PartDefinition rHorn06 = rHorn05.addOrReplaceChild("rHorn06", CubeListBuilder.create().texOffs(41, 46).mirror().addBox(-1.5F, -0.5F, -0.65F, 2.0F, 1.0F, 1.0F, new CubeDeformation(-0.25F)).mirror(false), PartPose.offsetAndRotation(-0.25F, 0.0F, -2.25F, 0.0F, -1.4399F, 0.0F)); + PartDefinition lForeleg01 = body.addOrReplaceChild("lForeleg01", CubeListBuilder.create().texOffs(29, 0).addBox(-0.9F, -2.5F, -1.95F, 3.0F, 7.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.5F, 1.0F, 2.25F, 0.1396F, 0.0F, -0.0436F)); + PartDefinition lForeleg02 = lForeleg01.addOrReplaceChild("lForeleg02", CubeListBuilder.create().texOffs(31, 20).addBox(-1.85F, 0.05F, -1.5F, 3.0F, 2.0F, 3.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(1.0F, 4.25F, 0.0F, 0.0F, 0.0F, 0.0436F)); + PartDefinition lForeleg03 = lForeleg02.addOrReplaceChild("lForeleg03", CubeListBuilder.create().texOffs(45, 26).addBox(-1.0F, -0.5F, -1.1F, 2.0F, 9.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.5F, 1.75F, 0.0F, -0.1396F, 0.0F, 0.0F)); + PartDefinition lFrontHoofClaw01a = lForeleg03.addOrReplaceChild("lFrontHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.55F, 8.15F, -0.2F, 0.0F, -0.0524F, 0.0F)); + PartDefinition lFrontHoofClaw01b = lFrontHoofClaw01a.addOrReplaceChild("lFrontHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition lFrontHoofClaw02a = lForeleg03.addOrReplaceChild("lFrontHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.45F, 8.15F, -0.2F, 0.0F, 0.0873F, 0.0F)); + PartDefinition lFrontHoofClaw02b = lFrontHoofClaw02a.addOrReplaceChild("lFrontHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rForeleg01 = body.addOrReplaceChild("rForeleg01", CubeListBuilder.create().texOffs(29, 0).mirror().addBox(-2.1F, -2.5F, -1.95F, 3.0F, 7.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-2.5F, 1.0F, 2.25F, 0.1396F, 0.0F, 0.0436F)); + PartDefinition rForeleg02 = rForeleg01.addOrReplaceChild("rForeleg02", CubeListBuilder.create().texOffs(31, 20).mirror().addBox(-1.15F, 0.05F, -1.5F, 3.0F, 2.0F, 3.0F, new CubeDeformation(-0.1F)).mirror(false), PartPose.offsetAndRotation(-1.0F, 4.25F, 0.0F, 0.0F, 0.0F, -0.0436F)); + PartDefinition rForeleg03 = rForeleg02.addOrReplaceChild("rForeleg03", CubeListBuilder.create().texOffs(45, 26).mirror().addBox(-1.0F, -0.5F, -1.1F, 2.0F, 9.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.5F, 1.75F, 0.0F, -0.1396F, 0.0F, 0.0F)); + PartDefinition rFrontHoofClaw01a = rForeleg03.addOrReplaceChild("rFrontHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.55F, 8.15F, -0.2F, 0.0F, 0.0524F, 0.0F)); + PartDefinition rFrontHoofClaw01b = rFrontHoofClaw01a.addOrReplaceChild("rFrontHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rFrontHoofClaw02a = rForeleg03.addOrReplaceChild("rFrontHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.45F, 8.15F, -0.2F, 0.0F, -0.0873F, 0.0F)); + PartDefinition rFrontHoofClaw02b = rFrontHoofClaw02a.addOrReplaceChild("rFrontHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + return LayerDefinition.create(meshdefinition, 64, 64); + } + + public static LayerDefinition createChinkara() { + MeshDefinition meshdefinition = new MeshDefinition(); + PartDefinition partdefinition = meshdefinition.getRoot(); + PartDefinition body = partdefinition.addOrReplaceChild("body", CubeListBuilder.create().texOffs(0, 0).addBox(-3.5F, -3.5F, 0.0F, 7.0F, 7.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 9.0F, -8.0F)); + PartDefinition ass = body.addOrReplaceChild("ass", CubeListBuilder.create().texOffs(0, 20).addBox(-3.0F, -3.5F, 0.0F, 6.0F, 6.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.4F, 11.3F, -0.1745F, 0.0F, 0.0F)); + PartDefinition lHindLeg01 = ass.addOrReplaceChild("lHindLeg01", CubeListBuilder.create().texOffs(46, 0).addBox(-0.7F, -2.45F, -2.05F, 4.0F, 8.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(1.25F, -0.35F, 2.95F, -0.2269F, 0.0F, 0.0F)); + PartDefinition lHindLeg02 = lHindLeg01.addOrReplaceChild("lHindLeg02", CubeListBuilder.create().texOffs(48, 15).addBox(-1.55F, -0.05F, -1.4F, 3.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.5F, 4.0F, -1.0F, 0.9076F, 0.0F, 0.0F)); + PartDefinition lHindLeg03 = lHindLeg02.addOrReplaceChild("lHindLeg03", CubeListBuilder.create().texOffs(45, 27).addBox(-1.0F, 0.5F, -1.1F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.25F, 4.75F, 1.0F, -0.5236F, 0.0F, 0.0F)); + PartDefinition lHindHoofClaw01a = lHindLeg03.addOrReplaceChild("lHindHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.55F, 8.15F, -0.2F, 0.0F, -0.0524F, 0.0F)); + PartDefinition lHindHoofClaw01b = lHindHoofClaw01a.addOrReplaceChild("lHindHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition lHindHoofClaw02a = lHindLeg03.addOrReplaceChild("lHindHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.45F, 8.15F, -0.2F, 0.0F, 0.0873F, 0.0F)); + PartDefinition lHindHoofClaw02b2 = lHindHoofClaw02a.addOrReplaceChild("lHindHoofClaw02b2", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rHindLeg01 = ass.addOrReplaceChild("rHindLeg01", CubeListBuilder.create().texOffs(46, 0).mirror().addBox(-3.3F, -2.45F, -2.05F, 4.0F, 8.0F, 5.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(-1.25F, -0.35F, 2.95F, -0.2269F, 0.0F, 0.0F)); + PartDefinition rHindLeg02 = rHindLeg01.addOrReplaceChild("rHindLeg02", CubeListBuilder.create().texOffs(48, 15).mirror().addBox(-1.45F, -0.05F, -1.4F, 3.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-1.5F, 4.0F, -1.0F, 0.9076F, 0.0F, 0.0F)); + PartDefinition rHindLeg03 = rHindLeg02.addOrReplaceChild("rHindLeg03", CubeListBuilder.create().texOffs(45, 27).mirror().addBox(-1.0F, 0.5F, -1.1F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.25F, 4.75F, 1.0F, -0.5236F, 0.0F, 0.0F)); + PartDefinition rHindHoofClaw01a = rHindLeg03.addOrReplaceChild("rHindHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.55F, 8.15F, -0.2F, 0.0F, 0.0524F, 0.0F)); + PartDefinition rHindHoofClaw01b = rHindHoofClaw01a.addOrReplaceChild("rHindHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rHindHoofClaw02a = rHindLeg03.addOrReplaceChild("rHindHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.45F, 8.15F, -0.2F, 0.0F, -0.0873F, 0.0F)); + PartDefinition rHindHoofClaw02b = rHindHoofClaw02a.addOrReplaceChild("rHindHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition tail = ass.addOrReplaceChild("tail", CubeListBuilder.create().texOffs(54, 25).addBox(-1.0F, -0.1F, -1.05F, 2.0F, 3.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -2.6F, 5.2F, 0.576F, 0.0F, 0.0F)); + PartDefinition rTailFur_r1 = tail.addOrReplaceChild("rTailFur_r1", CubeListBuilder.create().texOffs(55, 37).mirror().addBox(-0.75F, -1.5F, -2.5F, 0.0F, 7.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -0.1745F, 0.3054F, 0.0F)); + PartDefinition lTailFur_r1 = tail.addOrReplaceChild("lTailFur_r1", CubeListBuilder.create().texOffs(55, 37).addBox(0.75F, -1.5F, -2.5F, 0.0F, 7.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -0.1745F, -0.3054F, 0.0F)); + PartDefinition mTailFur = tail.addOrReplaceChild("mTailFur", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 1.5F, -0.25F, -0.3054F, 0.0F, 0.0F)); + PartDefinition Box_r1 = mTailFur.addOrReplaceChild("Box_r1", CubeListBuilder.create().texOffs(54, 31).mirror().addBox(-0.5F, 0.5F, -0.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + PartDefinition chest = body.addOrReplaceChild("chest", CubeListBuilder.create().texOffs(0, 34).addBox(-2.5F, -3.0F, -5.0F, 5.0F, 6.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.8F, 2.4F, -0.8378F, 0.0F, 0.0F)); + PartDefinition neck = chest.addOrReplaceChild("neck", CubeListBuilder.create().texOffs(0, 45).addBox(-2.0F, -2.5F, -6.0F, 4.0F, 5.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.4F, -3.0F, -0.3142F, 0.0F, 0.0F)); + PartDefinition head = neck.addOrReplaceChild("head", CubeListBuilder.create().texOffs(17, 55).addBox(-2.0F, -3.25F, -4.0F, 4.0F, 5.0F, 4.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(0.0F, 1.1F, -5.0F, -0.3142F, 0.0F, 0.0F)); + PartDefinition snout = head.addOrReplaceChild("snout", CubeListBuilder.create().texOffs(0, 57).addBox(-1.0F, -0.5F, -0.75F, 2.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.45F, -2.35F, 0.2618F, 0.0F, 0.0F)); + PartDefinition lEar = head.addOrReplaceChild("lEar", CubeListBuilder.create().texOffs(22, 48).mirror().addBox(-1.0F, -0.7F, -3.35F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(1.35F, -1.75F, -3.25F, -0.0873F, -0.9512F, 0.0F)); + PartDefinition rEar = head.addOrReplaceChild("rEar", CubeListBuilder.create().texOffs(22, 48).addBox(-1.0F, -0.7F, -3.35F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.35F, -1.5F, -3.25F, -0.0873F, 0.9512F, 0.0F)); + PartDefinition throat = head.addOrReplaceChild("throat", CubeListBuilder.create().texOffs(35, 57).addBox(-1.0F, 0.0F, -1.5F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.01F)), PartPose.offset(0.0F, 0.95F, -0.24F)); + PartDefinition lowerJaw = throat.addOrReplaceChild("lowerJaw", CubeListBuilder.create().texOffs(36, 61).addBox(-1.0F, 0.0F, -0.49F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 1.75F, -0.01F)); + PartDefinition upperMuzzle = head.addOrReplaceChild("upperMuzzle", CubeListBuilder.create(), PartPose.offset(0.0F, 1.75F, -1.0F)); + PartDefinition rUpperLip_r1 = upperMuzzle.addOrReplaceChild("rUpperLip_r1", CubeListBuilder.create().texOffs(7, 56).mirror().addBox(-1.5F, -0.75F, -1.25F, 2.0F, 4.0F, 2.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.0436F, -0.1309F)); + PartDefinition lUpperLip_r1 = upperMuzzle.addOrReplaceChild("lUpperLip_r1", CubeListBuilder.create().texOffs(7, 56).addBox(-0.5F, -0.75F, -1.25F, 2.0F, 4.0F, 2.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0436F, 0.1309F)); + PartDefinition lHorn01 = head.addOrReplaceChild("lHorn01", CubeListBuilder.create(), PartPose.offsetAndRotation(1.0F, 0.2F, -3.4F, -0.2618F, -0.1745F, 0.0F)); + PartDefinition cube_r1 = lHorn01.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 3.0F, new CubeDeformation(-0.4F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn02 = lHorn01.addOrReplaceChild("lHorn02", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -2.25F, -0.2618F, -0.2618F, 0.0F)); + PartDefinition cube_r2 = lHorn02.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(22, 40).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn03 = lHorn02.addOrReplaceChild("lHorn03", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -1.75F, -0.3491F, 0.0873F, 0.0F)); + PartDefinition cube_r3 = lHorn03.addOrReplaceChild("cube_r3", CubeListBuilder.create().texOffs(29, 40).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn04 = lHorn03.addOrReplaceChild("lHorn04", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -1.5F, 0.1745F, 0.0873F, 0.0F)); + PartDefinition cube_r4 = lHorn04.addOrReplaceChild("cube_r4", CubeListBuilder.create().texOffs(36, 39).addBox(-0.5F, -0.5F, -3.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition rHorn01 = head.addOrReplaceChild("rHorn01", CubeListBuilder.create(), PartPose.offsetAndRotation(-1.0F, 0.2F, -3.4F, -0.2618F, 0.1745F, 0.0F)); + PartDefinition cube_r5 = rHorn01.addOrReplaceChild("cube_r5", CubeListBuilder.create().texOffs(22, 34).mirror().addBox(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 3.0F, new CubeDeformation(-0.4F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn02 = rHorn01.addOrReplaceChild("rHorn02", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -2.25F, -0.2618F, 0.2618F, 0.0F)); + PartDefinition cube_r6 = rHorn02.addOrReplaceChild("cube_r6", CubeListBuilder.create().texOffs(22, 40).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn03 = rHorn02.addOrReplaceChild("rHorn03", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -1.75F, -0.3491F, -0.0873F, 0.0F)); + PartDefinition cube_r7 = rHorn03.addOrReplaceChild("cube_r7", CubeListBuilder.create().texOffs(29, 40).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(-0.1F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn04 = rHorn03.addOrReplaceChild("rHorn04", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -1.5F, 0.1745F, -0.0873F, 0.0F)); + PartDefinition cube_r8 = rHorn04.addOrReplaceChild("cube_r8", CubeListBuilder.create().texOffs(36, 39).mirror().addBox(-0.5F, -0.5F, -3.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition lForeleg01 = body.addOrReplaceChild("lForeleg01", CubeListBuilder.create().texOffs(29, 0).addBox(-0.9F, -2.5F, -1.95F, 3.0F, 7.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.5F, 1.0F, 2.25F, 0.1396F, 0.0F, -0.0436F)); + PartDefinition lForeleg02 = lForeleg01.addOrReplaceChild("lForeleg02", CubeListBuilder.create().texOffs(31, 20).addBox(-1.85F, 0.05F, -1.5F, 3.0F, 2.0F, 3.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(1.0F, 4.25F, 0.0F, 0.0F, 0.0F, 0.0436F)); + PartDefinition lForeleg03 = lForeleg02.addOrReplaceChild("lForeleg03", CubeListBuilder.create().texOffs(45, 26).addBox(-1.0F, -0.5F, -1.1F, 2.0F, 9.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.5F, 1.75F, 0.0F, -0.1396F, 0.0F, 0.0F)); + PartDefinition lFrontHoofClaw01a = lForeleg03.addOrReplaceChild("lFrontHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.55F, 8.15F, -0.2F, 0.0F, -0.0524F, 0.0F)); + PartDefinition lFrontHoofClaw01b = lFrontHoofClaw01a.addOrReplaceChild("lFrontHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition lFrontHoofClaw02a = lForeleg03.addOrReplaceChild("lFrontHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.45F, 8.15F, -0.2F, 0.0F, 0.0873F, 0.0F)); + PartDefinition lFrontHoofClaw02b = lFrontHoofClaw02a.addOrReplaceChild("lFrontHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rForeleg01 = body.addOrReplaceChild("rForeleg01", CubeListBuilder.create().texOffs(29, 0).mirror().addBox(-2.1F, -2.5F, -1.95F, 3.0F, 7.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-2.5F, 1.0F, 2.25F, 0.1396F, 0.0F, 0.0436F)); + PartDefinition rForeleg02 = rForeleg01.addOrReplaceChild("rForeleg02", CubeListBuilder.create().texOffs(31, 20).mirror().addBox(-1.15F, 0.05F, -1.5F, 3.0F, 2.0F, 3.0F, new CubeDeformation(-0.1F)).mirror(false), PartPose.offsetAndRotation(-1.0F, 4.25F, 0.0F, 0.0F, 0.0F, -0.0436F)); + PartDefinition rForeleg03 = rForeleg02.addOrReplaceChild("rForeleg03", CubeListBuilder.create().texOffs(45, 26).mirror().addBox(-1.0F, -0.5F, -1.1F, 2.0F, 9.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.5F, 1.75F, 0.0F, -0.1396F, 0.0F, 0.0F)); + PartDefinition rFrontHoofClaw01a = rForeleg03.addOrReplaceChild("rFrontHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.55F, 8.15F, -0.2F, 0.0F, 0.0524F, 0.0F)); + PartDefinition rFrontHoofClaw01b = rFrontHoofClaw01a.addOrReplaceChild("rFrontHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rFrontHoofClaw02a = rForeleg03.addOrReplaceChild("rFrontHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.45F, 8.15F, -0.2F, 0.0F, -0.0873F, 0.0F)); + PartDefinition rFrontHoofClaw02b = rFrontHoofClaw02a.addOrReplaceChild("rFrontHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + return LayerDefinition.create(meshdefinition, 64, 64); + } + + public static LayerDefinition createErlanger() { + MeshDefinition meshdefinition = new MeshDefinition(); + PartDefinition partdefinition = meshdefinition.getRoot(); + PartDefinition body = partdefinition.addOrReplaceChild("body", CubeListBuilder.create().texOffs(0, 0).addBox(-3.5F, -3.5F, 0.0F, 7.0F, 7.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 9.0F, -8.0F)); + PartDefinition ass = body.addOrReplaceChild("ass", CubeListBuilder.create().texOffs(0, 20).addBox(-3.0F, -3.5F, 0.0F, 6.0F, 6.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.4F, 11.3F, -0.1745F, 0.0F, 0.0F)); + PartDefinition lHindLeg01 = ass.addOrReplaceChild("lHindLeg01", CubeListBuilder.create().texOffs(46, 0).addBox(-0.7F, -2.45F, -2.05F, 4.0F, 8.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(1.25F, -0.35F, 2.95F, -0.2269F, 0.0F, 0.0F)); + PartDefinition lHindLeg02 = lHindLeg01.addOrReplaceChild("lHindLeg02", CubeListBuilder.create().texOffs(48, 15).addBox(-1.55F, -0.05F, -1.4F, 3.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.5F, 4.0F, -1.0F, 0.9076F, 0.0F, 0.0F)); + PartDefinition lHindLeg03 = lHindLeg02.addOrReplaceChild("lHindLeg03", CubeListBuilder.create().texOffs(45, 27).addBox(-1.0F, 0.5F, -1.1F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.25F, 4.75F, 1.0F, -0.5236F, 0.0F, 0.0F)); + PartDefinition lHindHoofClaw01a = lHindLeg03.addOrReplaceChild("lHindHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.55F, 8.15F, -0.2F, 0.0F, -0.0524F, 0.0F)); + PartDefinition lHindHoofClaw01b = lHindHoofClaw01a.addOrReplaceChild("lHindHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition lHindHoofClaw02a = lHindLeg03.addOrReplaceChild("lHindHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.45F, 8.15F, -0.2F, 0.0F, 0.0873F, 0.0F)); + PartDefinition lHindHoofClaw02b2 = lHindHoofClaw02a.addOrReplaceChild("lHindHoofClaw02b2", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rHindLeg01 = ass.addOrReplaceChild("rHindLeg01", CubeListBuilder.create().texOffs(46, 0).mirror().addBox(-3.3F, -2.45F, -2.05F, 4.0F, 8.0F, 5.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(-1.25F, -0.35F, 2.95F, -0.2269F, 0.0F, 0.0F)); + PartDefinition rHindLeg02 = rHindLeg01.addOrReplaceChild("rHindLeg02", CubeListBuilder.create().texOffs(48, 15).mirror().addBox(-1.45F, -0.05F, -1.4F, 3.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-1.5F, 4.0F, -1.0F, 0.9076F, 0.0F, 0.0F)); + PartDefinition rHindLeg03 = rHindLeg02.addOrReplaceChild("rHindLeg03", CubeListBuilder.create().texOffs(45, 27).mirror().addBox(-1.0F, 0.5F, -1.1F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.25F, 4.75F, 1.0F, -0.5236F, 0.0F, 0.0F)); + PartDefinition rHindHoofClaw01a = rHindLeg03.addOrReplaceChild("rHindHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.55F, 8.15F, -0.2F, 0.0F, 0.0524F, 0.0F)); + PartDefinition rHindHoofClaw01b = rHindHoofClaw01a.addOrReplaceChild("rHindHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rHindHoofClaw02a = rHindLeg03.addOrReplaceChild("rHindHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.45F, 8.15F, -0.2F, 0.0F, -0.0873F, 0.0F)); + PartDefinition rHindHoofClaw02b = rHindHoofClaw02a.addOrReplaceChild("rHindHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition tail = ass.addOrReplaceChild("tail", CubeListBuilder.create().texOffs(54, 25).addBox(-1.0F, -0.1F, -1.05F, 2.0F, 3.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -2.6F, 5.2F, 0.576F, 0.0F, 0.0F)); + PartDefinition rTailFur_r1 = tail.addOrReplaceChild("rTailFur_r1", CubeListBuilder.create().texOffs(55, 37).mirror().addBox(-0.75F, -1.5F, -2.5F, 0.0F, 7.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -0.1745F, 0.3054F, 0.0F)); + PartDefinition lTailFur_r1 = tail.addOrReplaceChild("lTailFur_r1", CubeListBuilder.create().texOffs(55, 37).addBox(0.75F, -1.5F, -2.5F, 0.0F, 7.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -0.1745F, -0.3054F, 0.0F)); + PartDefinition mTailFur = tail.addOrReplaceChild("mTailFur", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 1.5F, -0.25F, -0.3054F, 0.0F, 0.0F)); + PartDefinition Box_r1 = mTailFur.addOrReplaceChild("Box_r1", CubeListBuilder.create().texOffs(54, 31).mirror().addBox(-0.5F, 0.5F, -0.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + PartDefinition chest = body.addOrReplaceChild("chest", CubeListBuilder.create().texOffs(0, 34).addBox(-2.5F, -3.0F, -5.0F, 5.0F, 6.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.8F, 2.4F, -0.8378F, 0.0F, 0.0F)); + PartDefinition neck = chest.addOrReplaceChild("neck", CubeListBuilder.create().texOffs(0, 45).addBox(-2.0F, -2.5F, -6.0F, 4.0F, 5.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.4F, -3.0F, -0.3142F, 0.0F, 0.0F)); + PartDefinition head = neck.addOrReplaceChild("head", CubeListBuilder.create().texOffs(17, 55).addBox(-2.0F, -3.25F, -4.0F, 4.0F, 5.0F, 4.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(0.0F, 1.1F, -5.0F, -0.3142F, 0.0F, 0.0F)); + PartDefinition snout = head.addOrReplaceChild("snout", CubeListBuilder.create().texOffs(0, 57).addBox(-1.0F, -0.5F, -0.75F, 2.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.45F, -2.35F, 0.2618F, 0.0F, 0.0F)); + PartDefinition lEar = head.addOrReplaceChild("lEar", CubeListBuilder.create().texOffs(22, 48).mirror().addBox(-1.0F, -0.7F, -3.35F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(1.35F, -1.75F, -3.25F, -0.0873F, -0.9512F, 0.0F)); + PartDefinition rEar = head.addOrReplaceChild("rEar", CubeListBuilder.create().texOffs(22, 48).addBox(-1.0F, -0.7F, -3.35F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.35F, -1.5F, -3.25F, -0.0873F, 0.9512F, 0.0F)); + PartDefinition throat = head.addOrReplaceChild("throat", CubeListBuilder.create().texOffs(35, 57).addBox(-1.0F, 0.0F, -1.5F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.01F)), PartPose.offset(0.0F, 0.95F, -0.24F)); + PartDefinition lowerJaw = throat.addOrReplaceChild("lowerJaw", CubeListBuilder.create().texOffs(36, 61).addBox(-1.0F, 0.0F, -0.49F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 1.75F, -0.01F)); + PartDefinition upperMuzzle = head.addOrReplaceChild("upperMuzzle", CubeListBuilder.create(), PartPose.offset(0.0F, 1.75F, -1.0F)); + PartDefinition rUpperLip_r1 = upperMuzzle.addOrReplaceChild("rUpperLip_r1", CubeListBuilder.create().texOffs(7, 56).mirror().addBox(-1.5F, -0.75F, -1.25F, 2.0F, 4.0F, 2.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.0436F, -0.1309F)); + PartDefinition lUpperLip_r1 = upperMuzzle.addOrReplaceChild("lUpperLip_r1", CubeListBuilder.create().texOffs(7, 56).addBox(-0.5F, -0.75F, -1.25F, 2.0F, 4.0F, 2.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0436F, 0.1309F)); + PartDefinition lHorn01 = head.addOrReplaceChild("lHorn01", CubeListBuilder.create(), PartPose.offsetAndRotation(1.0F, 0.2F, -3.15F, -0.48F, -0.1745F, 0.0F)); + PartDefinition cube_r1 = lHorn01.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, -1.0F, -4.0F, 2.0F, 2.0F, 4.0F, new CubeDeformation(-0.4F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn02 = lHorn01.addOrReplaceChild("lHorn02", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.25F, -3.25F, -0.3927F, -0.1745F, 0.0F)); + PartDefinition cube_r2 = lHorn02.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(21, 41).addBox(-0.6F, -0.5F, -3.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn03 = lHorn02.addOrReplaceChild("lHorn03", CubeListBuilder.create(), PartPose.offsetAndRotation(-0.25F, 0.25F, -3.0F, -0.2618F, -0.1745F, 0.0F)); + PartDefinition cube_r3 = lHorn03.addOrReplaceChild("cube_r3", CubeListBuilder.create().texOffs(30, 41).addBox(-0.5F, -0.75F, -2.75F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn04 = lHorn03.addOrReplaceChild("lHorn04", CubeListBuilder.create(), PartPose.offsetAndRotation(0.25F, -0.25F, -3.0F, 0.2618F, 0.2182F, 0.0F)); + PartDefinition cube_r4 = lHorn04.addOrReplaceChild("cube_r4", CubeListBuilder.create().texOffs(39, 41).addBox(-0.5F, -0.25F, -2.25F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition rHorn01 = head.addOrReplaceChild("rHorn01", CubeListBuilder.create(), PartPose.offsetAndRotation(-1.0F, 0.2F, -3.15F, -0.48F, 0.1745F, 0.0F)); + PartDefinition cube_r5 = rHorn01.addOrReplaceChild("cube_r5", CubeListBuilder.create().texOffs(22, 34).mirror().addBox(-1.0F, -1.0F, -4.0F, 2.0F, 2.0F, 4.0F, new CubeDeformation(-0.4F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn02 = rHorn01.addOrReplaceChild("rHorn02", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.25F, -3.25F, -0.3927F, 0.1745F, 0.0F)); + PartDefinition cube_r6 = rHorn02.addOrReplaceChild("cube_r6", CubeListBuilder.create().texOffs(21, 41).mirror().addBox(-0.4F, -0.5F, -3.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn03 = rHorn02.addOrReplaceChild("rHorn03", CubeListBuilder.create(), PartPose.offsetAndRotation(0.25F, 0.25F, -3.0F, -0.2618F, 0.1745F, 0.0F)); + PartDefinition cube_r7 = rHorn03.addOrReplaceChild("cube_r7", CubeListBuilder.create().texOffs(30, 41).mirror().addBox(-0.5F, -0.75F, -2.75F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.1F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn04 = rHorn03.addOrReplaceChild("rHorn04", CubeListBuilder.create(), PartPose.offsetAndRotation(-0.25F, -0.25F, -3.0F, 0.2618F, -0.2182F, 0.0F)); + PartDefinition cube_r8 = rHorn04.addOrReplaceChild("cube_r8", CubeListBuilder.create().texOffs(39, 41).mirror().addBox(-0.5F, -0.25F, -2.25F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition lForeleg01 = body.addOrReplaceChild("lForeleg01", CubeListBuilder.create().texOffs(29, 0).addBox(-0.9F, -2.5F, -1.95F, 3.0F, 7.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.5F, 1.0F, 2.25F, 0.1396F, 0.0F, -0.0436F)); + PartDefinition lForeleg02 = lForeleg01.addOrReplaceChild("lForeleg02", CubeListBuilder.create().texOffs(31, 20).addBox(-1.85F, 0.05F, -1.5F, 3.0F, 2.0F, 3.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(1.0F, 4.25F, 0.0F, 0.0F, 0.0F, 0.0436F)); + PartDefinition lForeleg03 = lForeleg02.addOrReplaceChild("lForeleg03", CubeListBuilder.create().texOffs(45, 26).addBox(-1.0F, -0.5F, -1.1F, 2.0F, 9.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.5F, 1.75F, 0.0F, -0.1396F, 0.0F, 0.0F)); + PartDefinition lFrontHoofClaw01a = lForeleg03.addOrReplaceChild("lFrontHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.55F, 8.15F, -0.2F, 0.0F, -0.0524F, 0.0F)); + PartDefinition lFrontHoofClaw01b = lFrontHoofClaw01a.addOrReplaceChild("lFrontHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition lFrontHoofClaw02a = lForeleg03.addOrReplaceChild("lFrontHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.45F, 8.15F, -0.2F, 0.0F, 0.0873F, 0.0F)); + PartDefinition lFrontHoofClaw02b = lFrontHoofClaw02a.addOrReplaceChild("lFrontHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rForeleg01 = body.addOrReplaceChild("rForeleg01", CubeListBuilder.create().texOffs(29, 0).mirror().addBox(-2.1F, -2.5F, -1.95F, 3.0F, 7.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-2.5F, 1.0F, 2.25F, 0.1396F, 0.0F, 0.0436F)); + PartDefinition rForeleg02 = rForeleg01.addOrReplaceChild("rForeleg02", CubeListBuilder.create().texOffs(31, 20).mirror().addBox(-1.15F, 0.05F, -1.5F, 3.0F, 2.0F, 3.0F, new CubeDeformation(-0.1F)).mirror(false), PartPose.offsetAndRotation(-1.0F, 4.25F, 0.0F, 0.0F, 0.0F, -0.0436F)); + PartDefinition rForeleg03 = rForeleg02.addOrReplaceChild("rForeleg03", CubeListBuilder.create().texOffs(45, 26).mirror().addBox(-1.0F, -0.5F, -1.1F, 2.0F, 9.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.5F, 1.75F, 0.0F, -0.1396F, 0.0F, 0.0F)); + PartDefinition rFrontHoofClaw01a = rForeleg03.addOrReplaceChild("rFrontHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.55F, 8.15F, -0.2F, 0.0F, 0.0524F, 0.0F)); + PartDefinition rFrontHoofClaw01b = rFrontHoofClaw01a.addOrReplaceChild("rFrontHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rFrontHoofClaw02a = rForeleg03.addOrReplaceChild("rFrontHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.45F, 8.15F, -0.2F, 0.0F, -0.0873F, 0.0F)); + PartDefinition rFrontHoofClaw02b = rFrontHoofClaw02a.addOrReplaceChild("rFrontHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + return LayerDefinition.create(meshdefinition, 64, 64); + } + + public static LayerDefinition createSpringbok() { + MeshDefinition meshdefinition = new MeshDefinition(); + PartDefinition partdefinition = meshdefinition.getRoot(); + PartDefinition body = partdefinition.addOrReplaceChild("body", CubeListBuilder.create().texOffs(0, 0).addBox(-3.5F, -3.5F, 0.0F, 7.0F, 7.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 9.0F, -8.0F)); + PartDefinition ass = body.addOrReplaceChild("ass", CubeListBuilder.create().texOffs(0, 20).addBox(-3.0F, -3.5F, 0.0F, 6.0F, 6.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.4F, 11.3F, -0.1745F, 0.0F, 0.0F)); + PartDefinition lHindLeg01 = ass.addOrReplaceChild("lHindLeg01", CubeListBuilder.create().texOffs(46, 0).addBox(-0.7F, -2.45F, -2.05F, 4.0F, 8.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(1.25F, -0.35F, 2.95F, -0.2269F, 0.0F, 0.0F)); + PartDefinition lHindLeg02 = lHindLeg01.addOrReplaceChild("lHindLeg02", CubeListBuilder.create().texOffs(48, 15).addBox(-1.55F, -0.05F, -1.4F, 3.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.5F, 4.0F, -1.0F, 0.9076F, 0.0F, 0.0F)); + PartDefinition lHindLeg03 = lHindLeg02.addOrReplaceChild("lHindLeg03", CubeListBuilder.create().texOffs(45, 27).addBox(-1.0F, 0.5F, -1.1F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.25F, 4.75F, 1.0F, -0.5236F, 0.0F, 0.0F)); + PartDefinition lHindHoofClaw01a = lHindLeg03.addOrReplaceChild("lHindHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.55F, 8.15F, -0.2F, 0.0F, -0.0524F, 0.0F)); + PartDefinition lHindHoofClaw01b = lHindHoofClaw01a.addOrReplaceChild("lHindHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition lHindHoofClaw02a = lHindLeg03.addOrReplaceChild("lHindHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.45F, 8.15F, -0.2F, 0.0F, 0.0873F, 0.0F)); + PartDefinition lHindHoofClaw02b2 = lHindHoofClaw02a.addOrReplaceChild("lHindHoofClaw02b2", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rHindLeg01 = ass.addOrReplaceChild("rHindLeg01", CubeListBuilder.create().texOffs(46, 0).mirror().addBox(-3.3F, -2.45F, -2.05F, 4.0F, 8.0F, 5.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(-1.25F, -0.35F, 2.95F, -0.2269F, 0.0F, 0.0F)); + PartDefinition rHindLeg02 = rHindLeg01.addOrReplaceChild("rHindLeg02", CubeListBuilder.create().texOffs(48, 15).mirror().addBox(-1.45F, -0.05F, -1.4F, 3.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-1.5F, 4.0F, -1.0F, 0.9076F, 0.0F, 0.0F)); + PartDefinition rHindLeg03 = rHindLeg02.addOrReplaceChild("rHindLeg03", CubeListBuilder.create().texOffs(45, 27).mirror().addBox(-1.0F, 0.5F, -1.1F, 2.0F, 8.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.25F, 4.75F, 1.0F, -0.5236F, 0.0F, 0.0F)); + PartDefinition rHindHoofClaw01a = rHindLeg03.addOrReplaceChild("rHindHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.55F, 8.15F, -0.2F, 0.0F, 0.0524F, 0.0F)); + PartDefinition rHindHoofClaw01b = rHindHoofClaw01a.addOrReplaceChild("rHindHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rHindHoofClaw02a = rHindLeg03.addOrReplaceChild("rHindHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.45F, 8.15F, -0.2F, 0.0F, -0.0873F, 0.0F)); + PartDefinition rHindHoofClaw02b = rHindHoofClaw02a.addOrReplaceChild("rHindHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition tail = ass.addOrReplaceChild("tail", CubeListBuilder.create().texOffs(54, 25).addBox(-1.0F, -0.1F, -1.05F, 2.0F, 3.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -2.6F, 5.2F, 0.576F, 0.0F, 0.0F)); + PartDefinition rTailFur_r1 = tail.addOrReplaceChild("rTailFur_r1", CubeListBuilder.create().texOffs(55, 37).mirror().addBox(-0.75F, -1.5F, -2.5F, 0.0F, 7.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -0.1745F, 0.3054F, 0.0F)); + PartDefinition lTailFur_r1 = tail.addOrReplaceChild("lTailFur_r1", CubeListBuilder.create().texOffs(55, 37).addBox(0.75F, -1.5F, -2.5F, 0.0F, 7.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 2.0F, 0.0F, -0.1745F, -0.3054F, 0.0F)); + PartDefinition mTailFur = tail.addOrReplaceChild("mTailFur", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 1.5F, -0.25F, -0.3054F, 0.0F, 0.0F)); + PartDefinition Box_r1 = mTailFur.addOrReplaceChild("Box_r1", CubeListBuilder.create().texOffs(54, 31).mirror().addBox(-0.5F, 0.5F, -0.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + PartDefinition chest = body.addOrReplaceChild("chest", CubeListBuilder.create().texOffs(0, 34).addBox(-2.5F, -3.0F, -5.0F, 5.0F, 6.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.8F, 2.4F, -0.8378F, 0.0F, 0.0F)); + PartDefinition neck = chest.addOrReplaceChild("neck", CubeListBuilder.create().texOffs(0, 45).addBox(-2.0F, -2.5F, -6.0F, 4.0F, 5.0F, 5.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.4F, -3.0F, -0.3142F, 0.0F, 0.0F)); + PartDefinition head = neck.addOrReplaceChild("head", CubeListBuilder.create().texOffs(17, 55).addBox(-2.0F, -3.25F, -4.0F, 4.0F, 5.0F, 4.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(0.0F, 1.1F, -5.0F, -0.3142F, 0.0F, 0.0F)); + PartDefinition snout = head.addOrReplaceChild("snout", CubeListBuilder.create().texOffs(0, 57).addBox(-1.0F, -0.5F, -0.75F, 2.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.45F, -2.35F, 0.2618F, 0.0F, 0.0F)); + PartDefinition lEar = head.addOrReplaceChild("lEar", CubeListBuilder.create().texOffs(22, 48).mirror().addBox(-1.0F, -0.7F, -3.35F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(1.35F, -1.75F, -3.25F, -0.0873F, -0.9512F, 0.0F)); + PartDefinition rEar = head.addOrReplaceChild("rEar", CubeListBuilder.create().texOffs(22, 48).addBox(-1.0F, -0.7F, -3.35F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.35F, -1.5F, -3.25F, -0.0873F, 0.9512F, 0.0F)); + PartDefinition throat = head.addOrReplaceChild("throat", CubeListBuilder.create().texOffs(35, 57).addBox(-1.0F, 0.0F, -1.5F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.01F)), PartPose.offset(0.0F, 0.95F, -0.24F)); + PartDefinition lowerJaw = throat.addOrReplaceChild("lowerJaw", CubeListBuilder.create().texOffs(36, 61).addBox(-1.0F, 0.0F, -0.49F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 1.75F, -0.01F)); + PartDefinition upperMuzzle = head.addOrReplaceChild("upperMuzzle", CubeListBuilder.create(), PartPose.offset(0.0F, 1.75F, -1.0F)); + PartDefinition rUpperLip_r1 = upperMuzzle.addOrReplaceChild("rUpperLip_r1", CubeListBuilder.create().texOffs(7, 56).mirror().addBox(-1.5F, -0.75F, -1.25F, 2.0F, 4.0F, 2.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.0436F, -0.1309F)); + PartDefinition lUpperLip_r1 = upperMuzzle.addOrReplaceChild("lUpperLip_r1", CubeListBuilder.create().texOffs(7, 56).addBox(-0.5F, -0.75F, -1.25F, 2.0F, 4.0F, 2.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0436F, 0.1309F)); + PartDefinition lHorn01 = head.addOrReplaceChild("lHorn01", CubeListBuilder.create(), PartPose.offsetAndRotation(1.0F, 0.2F, -3.4F, -0.2618F, -0.0873F, 0.0F)); + PartDefinition cube_r1 = lHorn01.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 3.0F, new CubeDeformation(-0.4F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn02 = lHorn01.addOrReplaceChild("lHorn02", CubeListBuilder.create(), PartPose.offsetAndRotation(-0.25F, 0.0F, -1.75F, -0.1745F, -0.3054F, 0.0F)); + PartDefinition cube_r2 = lHorn02.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(22, 40).addBox(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 3.0F, new CubeDeformation(-0.45F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn03 = lHorn02.addOrReplaceChild("lHorn03", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -2.0F, -0.1309F, -0.3927F, 0.0F)); + PartDefinition cube_r3 = lHorn03.addOrReplaceChild("cube_r3", CubeListBuilder.create().texOffs(33, 41).addBox(-0.55F, -0.4F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(-0.05F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn04 = lHorn03.addOrReplaceChild("lHorn04", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -1.5F, -0.2182F, 0.4363F, 0.0F)); + PartDefinition cube_r4 = lHorn04.addOrReplaceChild("cube_r4", CubeListBuilder.create().texOffs(42, 41).addBox(-0.5F, -0.5F, -3.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition lHorn05 = lHorn04.addOrReplaceChild("lHorn05", CubeListBuilder.create(), PartPose.offsetAndRotation(0.25F, 0.25F, -2.75F, -0.5236F, 0.5236F, 0.0F)); + PartDefinition cube_r5 = lHorn05.addOrReplaceChild("cube_r5", CubeListBuilder.create().texOffs(42, 46).addBox(-0.75F, -0.5F, -2.75F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.2F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); + PartDefinition rHorn01 = head.addOrReplaceChild("rHorn01", CubeListBuilder.create(), PartPose.offsetAndRotation(-1.0F, 0.2F, -3.4F, -0.2618F, 0.0873F, 0.0F)); + PartDefinition cube_r6 = rHorn01.addOrReplaceChild("cube_r6", CubeListBuilder.create().texOffs(22, 34).mirror().addBox(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 3.0F, new CubeDeformation(-0.4F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn02 = rHorn01.addOrReplaceChild("rHorn02", CubeListBuilder.create(), PartPose.offsetAndRotation(0.25F, 0.0F, -1.75F, -0.1745F, 0.3054F, 0.0F)); + PartDefinition cube_r7 = rHorn02.addOrReplaceChild("cube_r7", CubeListBuilder.create().texOffs(22, 40).mirror().addBox(-1.0F, -1.0F, -3.0F, 2.0F, 2.0F, 3.0F, new CubeDeformation(-0.45F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn03 = rHorn02.addOrReplaceChild("rHorn03", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -2.0F, -0.1309F, 0.3927F, 0.0F)); + PartDefinition cube_r8 = rHorn03.addOrReplaceChild("cube_r8", CubeListBuilder.create().texOffs(33, 41).mirror().addBox(-0.45F, -0.4F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(-0.05F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn04 = rHorn03.addOrReplaceChild("rHorn04", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -1.5F, -0.2182F, -0.4363F, 0.0F)); + PartDefinition cube_r9 = rHorn04.addOrReplaceChild("cube_r9", CubeListBuilder.create().texOffs(42, 41).mirror().addBox(-0.5F, -0.5F, -3.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.1F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition rHorn05 = rHorn04.addOrReplaceChild("rHorn05", CubeListBuilder.create(), PartPose.offsetAndRotation(-0.25F, 0.25F, -2.75F, -0.5236F, -0.5236F, 0.0F)); + PartDefinition cube_r10 = rHorn05.addOrReplaceChild("cube_r10", CubeListBuilder.create().texOffs(42, 46).mirror().addBox(-0.25F, -0.5F, -2.75F, 1.0F, 1.0F, 3.0F, new CubeDeformation(-0.2F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); + PartDefinition lForeleg01 = body.addOrReplaceChild("lForeleg01", CubeListBuilder.create().texOffs(29, 0).addBox(-0.9F, -2.5F, -1.95F, 3.0F, 7.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.5F, 1.0F, 2.25F, 0.1396F, 0.0F, -0.0436F)); + PartDefinition lForeleg02 = lForeleg01.addOrReplaceChild("lForeleg02", CubeListBuilder.create().texOffs(31, 20).addBox(-1.85F, 0.05F, -1.5F, 3.0F, 2.0F, 3.0F, new CubeDeformation(-0.1F)), PartPose.offsetAndRotation(1.0F, 4.25F, 0.0F, 0.0F, 0.0F, 0.0436F)); + PartDefinition lForeleg03 = lForeleg02.addOrReplaceChild("lForeleg03", CubeListBuilder.create().texOffs(45, 26).addBox(-1.0F, -0.5F, -1.1F, 2.0F, 9.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.5F, 1.75F, 0.0F, -0.1396F, 0.0F, 0.0F)); + PartDefinition lFrontHoofClaw01a = lForeleg03.addOrReplaceChild("lFrontHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.55F, 8.15F, -0.2F, 0.0F, -0.0524F, 0.0F)); + PartDefinition lFrontHoofClaw01b = lFrontHoofClaw01a.addOrReplaceChild("lFrontHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition lFrontHoofClaw02a = lForeleg03.addOrReplaceChild("lFrontHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).mirror().addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-0.45F, 8.15F, -0.2F, 0.0F, 0.0873F, 0.0F)); + PartDefinition lFrontHoofClaw02b = lFrontHoofClaw02a.addOrReplaceChild("lFrontHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).mirror().addBox(-0.49F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rForeleg01 = body.addOrReplaceChild("rForeleg01", CubeListBuilder.create().texOffs(29, 0).mirror().addBox(-2.1F, -2.5F, -1.95F, 3.0F, 7.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-2.5F, 1.0F, 2.25F, 0.1396F, 0.0F, 0.0436F)); + PartDefinition rForeleg02 = rForeleg01.addOrReplaceChild("rForeleg02", CubeListBuilder.create().texOffs(31, 20).mirror().addBox(-1.15F, 0.05F, -1.5F, 3.0F, 2.0F, 3.0F, new CubeDeformation(-0.1F)).mirror(false), PartPose.offsetAndRotation(-1.0F, 4.25F, 0.0F, 0.0F, 0.0F, -0.0436F)); + PartDefinition rForeleg03 = rForeleg02.addOrReplaceChild("rForeleg03", CubeListBuilder.create().texOffs(45, 26).mirror().addBox(-1.0F, -0.5F, -1.1F, 2.0F, 9.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.5F, 1.75F, 0.0F, -0.1396F, 0.0F, 0.0F)); + PartDefinition rFrontHoofClaw01a = rForeleg03.addOrReplaceChild("rFrontHoofClaw01a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.55F, 8.15F, -0.2F, 0.0F, 0.0524F, 0.0F)); + PartDefinition rFrontHoofClaw01b = rFrontHoofClaw01a.addOrReplaceChild("rFrontHoofClaw01b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + PartDefinition rFrontHoofClaw02a = rForeleg03.addOrReplaceChild("rFrontHoofClaw02a", CubeListBuilder.create().texOffs(38, 27).addBox(-0.5F, -0.5F, -2.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.45F, 8.15F, -0.2F, 0.0F, -0.0873F, 0.0F)); + PartDefinition rFrontHoofClaw02b = rFrontHoofClaw02a.addOrReplaceChild("rFrontHoofClaw02b", CubeListBuilder.create().texOffs(29, 26).addBox(-0.51F, -1.1F, -0.7F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.4363F, 0.0F, 0.0F)); + return LayerDefinition.create(meshdefinition, 64, 64); + } + + @Override + public void renderToBuffer(PoseStack matrixStackIn, VertexConsumer bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { + this.body.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn); + } + + @Override + public void setupAnim(T gazelle, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { + this.quadriped(lHindLeg01, rHindLeg01, lForeleg01, rForeleg01, limbSwing * 0.666F, limbSwingAmount * 1.4F); + this.headYaw(head, netHeadYaw, 0.5F, 0F); + this.tail.xRot = this.wiggle(ageInTicks, 0.15F, 0.75F) + 0.576F; + this.tail.yRot = this.wiggle(ageInTicks, 0.15F, 0.75F); + float eatTime = gazelle.getEatTime(); + if (eatTime > 0) { + chest.xRot = rad(15F); + neck.xRot = rad(40F); + head.xRot = rad(-65F); + lowerJaw.xRot = rad(eatTime % 20F) + 0.1F; + } else { + chest.xRot = -0.8378F; + neck.xRot = -0.3142F; + lowerJaw.xRot = 0F; + this.headPitch(head, headPitch, 1F, 0F); + } + } +} \ No newline at end of file diff --git a/common/src/main/java/dev/itsmeow/betteranimalsplus/common/entity/EntityGazelle.java b/common/src/main/java/dev/itsmeow/betteranimalsplus/common/entity/EntityGazelle.java new file mode 100644 index 00000000..d93548cd --- /dev/null +++ b/common/src/main/java/dev/itsmeow/betteranimalsplus/common/entity/EntityGazelle.java @@ -0,0 +1,117 @@ +package dev.itsmeow.betteranimalsplus.common.entity; + +import dev.itsmeow.betteranimalsplus.common.entity.util.EntityUtil; +import dev.itsmeow.betteranimalsplus.common.entity.util.IDropHead; +import dev.itsmeow.betteranimalsplus.common.entity.util.abstracts.EntityAnimalEatsGrassWithTypes; +import dev.itsmeow.betteranimalsplus.common.entity.util.abstracts.EntityAnimalWithTypes; +import dev.itsmeow.betteranimalsplus.init.ModEntities; +import dev.itsmeow.imdlib.entity.EntityTypeContainer; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.DifficultyInstance; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.SpawnGroupData; +import net.minecraft.world.entity.ai.goal.*; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.block.state.BlockState; + +public class EntityGazelle extends EntityAnimalEatsGrassWithTypes implements IDropHead { + + public EntityGazelle(EntityType entityType, Level level) { + super(entityType, level, 6); + } + + @Override + public int getEatTime() { + return eatTimer; + } + + @Environment(EnvType.CLIENT) + @Override + public void handleEntityEvent(byte id) { + if (id == 10) { + this.eatTimer = 40; + } else { + super.handleEntityEvent(id); + } + } + + @Override + public void baseTick() { + super.baseTick(); + if (this.level.isClientSide) { + this.eatTimer = Math.max(0, this.eatTimer - 1); + } + } + + @Override + public boolean isFood(ItemStack stack) { + Item i = stack.getItem(); + return i == Items.WHEAT || i == Items.CARROT || i == Items.GOLDEN_CARROT || i == Items.APPLE || i == Items.GOLDEN_APPLE; + } + + @Override + public int getMaxSpawnClusterSize() { + return 4; + } + + @Override + protected void playStepSound(BlockPos pos, BlockState state) { + this.playSound(SoundEvents.SHEEP_STEP, 0.15F, 1.0F); + } + + @Override + protected void registerGoals() { + super.registerGoals(); + this.goalSelector.addGoal(0, new FloatGoal(this)); + this.goalSelector.addGoal(1, new BreedGoal(this, 0.45D)); + this.goalSelector.addGoal(2, new PanicGoal(this, 0.65D)); + ItemLike[] temptItems = new ItemLike[]{Items.APPLE, Items.GOLDEN_APPLE, Items.CARROT, Items.CARROT_ON_A_STICK, Items.GOLDEN_CARROT, Items.WHEAT}; + this.goalSelector.addGoal(3, new TemptGoal(this, 0.45D, Ingredient.of(temptItems), false)); + this.goalSelector.addGoal(4, new AvoidEntityGoal<>(this, Player.class, 20, 0.55D, 0.7D)); + this.goalSelector.addGoal(5, new FollowParentGoal(this, 1D)); + // Eat Grass at Priority 6 + this.goalSelector.addGoal(6, new RandomStrollGoal(this, 0.45D)); + this.goalSelector.addGoal(7, new RandomLookAroundGoal(this)); + } + + @Override + public void ate() { + super.ate(); + this.ageUp(60); + } + + @Override + public void die(DamageSource cause) { + super.die(cause); + this.doHeadDrop(); + } + + @Override + protected EntityGazelle getBaseChild() { + return getContainer().getEntityType().create(level); + } + + @Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType reason, SpawnGroupData livingdata, CompoundTag compound) { + return EntityUtil.childChance(this, reason, super.finalizeSpawn(world, difficulty, reason, livingdata, compound), 0.25F); + } + + @Override + public EntityTypeContainer getContainer() { + return ModEntities.GAZELLE; + } + +} diff --git a/common/src/main/java/dev/itsmeow/betteranimalsplus/init/ModEntities.java b/common/src/main/java/dev/itsmeow/betteranimalsplus/init/ModEntities.java index 31c7502b..2388197f 100644 --- a/common/src/main/java/dev/itsmeow/betteranimalsplus/init/ModEntities.java +++ b/common/src/main/java/dev/itsmeow/betteranimalsplus/init/ModEntities.java @@ -488,6 +488,16 @@ public class ModEntities { .despawn() .biomesOverworld(BiomeTypes.JUNGLE) .containers("%s_bucket", ItemModFishBucket.waterBucket(G), "", c -> Items.WATER_BUCKET)); + public static final EntityTypeContainer GAZELLE = H.add(EntityGazelle.class, EntityGazelle::new, "gazelle", () -> Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, 15.0D) + .add(Attributes.MOVEMENT_SPEED, 0.45D), b -> b + .spawn(MobCategory.CREATURE, 14, 1, 4) + .defaultPlacement(Mob::checkMobSpawnRules) + .egg(0x593306, 0xedc391) + .size(1F, 1.5F) + .biomesOverworld(BiomeTypes.SAVANNA) + .variants("blackbuck", "blackbuck_2", "chinkara", "erlanger", "springbok") + /*.head().itemGroup(G).mapToNames().setModel(() -> ModelGazelleHead::new, "gazelle_head").done()*/); public static LinkedHashMap> getEntities() { return H.ENTITIES; diff --git a/common/src/main/resources/assets/betteranimalsplus/lang/en_us.json b/common/src/main/resources/assets/betteranimalsplus/lang/en_us.json index c6989a4d..a393c78a 100644 --- a/common/src/main/resources/assets/betteranimalsplus/lang/en_us.json +++ b/common/src/main/resources/assets/betteranimalsplus/lang/en_us.json @@ -106,6 +106,7 @@ "entity.betteranimalsplus.squid_colossal": "Colossal Squid", "entity.betteranimalsplus.piranha": "Piranha", "entity.betteranimalsplus.octopus": "Octopus", + "entity.betteranimalsplus.gazelle": "Gazelle", "entity.betteranimalsplus.eel_saltwater.type.conger": "Conger", "entity.betteranimalsplus.eel_saltwater.type.dragon": "Dragon", diff --git a/common/src/main/resources/assets/betteranimalsplus/models/item/gazelle_spawn_egg.json b/common/src/main/resources/assets/betteranimalsplus/models/item/gazelle_spawn_egg.json new file mode 100644 index 00000000..7a2c6da8 --- /dev/null +++ b/common/src/main/resources/assets/betteranimalsplus/models/item/gazelle_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "item/template_spawn_egg" +} \ No newline at end of file diff --git a/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_blackbuck.png b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_blackbuck.png new file mode 100644 index 00000000..221bd91f Binary files /dev/null and b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_blackbuck.png differ diff --git a/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_blackbuck_2.png b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_blackbuck_2.png new file mode 100644 index 00000000..c790795e Binary files /dev/null and b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_blackbuck_2.png differ diff --git a/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_chinkara.png b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_chinkara.png new file mode 100644 index 00000000..d277251f Binary files /dev/null and b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_chinkara.png differ diff --git a/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_erlanger.png b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_erlanger.png new file mode 100644 index 00000000..a82539e7 Binary files /dev/null and b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_erlanger.png differ diff --git a/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_springbok.png b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_springbok.png new file mode 100644 index 00000000..46faf87c Binary files /dev/null and b/common/src/main/resources/assets/betteranimalsplus/textures/entity/gazelle_springbok.png differ diff --git a/common/src/main/resources/data/betteranimalsplus/loot_tables/entities/gazelle.json b/common/src/main/resources/data/betteranimalsplus/loot_tables/entities/gazelle.json new file mode 100644 index 00000000..3158d717 --- /dev/null +++ b/common/src/main/resources/data/betteranimalsplus/loot_tables/entities/gazelle.json @@ -0,0 +1,46 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "name": "gazelle-venison", + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "betteranimalsplus:venisonraw", + "weight": 2, + "functions": [ + { + "function": "set_count", + "count": { + "min": 1, + "max": 3 + } + }, + { + "function": "furnace_smelt", + "conditions": [ + { + "condition": "entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + } + ] + }, + { + "function": "looting_enchant", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +}