diff --git a/Convert.java b/Convert.java index 3e7e914b..3de64d73 100644 --- a/Convert.java +++ b/Convert.java @@ -94,14 +94,18 @@ class ModelPart { } s += "PartDefinition " + name + " = "; s += pName+".addOrReplaceChild(\""+name+"\", CubeListBuilder.create()\n"; - if (this.mirror) s+= ".mirror()\n"; + if (this.mirror) s+= ".mirror()\n"; + s+= ".texOffs("+u+", "+v+")"; if (this.hadBox) { + s+= "\n"; if (scale!=1) - s+= ".addBox("+bx+"f, "+by+"f, "+bz+"f, "+ba+"f, "+bb+"f, "+bc+"f, deformation_"+name+")\n"; + s+= ".addBox("+bx+"f, "+by+"f, "+bz+"f, "+ba+"f, "+bb+"f, "+bc+"f, deformation_"+name+"),\n"; else - s+= ".addBox("+bx+"f, "+by+"f, "+bz+"f, "+ba+"f, "+bb+"f, "+bc+"f)\n"; + s+= ".addBox("+bx+"f, "+by+"f, "+bz+"f, "+ba+"f, "+bb+"f, "+bc+"f),\n"; + } else { + s+= ",\n"; } - s+= ".texOffs("+u+", "+v+"),\n"; + if (x==0 && y==0 && z==0 && rx==0 && ry==0 && rz==0){ s+= "PartPose.ZERO"; } else if (rx==0 && ry==0 && rz==0){ @@ -144,13 +148,33 @@ public class Convert { p.setRotationAngle(x, y, z); } public void c (){ - float scale = 0; - ModelPart[] SHARDS = new ModelPart[4]; - SHARDS[0] = new ModelPart(16, 16, 2, 4, "SHARDS[0]").addBox(-5.0F, 1.0F, -3.0F, 2.0F, 8.0F, 2.0F); - SHARDS[1] = new ModelPart(16, 16, 2, 4, "SHARDS[1]").addBox(3.0F, -1.0F, -1.0F, 2.0F, 8.0F, 2.0F); - SHARDS[2] = new ModelPart(16, 16, 2, 4, "SHARDS[2]").addBox(-1.0F, 0.0F, -5.0F, 2.0F, 4.0F, 2.0F); - SHARDS[3] = new ModelPart(16, 16, 2, 4, "SHARDS[3]").addBox(0.0F, 3.0F, 4.0F, 2.0F, 6.0F, 2.0F); - ModelPart CORE = new ModelPart(16, 16, 0, 0, "CORE"); - CORE.addBox(-2.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F); + float scale = 1; + ModelPart partC = new ModelPart(64, 64, 0, 19, "partC"); + partC.addBox(1.0F, 0.0F, 1.0F, 14.0F, 9.0F, 14.0F, 0.0F); + ModelPart partA = new ModelPart(64, 64, 0, 0,"partA"); + partA.addBox(1.0F, 0.0F, 0.0F, 14.0F, 5.0F, 14.0F, 0.0F); + partA.y = 9.0F; + partA.z = 1.0F; + ModelPart partB = new ModelPart(64, 64, 0, 0, "partB"); + partB.addBox(7.0F, -1.0F, 15.0F, 2.0F, 4.0F, 1.0F, 0.0F); + partB.y = 8.0F; + ModelPart partRightC = new ModelPart(64, 64, 0, 19, "partRightC"); + partRightC.addBox(1.0F, 0.0F, 1.0F, 15.0F, 9.0F, 14.0F, 0.0F); + ModelPart partRightA = new ModelPart(64, 64, 0, 0, "partRightA"); + partRightA.addBox(1.0F, 0.0F, 0.0F, 15.0F, 5.0F, 14.0F, 0.0F); + partRightA.y = 9.0F; + partRightA.z = 1.0F; + ModelPart partRightB = new ModelPart(64, 64, 0, 0, "partRightB"); + partRightB.addBox(15.0F, -1.0F, 15.0F, 1.0F, 4.0F, 1.0F, 0.0F); + partRightB.y = 8.0F; + ModelPart partLeftC = new ModelPart(64, 64, 0, 19, "partLeftC"); + partLeftC.addBox(0.0F, 0.0F, 1.0F, 15.0F, 9.0F, 14.0F, 0.0F); + ModelPart partLeftA = new ModelPart(64, 64, 0, 0, "partLeftA"); + partLeftA.addBox(0.0F, 0.0F, 0.0F, 15.0F, 5.0F, 14.0F, 0.0F); + partLeftA.y = 9.0F; + partLeftA.z = 1.0F; + ModelPart partLeftB = new ModelPart(64, 64, 0, 0, "partLeftB"); + partLeftB.addBox(0.0F, -1.0F, 15.0F, 1.0F, 4.0F, 1.0F, 0.0F); + partLeftB.y = 8.0F; } } diff --git a/src/main/java/ru/betterend/client/render/EndCrystalRenderer.java b/src/main/java/ru/betterend/client/render/EndCrystalRenderer.java index 7686b156..abd37797 100644 --- a/src/main/java/ru/betterend/client/render/EndCrystalRenderer.java +++ b/src/main/java/ru/betterend/client/render/EndCrystalRenderer.java @@ -51,13 +51,13 @@ public class EndCrystalRenderer { MeshDefinition modelData = new MeshDefinition(); PartDefinition modelPartData = modelData.getRoot(); modelPartData.addOrReplaceChild("FRAME", CubeListBuilder.create() - .addBox(-4.0f, -4.0f, -4.0f, 8.0f, 8.0f, 8.0f) - .texOffs(0, 0), + .texOffs(0, 0) + .addBox(-4.0f, -4.0f, -4.0f, 8.0f, 8.0f, 8.0f), PartPose.ZERO); modelPartData.addOrReplaceChild("CORE", CubeListBuilder.create() - .addBox(-4.0f, -4.0f, -4.0f, 8.0f, 8.0f, 8.0f) - .texOffs(32, 0), + .texOffs(32, 0) + .addBox(-4.0f, -4.0f, -4.0f, 8.0f, 8.0f, 8.0f), PartPose.ZERO); return LayerDefinition.create(modelData, 64, 32); diff --git a/src/main/java/ru/betterend/client/render/EternalCrystalRenderer.java b/src/main/java/ru/betterend/client/render/EternalCrystalRenderer.java index 452ac2f5..7baa3672 100644 --- a/src/main/java/ru/betterend/client/render/EternalCrystalRenderer.java +++ b/src/main/java/ru/betterend/client/render/EternalCrystalRenderer.java @@ -66,28 +66,28 @@ public class EternalCrystalRenderer { MeshDefinition modelData = new MeshDefinition(); PartDefinition modelPartData = modelData.getRoot(); modelPartData.addOrReplaceChild("SHARDS_0", CubeListBuilder.create() - .addBox(-5.0f, 1.0f, -3.0f, 2.0f, 8.0f, 2.0f) - .texOffs(2, 4), + .texOffs(2, 4) + .addBox(-5.0f, 1.0f, -3.0f, 2.0f, 8.0f, 2.0f), PartPose.ZERO); modelPartData.addOrReplaceChild("SHARDS_1", CubeListBuilder.create() - .addBox(3.0f, -1.0f, -1.0f, 2.0f, 8.0f, 2.0f) - .texOffs(2, 4), + .texOffs(2, 4) + .addBox(3.0f, -1.0f, -1.0f, 2.0f, 8.0f, 2.0f), PartPose.ZERO); modelPartData.addOrReplaceChild("SHARDS_2", CubeListBuilder.create() - .addBox(-1.0f, 0.0f, -5.0f, 2.0f, 4.0f, 2.0f) - .texOffs(2, 4), + .texOffs(2, 4) + .addBox(-1.0f, 0.0f, -5.0f, 2.0f, 4.0f, 2.0f), PartPose.ZERO); modelPartData.addOrReplaceChild("SHARDS_3", CubeListBuilder.create() - .addBox(0.0f, 3.0f, 4.0f, 2.0f, 6.0f, 2.0f) - .texOffs(2, 4), + .texOffs(2, 4) + .addBox(0.0f, 3.0f, 4.0f, 2.0f, 6.0f, 2.0f), PartPose.ZERO); modelPartData.addOrReplaceChild("CORE", CubeListBuilder.create() - .addBox(-2.0f, -2.0f, -2.0f, 4.0f, 12.0f, 4.0f) - .texOffs(0, 0), + .texOffs(0, 0) + .addBox(-2.0f, -2.0f, -2.0f, 4.0f, 12.0f, 4.0f), PartPose.ZERO); return LayerDefinition.create(modelData, 16, 16); diff --git a/src/main/java/ru/betterend/entity/model/CubozoaEntityModel.java b/src/main/java/ru/betterend/entity/model/CubozoaEntityModel.java index 191f2554..86bda8c0 100644 --- a/src/main/java/ru/betterend/entity/model/CubozoaEntityModel.java +++ b/src/main/java/ru/betterend/entity/model/CubozoaEntityModel.java @@ -122,7 +122,7 @@ public class CubozoaEntityModel extends BlockBenchModel { scaleY = sin * 0.1F + 0.9F; scaleXZ = Mth.sin(animationProgress * 0.13F + 3.14F) * 0.1F + 0.9F; - for (int i=1; i<=TENTACLE_COUNT; i++){ + for (int i=0; i extends ListModel { private final ModelPart innerCube; @@ -120,9 +123,11 @@ public class EndSlimeEntityModel extends ListModel return LayerDefinition.create(modelData, 64, 32); } - public EndSlimeEntityModel(ModelPart modelPart, boolean onlyShell) { + public EndSlimeEntityModel(EntityModelSet modelSet, boolean onlyShell){ super(RenderType::entityCutout); + ModelPart modelPart = modelSet.bakeLayer(onlyShell ? EndEntitiesRenders.END_SLIME_SHELL_MODEL : EndEntitiesRenders.END_SLIME_MODEL); + innerCube = modelPart.getChild(PartNames.BODY); if (!onlyShell) { rightEye = modelPart.getChild(PartNames.RIGHT_EYE); diff --git a/src/main/java/ru/betterend/entity/model/SilkMothEntityModel.java b/src/main/java/ru/betterend/entity/model/SilkMothEntityModel.java index 989c3684..f50ef2c2 100644 --- a/src/main/java/ru/betterend/entity/model/SilkMothEntityModel.java +++ b/src/main/java/ru/betterend/entity/model/SilkMothEntityModel.java @@ -15,25 +15,25 @@ import net.minecraft.util.Mth; import ru.betterend.entity.SilkMothEntity; public class SilkMothEntityModel extends BlockBenchModel { - private final ModelPart legsL; - private final ModelPart cube_r1; - private final ModelPart cube_r2; - private final ModelPart cube_r3; - private final ModelPart legsR; - private final ModelPart cube_r4; - private final ModelPart cube_r5; - private final ModelPart cube_r6; - private final ModelPart head_pivot; - private final ModelPart tendril_r_r1; - private final ModelPart tendril_r_r2; - private final ModelPart bb_main; - private final ModelPart wingR_r1; - private final ModelPart wingL_r1; - private final ModelPart abdomen_r1; + private final ModelPart legsL; + private final ModelPart cube_r1; + private final ModelPart cube_r2; + private final ModelPart cube_r3; + private final ModelPart legsR; + private final ModelPart cube_r4; + private final ModelPart cube_r5; + private final ModelPart cube_r6; + private final ModelPart head_pivot; + private final ModelPart tendril_r_r1; + private final ModelPart tendril_r_r2; + private final ModelPart bb_main; + private final ModelPart wingR_r1; + private final ModelPart wingL_r1; + private final ModelPart abdomen_r1; - public static LayerDefinition getTexturedModelData() { - MeshDefinition modelData = new MeshDefinition(); - PartDefinition modelPartData = modelData.getRoot(); + public static LayerDefinition getTexturedModelData() { + MeshDefinition modelData = new MeshDefinition(); + PartDefinition modelPartData = modelData.getRoot(); PartDefinition legsL = modelPartData.addOrReplaceChild(PartNames.LEFT_LEG, CubeListBuilder.create() .texOffs(0, 0), @@ -41,20 +41,20 @@ public class SilkMothEntityModel extends BlockBenchModel { 0.0f, 0.0f, 0.6981f)); legsL.addOrReplaceChild("cube_r1", CubeListBuilder.create() - .addBox(0.0216f, 0.0f, -0.5976f, 3.0f, 0.0f, 1.0f) - .texOffs(0, 13), + .texOffs(0, 13) + .addBox(0.0216f, 0.0f, -0.5976f, 3.0f, 0.0f, 1.0f), PartPose.offsetAndRotation(0.0f, 0.0f, -1.0f, 0.0f, 0.2182f, 0.3927f)); legsL.addOrReplaceChild("cube_r2", CubeListBuilder.create() - .addBox(0.0f, 0.0f, -0.6f, 3.0f, 0.0f, 1.0f) - .texOffs(0, 15), + .texOffs(0, 15) + .addBox(0.0f, 0.0f, -0.6f, 3.0f, 0.0f, 1.0f), PartPose.offsetAndRotation(0.5f, 0.1f, -0.05f, 0.0f, 0.0f, 0.3927f)); legsL.addOrReplaceChild("cube_r3", CubeListBuilder.create() - .addBox(0.0f, 0.0f, -0.5f, 3.0f, 0.0f, 1.0f) - .texOffs(0, 14), + .texOffs(0, 14) + .addBox(0.0f, 0.0f, -0.5f, 3.0f, 0.0f, 1.0f), PartPose.offsetAndRotation(0.0f, 0.0f, 0.9f, 0.0f, -0.2182f, 0.3927f)); @@ -64,72 +64,72 @@ public class SilkMothEntityModel extends BlockBenchModel { 0.0f, 3.1416f, -0.6545f)); legsR.addOrReplaceChild("cube_r4", CubeListBuilder.create() - .addBox(0.0f, 0.0f, -0.5f, 3.0f, 0.0f, 1.0f) - .texOffs(0, 10), + .texOffs(0, 10) + .addBox(0.0f, 0.0f, -0.5f, 3.0f, 0.0f, 1.0f), PartPose.offsetAndRotation(0.0f, 0.0f, -1.0f, 0.0f, 0.2182f, 0.3927f)); legsR.addOrReplaceChild("cube_r5", CubeListBuilder.create() - .addBox(0.0f, 0.0f, -0.4f, 3.0f, 0.0f, 1.0f) - .texOffs(0, 11), + .texOffs(0, 11) + .addBox(0.0f, 0.0f, -0.4f, 3.0f, 0.0f, 1.0f), PartPose.offsetAndRotation(0.5f, 0.1f, -0.05f, 0.0f, 0.0f, 0.3927f)); legsR.addOrReplaceChild("cube_r6", CubeListBuilder.create() - .addBox(0.0216f, 0.0f, -0.4024f, 3.0f, 0.0f, 1.0f) - .texOffs(0, 12), + .texOffs(0, 12) + .addBox(0.0216f, 0.0f, -0.4024f, 3.0f, 0.0f, 1.0f), PartPose.offsetAndRotation(0.0f, 0.0f, 0.9f, 0.0f, -0.2182f, 0.3927f)); PartDefinition head_pivot = modelPartData.addOrReplaceChild(PartNames.HEAD, CubeListBuilder.create() - .addBox(-1.5f, -1.5f, -2.0f, 3.0f, 3.0f, 3.0f) - .texOffs(15, 10), + .texOffs(15, 10) + .addBox(-1.5f, -1.5f, -2.0f, 3.0f, 3.0f, 3.0f), PartPose.offset(0.0f, 18.0f, -3.0f)); head_pivot.addOrReplaceChild("tendril_r_r1", CubeListBuilder.create() .mirror() - .addBox(-1.5f, -5.0f, 0.0f, 3.0f, 5.0f, 0.0f) - .texOffs(23, 0), + .texOffs(23, 0) + .addBox(-1.5f, -5.0f, 0.0f, 3.0f, 5.0f, 0.0f), PartPose.offsetAndRotation(1.0f, -1.15f, -1.0f, 0.0f, 0.0f, 0.3927f)); head_pivot.addOrReplaceChild("tendril_r_r2", CubeListBuilder.create() - .addBox(-1.5f, -5.0f, 0.0f, 3.0f, 5.0f, 0.0f) - .texOffs(23, 0), + .texOffs(23, 0) + .addBox(-1.5f, -5.0f, 0.0f, 3.0f, 5.0f, 0.0f), PartPose.offsetAndRotation(-1.0f, -1.15f, -1.0f, 0.0f, 0.0f, -0.3927f)); PartDefinition bb_main = modelPartData.addOrReplaceChild(PartNames.BODY, CubeListBuilder.create() - .addBox(-2.5f, -8.5f, -3.0f, 5.0f, 5.0f, 3.0f) - .texOffs(19, 19), + .texOffs(19, 19) + .addBox(-2.5f, -8.5f, -3.0f, 5.0f, 5.0f, 3.0f), PartPose.offset(0.0f, 24.0f, 0.0f)); bb_main.addOrReplaceChild(PartNames.RIGHT_WING, CubeListBuilder.create() .mirror() - .addBox(-7.0f, 0.0f, -3.0f, 9.0f, 0.0f, 5.0f) - .texOffs(0, 5), + .texOffs(0, 5) + .addBox(-7.0f, 0.0f, -3.0f, 9.0f, 0.0f, 5.0f), PartPose.offsetAndRotation(-1.5f, -6.5f, 0.5f, 0.0f, 0.0f, 0.3927f)); bb_main.addOrReplaceChild(PartNames.LEFT_WING, CubeListBuilder.create() - .addBox(-2.0f, 0.0f, -3.0f, 9.0f, 0.0f, 5.0f) - .texOffs(0, 5), + .texOffs(0, 5) + .addBox(-2.0f, 0.0f, -3.0f, 9.0f, 0.0f, 5.0f), PartPose.offsetAndRotation(1.5f, -6.5f, 0.5f, 0.0f, 0.0f, -0.3927f)); bb_main.addOrReplaceChild("abdomen_r1", CubeListBuilder.create() - .addBox(-3.0f, -4.0f, -1.0f, 4.0f, 4.0f, 7.0f) - .texOffs(0, 10), + .texOffs(0, 10) + .addBox(-3.0f, -4.0f, -1.0f, 4.0f, 4.0f, 7.0f), PartPose.offsetAndRotation(1.0f, -3.9f, 0.0f, -0.3927f, 0.0f, 0.0f)); /*texWidth = 64; texHeight = 64;*/ - return LayerDefinition.create(modelData, 64, 64); - } + return LayerDefinition.create(modelData, 64, 64); + } - public SilkMothEntityModel(ModelPart modelPart) { - super(RenderType::entityCutout); + public SilkMothEntityModel(ModelPart modelPart) { + super(RenderType::entityCutout); legsL = modelPart.getChild(PartNames.LEFT_LEG); cube_r1 = legsL.getChild("cube_r1"); @@ -228,27 +228,27 @@ public class SilkMothEntityModel extends BlockBenchModel { bb_main.addChild(abdomen_r1); setRotationAngle(abdomen_r1, -0.3927F, 0.0F, 0.0F); abdomen_r1.texOffs(0, 10).addBox(-3.0F, -4.0F, -1.0F, 4.0F, 4.0F, 7.0F, 0.0F);*/ - } + } - @Override - public void setupAnim(SilkMothEntity entity, float limbAngle, float limbDistance, float animationProgress, - float headYaw, float headPitch) { - wingR_r1.zRot = Mth.sin(animationProgress * 2F) * 0.4F + 0.3927F; - wingL_r1.zRot = -wingR_r1.zRot; - head_pivot.xRot = Mth.sin(animationProgress * 0.03F) * 0.1F; - tendril_r_r1.zRot = Mth.sin(animationProgress * 0.07F) * 0.2F + 0.3927F; - tendril_r_r2.zRot = -tendril_r_r1.zRot; - abdomen_r1.xRot = Mth.sin(animationProgress * 0.05F) * 0.1F - 0.3927F; - legsR.zRot = Mth.sin(animationProgress * 0.07F) * 0.1F - 0.6545F; - legsL.zRot = -legsR.zRot; - } + @Override + public void setupAnim(SilkMothEntity entity, float limbAngle, float limbDistance, float animationProgress, + float headYaw, float headPitch) { + wingR_r1.zRot = Mth.sin(animationProgress * 2F) * 0.4F + 0.3927F; + wingL_r1.zRot = -wingR_r1.zRot; + head_pivot.xRot = Mth.sin(animationProgress * 0.03F) * 0.1F; + tendril_r_r1.zRot = Mth.sin(animationProgress * 0.07F) * 0.2F + 0.3927F; + tendril_r_r2.zRot = -tendril_r_r1.zRot; + abdomen_r1.xRot = Mth.sin(animationProgress * 0.05F) * 0.1F - 0.3927F; + legsR.zRot = Mth.sin(animationProgress * 0.07F) * 0.1F - 0.6545F; + legsL.zRot = -legsR.zRot; + } - @Override - public void renderToBuffer(PoseStack matrices, VertexConsumer vertices, int light, int overlay, float red, - float green, float blue, float alpha) { - bb_main.render(matrices, vertices, light, overlay); - head_pivot.render(matrices, vertices, light, overlay); - legsL.render(matrices, vertices, light, overlay); - legsR.render(matrices, vertices, light, overlay); - } + @Override + public void renderToBuffer(PoseStack matrices, VertexConsumer vertices, int light, int overlay, float red, + float green, float blue, float alpha) { + bb_main.render(matrices, vertices, light, overlay); + head_pivot.render(matrices, vertices, light, overlay); + legsL.render(matrices, vertices, light, overlay); + legsR.render(matrices, vertices, light, overlay); + } } diff --git a/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java b/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java index 39fdf210..67813e04 100644 --- a/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java +++ b/src/main/java/ru/betterend/entity/render/RendererEntityEndSlime.java @@ -22,7 +22,7 @@ public class RendererEntityEndSlime extends MobRenderer(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_MODEL)), 0.25f); + super(ctx, new EndSlimeEntityModel<>(ctx.getModelSet(), false), 0.25f); this.addLayer(new OverlayFeatureRenderer(this, ctx)); this.addLayer(new EyesLayer>(this) { @Override @@ -73,8 +73,8 @@ public class RendererEntityEndSlime extends MobRenderer> featureRendererContext, EntityRendererProvider.Context ctx) { super(featureRendererContext); - modelOrdinal = new EndSlimeEntityModel<>(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_SHELL_MODEL)); - modelLake = new EndSlimeEntityModel<>(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_SHELL_MODEL)); + modelOrdinal = new EndSlimeEntityModel<>(ctx.getModelSet(), true); + modelLake = new EndSlimeEntityModel<>(ctx.getModelSet(), true); } public void render(PoseStack matrixStack, MultiBufferSource vertexConsumerProvider, int i, T livingEntity, diff --git a/src/main/java/ru/betterend/item/model/ArmoredElytraModel.java b/src/main/java/ru/betterend/item/model/ArmoredElytraModel.java index e19c8077..c853908f 100644 --- a/src/main/java/ru/betterend/item/model/ArmoredElytraModel.java +++ b/src/main/java/ru/betterend/item/model/ArmoredElytraModel.java @@ -22,14 +22,14 @@ public class ArmoredElytraModel extends AgeableListModel MeshDefinition modelData = new MeshDefinition(); PartDefinition modelPartData = modelData.getRoot(); modelPartData.addOrReplaceChild(PartNames.LEFT_WING, CubeListBuilder.create() - .addBox(-10.0f, 0.0f, 0.0f, 10.0f, 20.0f, 2.0f) - .texOffs(22, 0), + .texOffs(22, 0) + .addBox(-10.0f, 0.0f, 0.0f, 10.0f, 20.0f, 2.0f), PartPose.ZERO); modelPartData.addOrReplaceChild(PartNames.RIGHT_WING, CubeListBuilder.create() .mirror() - .addBox(0.0f, 0.0f, 0.0f, 10.0f, 20.0f, 2.0f) - .texOffs(22, 0), + .texOffs(22, 0) + .addBox(0.0f, 0.0f, 0.0f, 10.0f, 20.0f, 2.0f), PartPose.ZERO); return LayerDefinition.create(modelData, 48, 48); diff --git a/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java b/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java index 7a9b90ff..525d2ced 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java @@ -22,16 +22,27 @@ public class CrystaliteBootsModel extends HumanoidModel { final float scale = 1.0f; MeshDefinition modelData = new MeshDefinition(); PartDefinition modelPartData = modelData.getRoot(); - CubeDeformation deformation = new CubeDeformation(scale + 0.25f); + // TODO: see if we need to subclass HumanoidModel + // Humanoid model tries to retrieve all parts in it's constructor, + // so we need to add empty Nodes + modelPartData.addOrReplaceChild("head", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("hat", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("body", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("right_arm", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("left_arm", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("right_leg", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("left_leg", CubeListBuilder.create(), PartPose.ZERO); + + CubeDeformation deformation = new CubeDeformation(scale + 0.25f); modelPartData.addOrReplaceChild("leftBoot", CubeListBuilder.create() - .addBox(-2.0f, 0.0f, -2.0f, 4.0f, 12.0f, 4.0f, deformation) - .texOffs(0, 32), + .texOffs(0, 32) + .addBox(-2.0f, 0.0f, -2.0f, 4.0f, 12.0f, 4.0f, deformation), PartPose.offset(1.9f, 12.0f, 0.0f)); modelPartData.addOrReplaceChild("rightBoot", CubeListBuilder.create() - .addBox(-2.0f, 0.0f, -2.0f, 4.0f, 12.0f, 4.0f, deformation) - .texOffs(0, 16), + .texOffs(0, 16) + .addBox(-2.0f, 0.0f, -2.0f, 4.0f, 12.0f, 4.0f, deformation), PartPose.offset(-1.9f, 12.0f, 0.0f)); return LayerDefinition.create(modelData, 64, 48); diff --git a/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java b/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java index 51b705fe..058ec7d1 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java @@ -33,35 +33,47 @@ public class CrystaliteChestplateModel extends HumanoidModel { private static LayerDefinition getTexturedModelData(float scale, boolean thinArms) { MeshDefinition modelData = new MeshDefinition(); PartDefinition modelPartData = modelData.getRoot(); + + // TODO: see if we need to subclass HumanoidModel + // Humanoid model tries to retrieve all parts in it's constructor, + // so we need to add empty Nodes + modelPartData.addOrReplaceChild("head", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("hat", CubeListBuilder.create(), PartPose.ZERO); + // modelPartData.addOrReplaceChild("body", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("right_arm", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("left_arm", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("right_leg", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("left_leg", CubeListBuilder.create(), PartPose.ZERO); + CubeDeformation deformation = new CubeDeformation(scale + 0.25F); PartDefinition body = modelPartData.addOrReplaceChild(PartNames.BODY, CubeListBuilder.create() - .addBox(-4.0f, 0.0f, -2.0f, 8.0f, 12.0f, 4.0f, deformation) - .texOffs(16, 16), + .texOffs(16, 16) + .addBox(-4.0f, 0.0f, -2.0f, 8.0f, 12.0f, 4.0f, deformation), PartPose.ZERO); if (thinArms) { deformation = new CubeDeformation(scale + 0.45F); PartDefinition leftShoulder = modelPartData.addOrReplaceChild("leftShoulder", CubeListBuilder.create() .mirror() - .addBox(-1.0f, -2.5f, -2.0f, 4.0f, 12.0f, 4.0f, deformation) - .texOffs(40, 32), + .texOffs(40, 32) + .addBox(-1.0f, -2.5f, -2.0f, 4.0f, 12.0f, 4.0f, deformation), PartPose.offset(5.0f, 2.0f, 0.0f)); PartDefinition rightShoulder = modelPartData.addOrReplaceChild("rightShoulder", CubeListBuilder.create() - .addBox(-3.0f, -2.5f, -2.0f, 4.0f, 12.0f, 4.0f, deformation) - .texOffs(40, 16), + .texOffs(40, 16) + .addBox(-3.0f, -2.5f, -2.0f, 4.0f, 12.0f, 4.0f, deformation), PartPose.offset(-5.0f, 2.0f, 10.0f)); } else { deformation = new CubeDeformation(scale + 0.45F); PartDefinition leftShoulder = modelPartData.addOrReplaceChild("leftShoulder", CubeListBuilder.create() .mirror() - .addBox(-1.0f, -2.5f, -2.0f, 4.0f, 12.0f, 4.0f, deformation) - .texOffs(40, 32), + .texOffs(40, 32) + .addBox(-1.0f, -2.5f, -2.0f, 4.0f, 12.0f, 4.0f, deformation), PartPose.offset(5.0f, 2.0f, 0.0f)); PartDefinition rightShoulder = modelPartData.addOrReplaceChild("rightShoulder", CubeListBuilder.create() - .addBox(-3.0f, -2.5f, -2.0f, 4.0f, 12.0f, 4.0f, deformation) - .texOffs(40, 16), + .texOffs(40, 16) + .addBox(-3.0f, -2.5f, -2.0f, 4.0f, 12.0f, 4.0f, deformation), PartPose.offset(-5.0f, 2.0f, 10.0f)); } return LayerDefinition.create(modelData, 64, 48); diff --git a/src/main/java/ru/betterend/item/model/CrystaliteHelmetModel.java b/src/main/java/ru/betterend/item/model/CrystaliteHelmetModel.java index 489d75e5..0c5518d0 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteHelmetModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteHelmetModel.java @@ -15,6 +15,7 @@ import net.minecraft.client.model.geom.builders.*; import net.minecraft.client.renderer.RenderType; import net.minecraft.world.entity.LivingEntity; import ru.betterend.registry.EndEntitiesRenders; +import shadow.fabric.impl.client.rendering.ArmorProviderExtensions; @Environment(EnvType.CLIENT) public class CrystaliteHelmetModel extends HumanoidModel { @@ -23,10 +24,22 @@ public class CrystaliteHelmetModel extends HumanoidModel { final float scale = 1.0f; MeshDefinition modelData = new MeshDefinition(); PartDefinition modelPartData = modelData.getRoot(); + + // TODO: see if we need to subclass HumanoidModel + // Humanoid model tries to retrieve all parts in it's constructor, + // so we need to add empty Nodes + modelPartData.addOrReplaceChild("head", CubeListBuilder.create(), PartPose.ZERO); + //modelPartData.addOrReplaceChild("hat", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("body", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("right_arm", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("left_arm", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("right_leg", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("left_leg", CubeListBuilder.create(), PartPose.ZERO); + CubeDeformation deformation_hat = new CubeDeformation(scale + 0.5f); PartDefinition hat = modelPartData.addOrReplaceChild(PartNames.HAT, CubeListBuilder.create() - .addBox(-4.0f, -8.0f, -4.0f, 8.0f, 8.0f, 8.0f, deformation_hat) - .texOffs(0, 0), + .texOffs(0, 0) + .addBox(-4.0f, -8.0f, -4.0f, 8.0f, 8.0f, 8.0f, deformation_hat), PartPose.ZERO); return LayerDefinition.create(modelData, 64, 48); diff --git a/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java b/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java index b8a7ecbc..0d7c6a32 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java @@ -19,20 +19,32 @@ public class CrystaliteLeggingsModel extends HumanoidModel { float scale = 1.0f; MeshDefinition modelData = new MeshDefinition(); PartDefinition modelPartData = modelData.getRoot(); + + // TODO: see if we need to subclass HumanoidModel + // Humanoid model tries to retrieve all parts in it's constructor, + // so we need to add empty Nodes + modelPartData.addOrReplaceChild("head", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("hat", CubeListBuilder.create(), PartPose.ZERO); + // modelPartData.addOrReplaceChild("body", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("right_arm", CubeListBuilder.create(), PartPose.ZERO); + modelPartData.addOrReplaceChild("left_arm", CubeListBuilder.create(), PartPose.ZERO); + // modelPartData.addOrReplaceChild("right_leg", CubeListBuilder.create(), PartPose.ZERO); + // modelPartData.addOrReplaceChild("left_leg", CubeListBuilder.create(), PartPose.ZERO); + CubeDeformation deformation = new CubeDeformation(scale); modelPartData.addOrReplaceChild(PartNames.BODY, CubeListBuilder.create() - .addBox(-4.0f, 0.0f, -2.0f, 8.0f, 12.0f, 4.0f, deformation) - .texOffs(16, 16), + .texOffs(16, 16) + .addBox(-4.0f, 0.0f, -2.0f, 8.0f, 12.0f, 4.0f, deformation), PartPose.ZERO); modelPartData.addOrReplaceChild(PartNames.LEFT_LEG, CubeListBuilder.create() - .addBox(-2.0f, 0.0f, -2.0f, 4.0f, 12.0f, 4.0f, deformation) - .texOffs(0, 32), + .texOffs(0, 32) + .addBox(-2.0f, 0.0f, -2.0f, 4.0f, 12.0f, 4.0f, deformation), PartPose.offset(1.9f, 12.0f, 0.0f)); modelPartData.addOrReplaceChild(PartNames.RIGHT_LEG, CubeListBuilder.create() - .addBox(-2.0f, 0.0f, -2.0f, 4.0f, 12.0f, 4.0f, deformation) - .texOffs(0, 16), + .texOffs(0, 16) + .addBox(-2.0f, 0.0f, -2.0f, 4.0f, 12.0f, 4.0f, deformation), PartPose.offset(-1.9f, 12.0f, 0.0f)); return LayerDefinition.create(modelData, 64, 48);