189 lines
6.1 KiB
Java
189 lines
6.1 KiB
Java
|
|
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);
|
|
}
|
|
}
|