Helper to convert old RenderModel calls to new syntax

This commit is contained in:
Frank Bauer 2021-06-24 10:58:39 +02:00
parent fb29dd75f7
commit df8eb8f040
2 changed files with 191 additions and 0 deletions

2
.gitignore vendored
View file

@ -29,3 +29,5 @@ bin/
run/
output/
*.log
Convert.class
ModelPart.class

189
Convert.java Normal file
View file

@ -0,0 +1,189 @@
class ModelPart {
static java.util.ArrayList<ModelPart> parts = new java.util.ArrayList<>(20);
final String name;
ModelPart parent = null;
boolean mirror = false;
float x=0, y=0, z=0, rx=0, ry=0, rz=0;
int u=0, v=0;
float bx=0,by=0,bz=0,ba=0,bb=0,bc=0;
boolean hadBox = false;
ModelPart(Convert c, String name){
this.name = name;
parts.add(this);
}
ModelPart setPos(float x, float y, float z){
this.x=x;
this.y=y;
this.z=z;
return this;
}
ModelPart setRotationAngle(float x, float y, float z){
this.rx=x;
this.ry=y;
this.rz=z;
return this;
}
ModelPart addChild(ModelPart p){
p.parent = this;
return this;
}
ModelPart texOffs(int u, int v){
this.u=u;
this.v=v;
return this;
}
ModelPart addBox(float x, float y, float z, float a, float b, float c, float _d){
bx=x;
by=y;
bz=z;
ba=a;
bb=b;
bc=c;
hadBox = true;
return this;
}
ModelPart addBox(float x, float y, float z, float a, float b, float c, float _d, boolean mirror){
this.mirror = mirror;
bx=x;
by=y;
bz=z;
ba=a;
bb=b;
bc=c;
hadBox = true;
return this;
}
public String toString(){
String pName = parent==null?"modelPartData":parent.name;
String s = "PartDefinition " + name + " = ";
s += pName+".addOrReplaceChild(\""+name+"\", CubeListBuilder.create()\n";
if (this.mirror) s+= ".mirror()\n";
if (this.hadBox) s+= ".addBox("+bx+"f, "+by+"f, "+bz+"f, "+ba+"f, "+bb+"f, "+bc+"f)\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){
s+= "PartPose.offset("+x+"f, "+y+"f, "+z+"f)";
} else {
s+= "PartPose.offsetAndRotation("+x+"f, "+y+"f, "+z+"f, \n"+rx+"f, "+ry+"f, "+rz+"f)";
}
s +=");";
return s;
}
public static void print(){
for(ModelPart p : parts){
System.out.println(p);
System.out.println();
}
for(ModelPart p : parts){
String pName = p.parent==null?"modelPart":p.parent.name;
System.out.println(p.name +" = "+pName+".getChild(\""+p.name+"\");");
}
}
}
public class Convert {
public static void main(String[] args){
new Convert().c();
ModelPart.print();
}
void setRotationAngle(ModelPart p, float x, float y, float z){
p.setRotationAngle(x, y, z);
}
public void c (){
ModelPart legsL = new ModelPart(this, "legsL");
legsL.setPos(1.5F, 19.9F, -0.45F);
setRotationAngle(legsL, 0.0F, 0.0F, 0.6981F);
ModelPart cube_r1 = new ModelPart(this, "cube_r1");
cube_r1.setPos(0.0F, 0.0F, -1.0F);
legsL.addChild(cube_r1);
setRotationAngle(cube_r1, 0.0F, 0.2182F, 0.3927F);
cube_r1.texOffs(0, 13).addBox(0.0216F, 0.0F, -0.5976F, 3.0F, 0.0F, 1.0F, 0.0F);
ModelPart cube_r2 = new ModelPart(this, "cube_r2");
cube_r2.setPos(0.5F, 0.1F, -0.05F);
legsL.addChild(cube_r2);
setRotationAngle(cube_r2, 0.0F, 0.0F, 0.3927F);
cube_r2.texOffs(0, 15).addBox(0.0F, 0.0F, -0.6F, 3.0F, 0.0F, 1.0F, 0.0F);
ModelPart cube_r3 = new ModelPart(this, "cube_r3");
cube_r3.setPos(0.0F, 0.0F, 0.9F);
legsL.addChild(cube_r3);
setRotationAngle(cube_r3, 0.0F, -0.2182F, 0.3927F);
cube_r3.texOffs(0, 14).addBox(0.0F, 0.0F, -0.5F, 3.0F, 0.0F, 1.0F, 0.0F);
ModelPart legsR = new ModelPart(this,"legsR");
legsR.setPos(-1.5F, 19.9F, -0.55F);
setRotationAngle(legsR, 0.0F, 3.1416F, -0.6545F);
ModelPart cube_r4 = new ModelPart(this, "cube_r4");
cube_r4.setPos(0.0F, 0.0F, -1.0F);
legsR.addChild(cube_r4);
setRotationAngle(cube_r4, 0.0F, 0.2182F, 0.3927F);
cube_r4.texOffs(0, 10).addBox(0.0F, 0.0F, -0.5F, 3.0F, 0.0F, 1.0F, 0.0F);
ModelPart cube_r5 = new ModelPart(this, "cube_r5");
cube_r5.setPos(0.5F, 0.1F, -0.05F);
legsR.addChild(cube_r5);
setRotationAngle(cube_r5, 0.0F, 0.0F, 0.3927F);
cube_r5.texOffs(0, 11).addBox(0.0F, 0.0F, -0.4F, 3.0F, 0.0F, 1.0F, 0.0F);
ModelPart cube_r6 = new ModelPart(this, "cube_r6");
cube_r6.setPos(0.0F, 0.0F, 0.9F);
legsR.addChild(cube_r6);
setRotationAngle(cube_r6, 0.0F, -0.2182F, 0.3927F);
cube_r6.texOffs(0, 12).addBox(0.0216F, 0.0F, -0.4024F, 3.0F, 0.0F, 1.0F, 0.0F);
ModelPart head_pivot = new ModelPart(this, "head_pivot");
head_pivot.setPos(0.0F, 18.0F, -3.0F);
head_pivot.texOffs(15, 10).addBox(-1.5F, -1.5F, -2.0F, 3.0F, 3.0F, 3.0F, 0.0F);
ModelPart tendril_r_r1 = new ModelPart(this, "tendril_r_r1");
tendril_r_r1.setPos(1.0F, -1.15F, -1.0F);
head_pivot.addChild(tendril_r_r1);
setRotationAngle(tendril_r_r1, 0.0F, 0.0F, 0.3927F);
tendril_r_r1.texOffs(23, 0).addBox(-1.5F, -5.0F, 0.0F, 3.0F, 5.0F, 0.0F, 0.0F, true);
ModelPart tendril_r_r2 = new ModelPart(this, "tendril_r_r2");
tendril_r_r2.setPos(-1.0F, -1.15F, -1.0F);
head_pivot.addChild(tendril_r_r2);
setRotationAngle(tendril_r_r2, 0.0F, 0.0F, -0.3927F);
tendril_r_r2.texOffs(23, 0).addBox(-1.5F, -5.0F, 0.0F, 3.0F, 5.0F, 0.0F, 0.0F);
ModelPart bb_main = new ModelPart(this, "bb_main");
bb_main.setPos(0.0F, 24.0F, 0.0F);
bb_main.texOffs(19, 19).addBox(-2.5F, -8.5F, -3.0F, 5.0F, 5.0F, 3.0F, 0.0F);
ModelPart wingR_r1 = new ModelPart(this, "wingR_r1");
wingR_r1.setPos(-1.5F, -6.5F, 0.5F);
bb_main.addChild(wingR_r1);
setRotationAngle(wingR_r1, 0.0F, 0.0F, 0.3927F);
wingR_r1.texOffs(0, 5).addBox(-7.0F, 0.0F, -3.0F, 9.0F, 0.0F, 5.0F, 0.0F, true);
ModelPart wingL_r1 = new ModelPart(this, "wingL_r1");
wingL_r1.setPos(1.5F, -6.5F, 0.5F);
bb_main.addChild(wingL_r1);
setRotationAngle(wingL_r1, 0.0F, 0.0F, -0.3927F);
wingL_r1.texOffs(0, 5).addBox(-2.0F, 0.0F, -3.0F, 9.0F, 0.0F, 5.0F, 0.0F);
ModelPart abdomen_r1 = new ModelPart(this, "abdomen_r1");
abdomen_r1.setPos(1.0F, -3.9F, 0.0F);
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);
}
}