Fixed UV-Coordinate rendering
This commit is contained in:
parent
3d6f0adc56
commit
770f12ee20
12 changed files with 204 additions and 127 deletions
48
Convert.java
48
Convert.java
|
@ -94,14 +94,18 @@ class ModelPart {
|
||||||
}
|
}
|
||||||
s += "PartDefinition " + name + " = ";
|
s += "PartDefinition " + name + " = ";
|
||||||
s += pName+".addOrReplaceChild(\""+name+"\", CubeListBuilder.create()\n";
|
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) {
|
if (this.hadBox) {
|
||||||
|
s+= "\n";
|
||||||
if (scale!=1)
|
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
|
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){
|
if (x==0 && y==0 && z==0 && rx==0 && ry==0 && rz==0){
|
||||||
s+= "PartPose.ZERO";
|
s+= "PartPose.ZERO";
|
||||||
} else if (rx==0 && ry==0 && rz==0){
|
} else if (rx==0 && ry==0 && rz==0){
|
||||||
|
@ -144,13 +148,33 @@ public class Convert {
|
||||||
p.setRotationAngle(x, y, z);
|
p.setRotationAngle(x, y, z);
|
||||||
}
|
}
|
||||||
public void c (){
|
public void c (){
|
||||||
float scale = 0;
|
float scale = 1;
|
||||||
ModelPart[] SHARDS = new ModelPart[4];
|
ModelPart partC = new ModelPart(64, 64, 0, 19, "partC");
|
||||||
SHARDS[0] = new ModelPart(16, 16, 2, 4, "SHARDS[0]").addBox(-5.0F, 1.0F, -3.0F, 2.0F, 8.0F, 2.0F);
|
partC.addBox(1.0F, 0.0F, 1.0F, 14.0F, 9.0F, 14.0F, 0.0F);
|
||||||
SHARDS[1] = new ModelPart(16, 16, 2, 4, "SHARDS[1]").addBox(3.0F, -1.0F, -1.0F, 2.0F, 8.0F, 2.0F);
|
ModelPart partA = new ModelPart(64, 64, 0, 0,"partA");
|
||||||
SHARDS[2] = new ModelPart(16, 16, 2, 4, "SHARDS[2]").addBox(-1.0F, 0.0F, -5.0F, 2.0F, 4.0F, 2.0F);
|
partA.addBox(1.0F, 0.0F, 0.0F, 14.0F, 5.0F, 14.0F, 0.0F);
|
||||||
SHARDS[3] = new ModelPart(16, 16, 2, 4, "SHARDS[3]").addBox(0.0F, 3.0F, 4.0F, 2.0F, 6.0F, 2.0F);
|
partA.y = 9.0F;
|
||||||
ModelPart CORE = new ModelPart(16, 16, 0, 0, "CORE");
|
partA.z = 1.0F;
|
||||||
CORE.addBox(-2.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,13 +51,13 @@ public class EndCrystalRenderer {
|
||||||
MeshDefinition modelData = new MeshDefinition();
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
PartDefinition modelPartData = modelData.getRoot();
|
PartDefinition modelPartData = modelData.getRoot();
|
||||||
modelPartData.addOrReplaceChild("FRAME", CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild("CORE", CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
return LayerDefinition.create(modelData, 64, 32);
|
return LayerDefinition.create(modelData, 64, 32);
|
||||||
|
|
|
@ -66,28 +66,28 @@ public class EternalCrystalRenderer {
|
||||||
MeshDefinition modelData = new MeshDefinition();
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
PartDefinition modelPartData = modelData.getRoot();
|
PartDefinition modelPartData = modelData.getRoot();
|
||||||
modelPartData.addOrReplaceChild("SHARDS_0", CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild("SHARDS_1", CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild("SHARDS_2", CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild("SHARDS_3", CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild("CORE", CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
return LayerDefinition.create(modelData, 16, 16);
|
return LayerDefinition.create(modelData, 16, 16);
|
||||||
|
|
|
@ -122,7 +122,7 @@ public class CubozoaEntityModel extends BlockBenchModel<CubozoaEntity> {
|
||||||
scaleY = sin * 0.1F + 0.9F;
|
scaleY = sin * 0.1F + 0.9F;
|
||||||
scaleXZ = Mth.sin(animationProgress * 0.13F + 3.14F) * 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<TENTACLE_COUNT; i++){
|
||||||
tentacle[i].xRot = sin * 0.15f;
|
tentacle[i].xRot = sin * 0.15f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@ import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
|
||||||
import net.minecraft.client.model.ListModel;
|
import net.minecraft.client.model.ListModel;
|
||||||
|
import net.minecraft.client.model.geom.EntityModelSet;
|
||||||
|
import net.minecraft.client.model.geom.ModelLayers;
|
||||||
import net.minecraft.client.model.geom.ModelPart;
|
import net.minecraft.client.model.geom.ModelPart;
|
||||||
import net.minecraft.client.model.geom.PartNames;
|
import net.minecraft.client.model.geom.PartNames;
|
||||||
import net.minecraft.client.model.geom.PartPose;
|
import net.minecraft.client.model.geom.PartPose;
|
||||||
|
@ -15,6 +17,7 @@ import net.minecraft.client.model.geom.builders.PartDefinition;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import ru.bclib.util.MHelper;
|
import ru.bclib.util.MHelper;
|
||||||
import ru.betterend.entity.EndSlimeEntity;
|
import ru.betterend.entity.EndSlimeEntity;
|
||||||
|
import ru.betterend.registry.EndEntitiesRenders;
|
||||||
|
|
||||||
public class EndSlimeEntityModel<T extends EndSlimeEntity> extends ListModel<T> {
|
public class EndSlimeEntityModel<T extends EndSlimeEntity> extends ListModel<T> {
|
||||||
private final ModelPart innerCube;
|
private final ModelPart innerCube;
|
||||||
|
@ -120,9 +123,11 @@ public class EndSlimeEntityModel<T extends EndSlimeEntity> extends ListModel<T>
|
||||||
return LayerDefinition.create(modelData, 64, 32);
|
return LayerDefinition.create(modelData, 64, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
public EndSlimeEntityModel(ModelPart modelPart, boolean onlyShell) {
|
public EndSlimeEntityModel(EntityModelSet modelSet, boolean onlyShell){
|
||||||
super(RenderType::entityCutout);
|
super(RenderType::entityCutout);
|
||||||
|
|
||||||
|
ModelPart modelPart = modelSet.bakeLayer(onlyShell ? EndEntitiesRenders.END_SLIME_SHELL_MODEL : EndEntitiesRenders.END_SLIME_MODEL);
|
||||||
|
|
||||||
innerCube = modelPart.getChild(PartNames.BODY);
|
innerCube = modelPart.getChild(PartNames.BODY);
|
||||||
if (!onlyShell) {
|
if (!onlyShell) {
|
||||||
rightEye = modelPart.getChild(PartNames.RIGHT_EYE);
|
rightEye = modelPart.getChild(PartNames.RIGHT_EYE);
|
||||||
|
|
|
@ -15,25 +15,25 @@ import net.minecraft.util.Mth;
|
||||||
import ru.betterend.entity.SilkMothEntity;
|
import ru.betterend.entity.SilkMothEntity;
|
||||||
|
|
||||||
public class SilkMothEntityModel extends BlockBenchModel<SilkMothEntity> {
|
public class SilkMothEntityModel extends BlockBenchModel<SilkMothEntity> {
|
||||||
private final ModelPart legsL;
|
private final ModelPart legsL;
|
||||||
private final ModelPart cube_r1;
|
private final ModelPart cube_r1;
|
||||||
private final ModelPart cube_r2;
|
private final ModelPart cube_r2;
|
||||||
private final ModelPart cube_r3;
|
private final ModelPart cube_r3;
|
||||||
private final ModelPart legsR;
|
private final ModelPart legsR;
|
||||||
private final ModelPart cube_r4;
|
private final ModelPart cube_r4;
|
||||||
private final ModelPart cube_r5;
|
private final ModelPart cube_r5;
|
||||||
private final ModelPart cube_r6;
|
private final ModelPart cube_r6;
|
||||||
private final ModelPart head_pivot;
|
private final ModelPart head_pivot;
|
||||||
private final ModelPart tendril_r_r1;
|
private final ModelPart tendril_r_r1;
|
||||||
private final ModelPart tendril_r_r2;
|
private final ModelPart tendril_r_r2;
|
||||||
private final ModelPart bb_main;
|
private final ModelPart bb_main;
|
||||||
private final ModelPart wingR_r1;
|
private final ModelPart wingR_r1;
|
||||||
private final ModelPart wingL_r1;
|
private final ModelPart wingL_r1;
|
||||||
private final ModelPart abdomen_r1;
|
private final ModelPart abdomen_r1;
|
||||||
|
|
||||||
public static LayerDefinition getTexturedModelData() {
|
public static LayerDefinition getTexturedModelData() {
|
||||||
MeshDefinition modelData = new MeshDefinition();
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
PartDefinition modelPartData = modelData.getRoot();
|
PartDefinition modelPartData = modelData.getRoot();
|
||||||
|
|
||||||
PartDefinition legsL = modelPartData.addOrReplaceChild(PartNames.LEFT_LEG, CubeListBuilder.create()
|
PartDefinition legsL = modelPartData.addOrReplaceChild(PartNames.LEFT_LEG, CubeListBuilder.create()
|
||||||
.texOffs(0, 0),
|
.texOffs(0, 0),
|
||||||
|
@ -41,20 +41,20 @@ public class SilkMothEntityModel extends BlockBenchModel<SilkMothEntity> {
|
||||||
0.0f, 0.0f, 0.6981f));
|
0.0f, 0.0f, 0.6981f));
|
||||||
|
|
||||||
legsL.addOrReplaceChild("cube_r1", CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(0.0f, 0.0f, -1.0f,
|
||||||
0.0f, 0.2182f, 0.3927f));
|
0.0f, 0.2182f, 0.3927f));
|
||||||
|
|
||||||
legsL.addOrReplaceChild("cube_r2", CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(0.5f, 0.1f, -0.05f,
|
||||||
0.0f, 0.0f, 0.3927f));
|
0.0f, 0.0f, 0.3927f));
|
||||||
|
|
||||||
legsL.addOrReplaceChild("cube_r3", CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(0.0f, 0.0f, 0.9f,
|
||||||
0.0f, -0.2182f, 0.3927f));
|
0.0f, -0.2182f, 0.3927f));
|
||||||
|
|
||||||
|
@ -64,72 +64,72 @@ public class SilkMothEntityModel extends BlockBenchModel<SilkMothEntity> {
|
||||||
0.0f, 3.1416f, -0.6545f));
|
0.0f, 3.1416f, -0.6545f));
|
||||||
|
|
||||||
legsR.addOrReplaceChild("cube_r4", CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(0.0f, 0.0f, -1.0f,
|
||||||
0.0f, 0.2182f, 0.3927f));
|
0.0f, 0.2182f, 0.3927f));
|
||||||
|
|
||||||
legsR.addOrReplaceChild("cube_r5", CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(0.5f, 0.1f, -0.05f,
|
||||||
0.0f, 0.0f, 0.3927f));
|
0.0f, 0.0f, 0.3927f));
|
||||||
|
|
||||||
legsR.addOrReplaceChild("cube_r6", CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(0.0f, 0.0f, 0.9f,
|
||||||
0.0f, -0.2182f, 0.3927f));
|
0.0f, -0.2182f, 0.3927f));
|
||||||
|
|
||||||
PartDefinition head_pivot = modelPartData.addOrReplaceChild(PartNames.HEAD, CubeListBuilder.create()
|
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));
|
PartPose.offset(0.0f, 18.0f, -3.0f));
|
||||||
|
|
||||||
head_pivot.addOrReplaceChild("tendril_r_r1", CubeListBuilder.create()
|
head_pivot.addOrReplaceChild("tendril_r_r1", CubeListBuilder.create()
|
||||||
.mirror()
|
.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,
|
PartPose.offsetAndRotation(1.0f, -1.15f, -1.0f,
|
||||||
0.0f, 0.0f, 0.3927f));
|
0.0f, 0.0f, 0.3927f));
|
||||||
|
|
||||||
head_pivot.addOrReplaceChild("tendril_r_r2", CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(-1.0f, -1.15f, -1.0f,
|
||||||
0.0f, 0.0f, -0.3927f));
|
0.0f, 0.0f, -0.3927f));
|
||||||
|
|
||||||
PartDefinition bb_main = modelPartData.addOrReplaceChild(PartNames.BODY, CubeListBuilder.create()
|
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));
|
PartPose.offset(0.0f, 24.0f, 0.0f));
|
||||||
|
|
||||||
bb_main.addOrReplaceChild(PartNames.RIGHT_WING, CubeListBuilder.create()
|
bb_main.addOrReplaceChild(PartNames.RIGHT_WING, CubeListBuilder.create()
|
||||||
.mirror()
|
.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,
|
PartPose.offsetAndRotation(-1.5f, -6.5f, 0.5f,
|
||||||
0.0f, 0.0f, 0.3927f));
|
0.0f, 0.0f, 0.3927f));
|
||||||
|
|
||||||
bb_main.addOrReplaceChild(PartNames.LEFT_WING, CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(1.5f, -6.5f, 0.5f,
|
||||||
0.0f, 0.0f, -0.3927f));
|
0.0f, 0.0f, -0.3927f));
|
||||||
|
|
||||||
bb_main.addOrReplaceChild("abdomen_r1", CubeListBuilder.create()
|
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,
|
PartPose.offsetAndRotation(1.0f, -3.9f, 0.0f,
|
||||||
-0.3927f, 0.0f, 0.0f));
|
-0.3927f, 0.0f, 0.0f));
|
||||||
|
|
||||||
/*texWidth = 64;
|
/*texWidth = 64;
|
||||||
texHeight = 64;*/
|
texHeight = 64;*/
|
||||||
return LayerDefinition.create(modelData, 64, 64);
|
return LayerDefinition.create(modelData, 64, 64);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SilkMothEntityModel(ModelPart modelPart) {
|
public SilkMothEntityModel(ModelPart modelPart) {
|
||||||
super(RenderType::entityCutout);
|
super(RenderType::entityCutout);
|
||||||
|
|
||||||
legsL = modelPart.getChild(PartNames.LEFT_LEG);
|
legsL = modelPart.getChild(PartNames.LEFT_LEG);
|
||||||
cube_r1 = legsL.getChild("cube_r1");
|
cube_r1 = legsL.getChild("cube_r1");
|
||||||
|
@ -228,27 +228,27 @@ public class SilkMothEntityModel extends BlockBenchModel<SilkMothEntity> {
|
||||||
bb_main.addChild(abdomen_r1);
|
bb_main.addChild(abdomen_r1);
|
||||||
setRotationAngle(abdomen_r1, -0.3927F, 0.0F, 0.0F);
|
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);*/
|
abdomen_r1.texOffs(0, 10).addBox(-3.0F, -4.0F, -1.0F, 4.0F, 4.0F, 7.0F, 0.0F);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setupAnim(SilkMothEntity entity, float limbAngle, float limbDistance, float animationProgress,
|
public void setupAnim(SilkMothEntity entity, float limbAngle, float limbDistance, float animationProgress,
|
||||||
float headYaw, float headPitch) {
|
float headYaw, float headPitch) {
|
||||||
wingR_r1.zRot = Mth.sin(animationProgress * 2F) * 0.4F + 0.3927F;
|
wingR_r1.zRot = Mth.sin(animationProgress * 2F) * 0.4F + 0.3927F;
|
||||||
wingL_r1.zRot = -wingR_r1.zRot;
|
wingL_r1.zRot = -wingR_r1.zRot;
|
||||||
head_pivot.xRot = Mth.sin(animationProgress * 0.03F) * 0.1F;
|
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_r1.zRot = Mth.sin(animationProgress * 0.07F) * 0.2F + 0.3927F;
|
||||||
tendril_r_r2.zRot = -tendril_r_r1.zRot;
|
tendril_r_r2.zRot = -tendril_r_r1.zRot;
|
||||||
abdomen_r1.xRot = Mth.sin(animationProgress * 0.05F) * 0.1F - 0.3927F;
|
abdomen_r1.xRot = Mth.sin(animationProgress * 0.05F) * 0.1F - 0.3927F;
|
||||||
legsR.zRot = Mth.sin(animationProgress * 0.07F) * 0.1F - 0.6545F;
|
legsR.zRot = Mth.sin(animationProgress * 0.07F) * 0.1F - 0.6545F;
|
||||||
legsL.zRot = -legsR.zRot;
|
legsL.zRot = -legsR.zRot;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderToBuffer(PoseStack matrices, VertexConsumer vertices, int light, int overlay, float red,
|
public void renderToBuffer(PoseStack matrices, VertexConsumer vertices, int light, int overlay, float red,
|
||||||
float green, float blue, float alpha) {
|
float green, float blue, float alpha) {
|
||||||
bb_main.render(matrices, vertices, light, overlay);
|
bb_main.render(matrices, vertices, light, overlay);
|
||||||
head_pivot.render(matrices, vertices, light, overlay);
|
head_pivot.render(matrices, vertices, light, overlay);
|
||||||
legsL.render(matrices, vertices, light, overlay);
|
legsL.render(matrices, vertices, light, overlay);
|
||||||
legsR.render(matrices, vertices, light, overlay);
|
legsR.render(matrices, vertices, light, overlay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlime
|
||||||
private static final RenderType GLOW[] = new RenderType[4];
|
private static final RenderType GLOW[] = new RenderType[4];
|
||||||
|
|
||||||
public RendererEntityEndSlime(EntityRendererProvider.Context ctx) {
|
public RendererEntityEndSlime(EntityRendererProvider.Context ctx) {
|
||||||
super(ctx, new EndSlimeEntityModel<>(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_MODEL)), 0.25f);
|
super(ctx, new EndSlimeEntityModel<>(ctx.getModelSet(), false), 0.25f);
|
||||||
this.addLayer(new OverlayFeatureRenderer<EndSlimeEntity>(this, ctx));
|
this.addLayer(new OverlayFeatureRenderer<EndSlimeEntity>(this, ctx));
|
||||||
this.addLayer(new EyesLayer<EndSlimeEntity, EndSlimeEntityModel<EndSlimeEntity>>(this) {
|
this.addLayer(new EyesLayer<EndSlimeEntity, EndSlimeEntityModel<EndSlimeEntity>>(this) {
|
||||||
@Override
|
@Override
|
||||||
|
@ -73,8 +73,8 @@ public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlime
|
||||||
|
|
||||||
public OverlayFeatureRenderer(RenderLayerParent<T, EndSlimeEntityModel<T>> featureRendererContext, EntityRendererProvider.Context ctx) {
|
public OverlayFeatureRenderer(RenderLayerParent<T, EndSlimeEntityModel<T>> featureRendererContext, EntityRendererProvider.Context ctx) {
|
||||||
super(featureRendererContext);
|
super(featureRendererContext);
|
||||||
modelOrdinal = new EndSlimeEntityModel<>(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_SHELL_MODEL));
|
modelOrdinal = new EndSlimeEntityModel<>(ctx.getModelSet(), true);
|
||||||
modelLake = new EndSlimeEntityModel<>(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_SHELL_MODEL));
|
modelLake = new EndSlimeEntityModel<>(ctx.getModelSet(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void render(PoseStack matrixStack, MultiBufferSource vertexConsumerProvider, int i, T livingEntity,
|
public void render(PoseStack matrixStack, MultiBufferSource vertexConsumerProvider, int i, T livingEntity,
|
||||||
|
|
|
@ -22,14 +22,14 @@ public class ArmoredElytraModel<T extends LivingEntity> extends AgeableListModel
|
||||||
MeshDefinition modelData = new MeshDefinition();
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
PartDefinition modelPartData = modelData.getRoot();
|
PartDefinition modelPartData = modelData.getRoot();
|
||||||
modelPartData.addOrReplaceChild(PartNames.LEFT_WING, CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild(PartNames.RIGHT_WING, CubeListBuilder.create()
|
modelPartData.addOrReplaceChild(PartNames.RIGHT_WING, CubeListBuilder.create()
|
||||||
.mirror()
|
.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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
return LayerDefinition.create(modelData, 48, 48);
|
return LayerDefinition.create(modelData, 48, 48);
|
||||||
|
|
|
@ -22,16 +22,27 @@ public class CrystaliteBootsModel extends HumanoidModel<LivingEntity> {
|
||||||
final float scale = 1.0f;
|
final float scale = 1.0f;
|
||||||
MeshDefinition modelData = new MeshDefinition();
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
PartDefinition modelPartData = modelData.getRoot();
|
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()
|
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));
|
PartPose.offset(1.9f, 12.0f, 0.0f));
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild("rightBoot", CubeListBuilder.create()
|
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));
|
PartPose.offset(-1.9f, 12.0f, 0.0f));
|
||||||
|
|
||||||
return LayerDefinition.create(modelData, 64, 48);
|
return LayerDefinition.create(modelData, 64, 48);
|
||||||
|
|
|
@ -33,35 +33,47 @@ public class CrystaliteChestplateModel extends HumanoidModel<LivingEntity> {
|
||||||
private static LayerDefinition getTexturedModelData(float scale, boolean thinArms) {
|
private static LayerDefinition getTexturedModelData(float scale, boolean thinArms) {
|
||||||
MeshDefinition modelData = new MeshDefinition();
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
PartDefinition modelPartData = modelData.getRoot();
|
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);
|
CubeDeformation deformation = new CubeDeformation(scale + 0.25F);
|
||||||
PartDefinition body = modelPartData.addOrReplaceChild(PartNames.BODY, CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
if (thinArms) {
|
if (thinArms) {
|
||||||
deformation = new CubeDeformation(scale + 0.45F);
|
deformation = new CubeDeformation(scale + 0.45F);
|
||||||
PartDefinition leftShoulder = modelPartData.addOrReplaceChild("leftShoulder", CubeListBuilder.create()
|
PartDefinition leftShoulder = modelPartData.addOrReplaceChild("leftShoulder", CubeListBuilder.create()
|
||||||
.mirror()
|
.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));
|
PartPose.offset(5.0f, 2.0f, 0.0f));
|
||||||
|
|
||||||
PartDefinition rightShoulder = modelPartData.addOrReplaceChild("rightShoulder", CubeListBuilder.create()
|
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));
|
PartPose.offset(-5.0f, 2.0f, 10.0f));
|
||||||
} else {
|
} else {
|
||||||
deformation = new CubeDeformation(scale + 0.45F);
|
deformation = new CubeDeformation(scale + 0.45F);
|
||||||
PartDefinition leftShoulder = modelPartData.addOrReplaceChild("leftShoulder", CubeListBuilder.create()
|
PartDefinition leftShoulder = modelPartData.addOrReplaceChild("leftShoulder", CubeListBuilder.create()
|
||||||
.mirror()
|
.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));
|
PartPose.offset(5.0f, 2.0f, 0.0f));
|
||||||
|
|
||||||
PartDefinition rightShoulder = modelPartData.addOrReplaceChild("rightShoulder", CubeListBuilder.create()
|
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));
|
PartPose.offset(-5.0f, 2.0f, 10.0f));
|
||||||
}
|
}
|
||||||
return LayerDefinition.create(modelData, 64, 48);
|
return LayerDefinition.create(modelData, 64, 48);
|
||||||
|
|
|
@ -15,6 +15,7 @@ import net.minecraft.client.model.geom.builders.*;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import ru.betterend.registry.EndEntitiesRenders;
|
import ru.betterend.registry.EndEntitiesRenders;
|
||||||
|
import shadow.fabric.impl.client.rendering.ArmorProviderExtensions;
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public class CrystaliteHelmetModel extends HumanoidModel<LivingEntity> {
|
public class CrystaliteHelmetModel extends HumanoidModel<LivingEntity> {
|
||||||
|
@ -23,10 +24,22 @@ public class CrystaliteHelmetModel extends HumanoidModel<LivingEntity> {
|
||||||
final float scale = 1.0f;
|
final float scale = 1.0f;
|
||||||
MeshDefinition modelData = new MeshDefinition();
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
PartDefinition modelPartData = modelData.getRoot();
|
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);
|
CubeDeformation deformation_hat = new CubeDeformation(scale + 0.5f);
|
||||||
PartDefinition hat = modelPartData.addOrReplaceChild(PartNames.HAT, CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
return LayerDefinition.create(modelData, 64, 48);
|
return LayerDefinition.create(modelData, 64, 48);
|
||||||
|
|
|
@ -19,20 +19,32 @@ public class CrystaliteLeggingsModel extends HumanoidModel<LivingEntity> {
|
||||||
float scale = 1.0f;
|
float scale = 1.0f;
|
||||||
MeshDefinition modelData = new MeshDefinition();
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
PartDefinition modelPartData = modelData.getRoot();
|
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);
|
CubeDeformation deformation = new CubeDeformation(scale);
|
||||||
modelPartData.addOrReplaceChild(PartNames.BODY, CubeListBuilder.create()
|
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);
|
PartPose.ZERO);
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild(PartNames.LEFT_LEG, CubeListBuilder.create()
|
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));
|
PartPose.offset(1.9f, 12.0f, 0.0f));
|
||||||
|
|
||||||
modelPartData.addOrReplaceChild(PartNames.RIGHT_LEG, CubeListBuilder.create()
|
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));
|
PartPose.offset(-1.9f, 12.0f, 0.0f));
|
||||||
|
|
||||||
return LayerDefinition.create(modelData, 64, 48);
|
return LayerDefinition.create(modelData, 64, 48);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue