As for fighter, the final thing would be one whole entity, the different "modules" can just be various shapes, or sets of shapes, and the final thing can be one entity, Flans already uses a system where the wings and flaps and everything are all made separately, but the full code is one entity, if that makes any sense I don't really know if those are the correct terms, but if you look at the source code for his planes, you'll see how each part of the plane is categorised, I'd post an example here if I was at my PC, I may have to edit an example in here:
Spoiler:
OK this is how the A-144 model was coded:
//This File was created by Prototype
// This file is for Flan's Flying Mod Version 1.5.1
// Model Checklist
// Model:
// - Hitbox [ ]
// - Check Left/Right [ ] Left = + / Right = -
// - Code Cleaned [ ]
// - Coverted to Version [1.5.1]
package co.uk.flansmods.client.model;
import co.uk.flansmods.client.tmt.ModelRendererTurbo;
import co.uk.flansmods.client.tmt.Coord2D;
import co.uk.flansmods.client.tmt.Shape2D;
public class ModelA144 extends ModelPlane
{
int textureX = 512;
int textureY = 512;
boolean VarGear = true;
boolean VarDoor = true;
boolean VarWing = true;
public ModelA144()
{
bodyModel = new ModelRendererTurbo[22];
bodyModel[0] = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
bodyModel[1] = new ModelRendererTurbo(this, 160, 0, textureX, textureY);
bodyModel[2] = new ModelRendererTurbo(this, 0, 100, textureX, textureY);
bodyModel[3] = new ModelRendererTurbo(this, 0, 150, textureX, textureY);
bodyModel[4] = new ModelRendererTurbo(this, 0, 200, textureX, textureY);
bodyModel[5] = new ModelRendererTurbo(this, 0, 260, textureX, textureY);
bodyModel[6] = new ModelRendererTurbo(this, 0, 290, textureX, textureY);
bodyModel[7] = new ModelRendererTurbo(this, 0, 320, textureX, textureY);
bodyModel[8] = new ModelRendererTurbo(this, 0, 360, textureX, textureY);
bodyModel[9] = new ModelRendererTurbo(this, 0, 415, textureX, textureY);
bodyModel[10] = new ModelRendererTurbo(this, 0, 440, textureX, textureY);
bodyModel[11] = new ModelRendererTurbo(this, 0, 290, textureX, textureY);
bodyModel[12] = new ModelRendererTurbo(this, 0, 470, textureX, textureY);
bodyModel[13] = new ModelRendererTurbo(this, 170, 100, textureX, textureY);
bodyModel[14] = new ModelRendererTurbo(this, 170, 155, textureX, textureY);
bodyModel[15] = new ModelRendererTurbo(this, 170, 180, textureX, textureY);
bodyModel[16] = new ModelRendererTurbo(this, 170, 190, textureX, textureY);
bodyModel[17] = new ModelRendererTurbo(this, 170, 190, textureX, textureY);
bodyModel[18] = new ModelRendererTurbo(this, 170, 290, textureX, textureY);
bodyModel[19] = new ModelRendererTurbo(this, 170, 230, textureX, textureY);
bodyModel[20] = new ModelRendererTurbo(this, 170, 360, textureX, textureY);
bodyModel[21] = new ModelRendererTurbo(this, 170, 360, textureX, textureY);
bodyModel[0].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(60, 0, 60, 0), new Coord2D(65, 10, 65, 10), new Coord2D(0, 10, 0, 10), new Coord2D(5, 3, 5, 3), new Coord2D(10, 2, 10, 2), new Coord2D(20, 0, 20, 0) } ), 20, 65, 10, 143, 20, ModelRendererTurbo.MR_FRONT, new float[] {40, 11, 6, 9, 65, 12});
bodyModel[0].rotateAngleX = 3.14159263F;
bodyModel[0].rotateAngleZ = 3.14159263F;
bodyModel[0].setRotationPoint(-50F, 0F, -10F);
bodyModel[1].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(70, 0, 70, 0), new Coord2D(70, 2, 70, 2), new Coord2D(0, 2, 0, 2) } ), 22, 70, 2, 144, 22, ModelRendererTurbo.MR_FRONT, new float[] {2, 70, 2, 70});
bodyModel[1].rotateAngleX = 3.14159263F;
bodyModel[1].rotateAngleZ = 3.14159263F;
bodyModel[1].setRotationPoint(-50F, -10F, -11F);
bodyModel[2].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(65, 0, 65, 0), new Coord2D(70, 13, 70, 13), new Coord2D(30, 11, 30, 11), new Coord2D(20, 9, 20, 9), new Coord2D(10, 7, 10, 7), new Coord2D(5, 5, 5, 5) } ), 20, 70, 13, 156, 20, ModelRendererTurbo.MR_FRONT, new float[] {8, 6, 11, 11, 41, 14, 65});
bodyModel[2].rotateAngleX = 3.14159263F;
bodyModel[2].rotateAngleZ = 3.14159263F;
bodyModel[2].setRotationPoint(-50F, -12F, -10F);
bodyModel[3].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(10, 25, 10, 25), new Coord2D(0, 0, 0, 0), new Coord2D(40, 0, 40, 0), new Coord2D(40, 23, 40, 23) } ), 20, 40, 25, 121, 20, ModelRendererTurbo.MR_FRONT, new float[] {31, 23, 40, 27});
bodyModel[3].rotateAngleX = 3.14159263F;
bodyModel[3].rotateAngleZ = 3.14159263F;
bodyModel[3].setRotationPoint(10F, 0F, -10F);
bodyModel[4].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 28, 0, 28), new Coord2D(0, 5, 0, 5), new Coord2D(15, 5, 15, 5), new Coord2D(20, 0, 20, 0), new Coord2D(30, 0, 30, 0), new Coord2D(35, 5, 35, 5), new Coord2D(40, 5, 40, 5), new Coord2D(40, 28, 40, 28), new Coord2D(30, 33, 30, 33), new Coord2D(20, 33, 20, 33) } ), 26, 40, 33, 114, 26, ModelRendererTurbo.MR_FRONT, new float[] {0, 10, 12, 23, 5, 8, 10, 8, 15, 23});
bodyModel[4].rotateAngleX = 3.14159263F;
bodyModel[4].rotateAngleZ = 3.14159263F;
bodyModel[4].setRotationPoint(50F, 5F, -13F);
bodyModel[5].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 9, 0, 9), new Coord2D(2, 4, 2, 4), new Coord2D(15, 0, 15, 0), new Coord2D(50, 0, 50, 0), new Coord2D(45, 4, 45, 4), new Coord2D(45, 9, 45, 9), new Coord2D(0, 9, 0, 9) } ), 20, 50, 9, 112, 20, ModelRendererTurbo.MR_FRONT, new float[] {0, 45, 5, 7, 35, 14, 6});
bodyModel[5].rotateAngleX = 3.14159263F;
bodyModel[5].rotateAngleZ = 3.14159263F;
bodyModel[5].setRotationPoint(20F, 0F, -30F);
bodyModel[6].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 20, 0, 20), new Coord2D(15, 10, 15, 10), new Coord2D(25, 0, 25, 0), new Coord2D(50, 0, 50, 0), new Coord2D(50, 20, 50, 20) } ), 5, 50, 20, 129, 5, ModelRendererTurbo.MR_FRONT, new float[] {50, 20, 25, 15, 19});
bodyModel[6].rotateAngleX = 4.71238894F;
bodyModel[6].rotateAngleZ = 3.14159263F;
bodyModel[6].setRotationPoint(15F, -13F, -30F);
bodyModel[7].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(45, 0, 45, 0), new Coord2D(46, 1, 46, 1), new Coord2D(47, 3, 47, 3), new Coord2D(49, 5, 49, 5), new Coord2D(50, 10, 50, 10), new Coord2D(45, 15, 45, 15), new Coord2D(20, 10, 20, 10), new Coord2D(5, 5, 5, 5) } ), 20, 50, 18, 120, 20, ModelRendererTurbo.MR_FRONT, new float[] {8, 16, 27, 10, 6, 3, 3, 2, 45});
bodyModel[7].rotateAngleZ = 3.14159263F;
bodyModel[7].rotateAngleX = 3.14159263F;
bodyModel[7].setRotationPoint(20F, -13F, -30F);
bodyModel[8].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(20, 0, 20, 0), new Coord2D(30, 6, 30, 6), new Coord2D(30, 20, 30, 20), new Coord2D(20, 26, 20, 26), new Coord2D(6, 26, 6, 26), new Coord2D(0, 20, 0, 20), new Coord2D(0, 6, 0, 6) } ), 25, 30, 26, 98, 25, ModelRendererTurbo.MR_FRONT, new float[] {9, 14, 9, 14, 12, 14, 12, 14});
bodyModel[8].rotateAngleX = 3.14159263F;
bodyModel[8].rotateAngleZ = 3.14159263F;
bodyModel[8].setRotationPoint(70F, 0F, -34F);
bodyModel[9].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(14, 0, 14, 0), new Coord2D(20, 6, 20, 6), new Coord2D(20, 14, 20, 14), new Coord2D(14, 20, 14, 20), new Coord2D(6, 20, 6, 20), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 2, 20, 20, 68, 2, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 9, 8, 9, 8, 9, 8});
bodyModel[9].rotateAngleX = 3.14159263F;
bodyModel[9].rotateAngleZ = 3.14159263F;
bodyModel[9].setRotationPoint(75F, -2F, -36F);
bodyModel[10].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 9, 0, 9), new Coord2D(2, 4, 2, 4), new Coord2D(15, 0, 15, 0), new Coord2D(50, 0, 50, 0), new Coord2D(45, 4, 45, 4), new Coord2D(45, 9, 45, 9), new Coord2D(0, 9, 0, 9) } ), 20, 50, 9, 112, 20, ModelRendererTurbo.MR_FRONT, new float[] {0, 45, 5, 7, 35, 14, 6});
bodyModel[10].rotateAngleX = 3.14159263F;
bodyModel[10].rotateAngleZ = 3.14159263F;
bodyModel[10].setRotationPoint(20F, 0F, 10F);
bodyModel[11].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 20, 0, 20), new Coord2D(15, 10, 15, 10), new Coord2D(25, 0, 25, 0), new Coord2D(50, 0, 50, 0), new Coord2D(50, 20, 50, 20) } ), 5, 50, 20, 129, 5, ModelRendererTurbo.MR_FRONT, new float[] {50, 20, 25, 15, 19});
bodyModel[11].rotateAngleX = -4.71238894F;
bodyModel[11].rotateAngleZ = 3.14159263F;
bodyModel[11].setRotationPoint(15F, -8F, 30F);
bodyModel[12].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(45, 0, 45, 0), new Coord2D(46, 1, 46, 1), new Coord2D(47, 3, 47, 3), new Coord2D(49, 5, 49, 5), new Coord2D(50, 10, 50, 10), new Coord2D(45, 15, 45, 15), new Coord2D(20, 10, 20, 10), new Coord2D(5, 5, 5, 5) } ), 20, 50, 18, 120, 20, ModelRendererTurbo.MR_FRONT, new float[] {8, 16, 27, 10, 6, 3, 3, 2, 45});
bodyModel[12].rotateAngleZ = 3.14159263F;
bodyModel[12].rotateAngleX = 3.14159263F;
bodyModel[12].setRotationPoint(20F, -13F, 10F);
bodyModel[13].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(20, 0, 20, 0), new Coord2D(30, 6, 30, 6), new Coord2D(30, 20, 30, 20), new Coord2D(20, 26, 20, 26), new Coord2D(6, 26, 6, 26), new Coord2D(0, 20, 0, 20), new Coord2D(0, 6, 0, 6) } ), 25, 30, 26, 98, 25, ModelRendererTurbo.MR_FRONT, new float[] {9, 14, 9, 14, 12, 14, 12, 14});
bodyModel[13].rotateAngleX = 3.14159263F;
bodyModel[13].rotateAngleZ = 3.14159263F;
bodyModel[13].setRotationPoint(70F, 0F, 10F);
bodyModel[14].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(14, 0, 14, 0), new Coord2D(20, 6, 20, 6), new Coord2D(20, 14, 20, 14), new Coord2D(14, 20, 14, 20), new Coord2D(6, 20, 6, 20), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 2, 20, 20, 68, 2, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 9, 8, 9, 8, 9, 8});
bodyModel[14].rotateAngleX = 3.14159263F;
bodyModel[14].rotateAngleZ = 3.14159263F;
bodyModel[14].setRotationPoint(75F, -2F, 35F);
bodyModel[15].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(22, 0, 22, 0), new Coord2D(21, 1, 21, 1), new Coord2D(1, 1, 1, 1), new Coord2D(0, 0, 0, 0) } ), 2, 22, 1, 46, 2, ModelRendererTurbo.MR_FRONT, new float[] {0, 2, 20, 2, 22});
bodyModel[15].rotateAngleX = 1.57079631F;
bodyModel[15].rotateAngleY = 4.71238894F;
bodyModel[15].setRotationPoint(-50F, -12F, -11F);
bodyModel[16].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(20, 0, 20, 0), new Coord2D(30, 32, 30, 32), new Coord2D(20, 32, 20, 32) } ), 2, 30, 32, 102, 2, ModelRendererTurbo.MR_FRONT, new float[] {38, 10, 34, 20});
bodyModel[16].rotateAngleZ = 3.14159265F;
bodyModel[16].rotateAngleX = 0.52359878F;
bodyModel[16].setRotationPoint(100F, 0F, -23F);
bodyModel[17].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(20, 0, 20, 0), new Coord2D(30, 32, 30, 32), new Coord2D(20, 32, 20, 32) } ), 2, 30, 32, 102, 2, ModelRendererTurbo.MR_FRONT, new float[] {38, 10, 34, 20});
bodyModel[17].rotateAngleZ = 3.14159265F;
bodyModel[17].rotateAngleX = -0.52359878F;
bodyModel[17].setRotationPoint(100F, -1F, 23F);
bodyModel[18].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(25, 0, 25, 0), new Coord2D(35, 57, 35, 57), new Coord2D(25, 55, 25, 55) } ), 2, 35, 57, 155, 2, ModelRendererTurbo.MR_FRONT, new float[] {61, 11, 58, 25});
bodyModel[18].rotateAngleY = 3.14159263F;
bodyModel[18].setRotationPoint(100F, -23F, -1F);
bodyModel[19].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(54, 0, 54, 0), new Coord2D(60, 6, 60, 6), new Coord2D(60, 14, 60, 14), new Coord2D(54, 23, 54, 23), new Coord2D(6, 23, 6, 23), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 30, 60, 23, 152, 30, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 11, 48, 11, 8, 9, 48});
bodyModel[19].rotateAngleY = 1.57079631F;
bodyModel[19].setRotationPoint(85F, 0F, 30F);
bodyModel[20].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(14, 0, 14, 0), new Coord2D(20, 6, 20, 6), new Coord2D(20, 14, 20, 14), new Coord2D(14, 20, 14, 20), new Coord2D(6, 20, 6, 20), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 10, 20, 20, 68, 10, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 9, 8, 9, 8, 9, 8});
bodyModel[20].rotateAngleY = 1.57079631F;
bodyModel[20].setRotationPoint(115F, 0F, 25F);
bodyModel[21].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(14, 0, 14, 0), new Coord2D(20, 6, 20, 6), new Coord2D(20, 14, 20, 14), new Coord2D(14, 20, 14, 20), new Coord2D(6, 20, 6, 20), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 10, 20, 20, 68, 10, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 9, 8, 9, 8, 9, 8});
bodyModel[21].rotateAngleY = 1.57079631F;
bodyModel[21].setRotationPoint(115F, 0F, -6F);
if(VarGear == true)
{
}
if(VarDoor == true)
{
}
if(VarWing == true)
{
}
tailModel = new ModelRendererTurbo[0];
if(VarGear == true)
{
}
if(VarDoor == true)
{
}
if(VarWing == true)
{
}
leftWingModel = new ModelRendererTurbo[0];
if(VarGear == true)
{
}
if(VarDoor == true)
{
}
if(VarWing == true)
{
}
rightWingModel = new ModelRendererTurbo[0];
if(VarGear == true)
{
}
if(VarDoor == true)
{
}
if(VarWing == true)
{
}
propellerModels = new ModelRendererTurbo[0][0];
yawFlapModel = new ModelRendererTurbo[0];
pitchFlapLeftModel = new ModelRendererTurbo[0];
pitchFlapRightModel = new ModelRendererTurbo[0];
pitchFlapLeftWingModel = new ModelRendererTurbo[0];
pitchFlapRightWingModel = new ModelRendererTurbo[0];
// Stuff not used in this modeltype. Should be defined to avoid errors.
topWingModel = new ModelRendererTurbo[0];
flipAll();
}
// Replace with your propeller function
private ModelRendererTurbo[] makeProp(int i, int j, int k)
{
ModelRendererTurbo[] prop = new ModelRendererTurbo[0];
return prop;
}
}
Now I think what it does is divide the whole model up into various sections, in this case I've only used body parts because the A-144 is not an atmospheric fighter, so it doesn't need flaps, although it origionally did.
//This File was created by Prototype
// This file is for Flan's Flying Mod Version 1.5.1
// Model Checklist
// Model:
// - Hitbox [ ]
// - Check Left/Right [ ] Left = + / Right = -
// - Code Cleaned [ ]
// - Coverted to Version [1.5.1]
package co.uk.flansmods.client.model;
import co.uk.flansmods.client.tmt.ModelRendererTurbo;
import co.uk.flansmods.client.tmt.Coord2D;
import co.uk.flansmods.client.tmt.Shape2D;
public class ModelA144 extends ModelPlane
{
int textureX = 512;
int textureY = 512;
boolean VarGear = true;
boolean VarDoor = true;
boolean VarWing = true;
public ModelA144()
{
bodyModel = new ModelRendererTurbo[22];
bodyModel[0] = new ModelRendererTurbo(this, 0, 0, textureX, textureY);
bodyModel[1] = new ModelRendererTurbo(this, 160, 0, textureX, textureY);
bodyModel[2] = new ModelRendererTurbo(this, 0, 100, textureX, textureY);
bodyModel[3] = new ModelRendererTurbo(this, 0, 150, textureX, textureY);
bodyModel[4] = new ModelRendererTurbo(this, 0, 200, textureX, textureY);
bodyModel[5] = new ModelRendererTurbo(this, 0, 260, textureX, textureY);
bodyModel[6] = new ModelRendererTurbo(this, 0, 290, textureX, textureY);
bodyModel[7] = new ModelRendererTurbo(this, 0, 320, textureX, textureY);
bodyModel[8] = new ModelRendererTurbo(this, 0, 360, textureX, textureY);
bodyModel[9] = new ModelRendererTurbo(this, 0, 415, textureX, textureY);
bodyModel[10] = new ModelRendererTurbo(this, 0, 440, textureX, textureY);
bodyModel[11] = new ModelRendererTurbo(this, 0, 290, textureX, textureY);
bodyModel[12] = new ModelRendererTurbo(this, 0, 470, textureX, textureY);
bodyModel[13] = new ModelRendererTurbo(this, 170, 100, textureX, textureY);
bodyModel[14] = new ModelRendererTurbo(this, 170, 155, textureX, textureY);
bodyModel[15] = new ModelRendererTurbo(this, 170, 180, textureX, textureY);
bodyModel[16] = new ModelRendererTurbo(this, 170, 190, textureX, textureY);
bodyModel[17] = new ModelRendererTurbo(this, 170, 190, textureX, textureY);
bodyModel[18] = new ModelRendererTurbo(this, 170, 290, textureX, textureY);
bodyModel[19] = new ModelRendererTurbo(this, 170, 230, textureX, textureY);
bodyModel[20] = new ModelRendererTurbo(this, 170, 360, textureX, textureY);
bodyModel[21] = new ModelRendererTurbo(this, 170, 360, textureX, textureY);
bodyModel[0].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(60, 0, 60, 0), new Coord2D(65, 10, 65, 10), new Coord2D(0, 10, 0, 10), new Coord2D(5, 3, 5, 3), new Coord2D(10, 2, 10, 2), new Coord2D(20, 0, 20, 0) } ), 20, 65, 10, 143, 20, ModelRendererTurbo.MR_FRONT, new float[] {40, 11, 6, 9, 65, 12});
bodyModel[0].rotateAngleX = 3.14159263F;
bodyModel[0].rotateAngleZ = 3.14159263F;
bodyModel[0].setRotationPoint(-50F, 0F, -10F);
bodyModel[1].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(70, 0, 70, 0), new Coord2D(70, 2, 70, 2), new Coord2D(0, 2, 0, 2) } ), 22, 70, 2, 144, 22, ModelRendererTurbo.MR_FRONT, new float[] {2, 70, 2, 70});
bodyModel[1].rotateAngleX = 3.14159263F;
bodyModel[1].rotateAngleZ = 3.14159263F;
bodyModel[1].setRotationPoint(-50F, -10F, -11F);
bodyModel[2].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(65, 0, 65, 0), new Coord2D(70, 13, 70, 13), new Coord2D(30, 11, 30, 11), new Coord2D(20, 9, 20, 9), new Coord2D(10, 7, 10, 7), new Coord2D(5, 5, 5, 5) } ), 20, 70, 13, 156, 20, ModelRendererTurbo.MR_FRONT, new float[] {8, 6, 11, 11, 41, 14, 65});
bodyModel[2].rotateAngleX = 3.14159263F;
bodyModel[2].rotateAngleZ = 3.14159263F;
bodyModel[2].setRotationPoint(-50F, -12F, -10F);
bodyModel[3].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(10, 25, 10, 25), new Coord2D(0, 0, 0, 0), new Coord2D(40, 0, 40, 0), new Coord2D(40, 23, 40, 23) } ), 20, 40, 25, 121, 20, ModelRendererTurbo.MR_FRONT, new float[] {31, 23, 40, 27});
bodyModel[3].rotateAngleX = 3.14159263F;
bodyModel[3].rotateAngleZ = 3.14159263F;
bodyModel[3].setRotationPoint(10F, 0F, -10F);
bodyModel[4].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 28, 0, 28), new Coord2D(0, 5, 0, 5), new Coord2D(15, 5, 15, 5), new Coord2D(20, 0, 20, 0), new Coord2D(30, 0, 30, 0), new Coord2D(35, 5, 35, 5), new Coord2D(40, 5, 40, 5), new Coord2D(40, 28, 40, 28), new Coord2D(30, 33, 30, 33), new Coord2D(20, 33, 20, 33) } ), 26, 40, 33, 114, 26, ModelRendererTurbo.MR_FRONT, new float[] {0, 10, 12, 23, 5, 8, 10, 8, 15, 23});
bodyModel[4].rotateAngleX = 3.14159263F;
bodyModel[4].rotateAngleZ = 3.14159263F;
bodyModel[4].setRotationPoint(50F, 5F, -13F);
bodyModel[5].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 9, 0, 9), new Coord2D(2, 4, 2, 4), new Coord2D(15, 0, 15, 0), new Coord2D(50, 0, 50, 0), new Coord2D(45, 4, 45, 4), new Coord2D(45, 9, 45, 9), new Coord2D(0, 9, 0, 9) } ), 20, 50, 9, 112, 20, ModelRendererTurbo.MR_FRONT, new float[] {0, 45, 5, 7, 35, 14, 6});
bodyModel[5].rotateAngleX = 3.14159263F;
bodyModel[5].rotateAngleZ = 3.14159263F;
bodyModel[5].setRotationPoint(20F, 0F, -30F);
bodyModel[6].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 20, 0, 20), new Coord2D(15, 10, 15, 10), new Coord2D(25, 0, 25, 0), new Coord2D(50, 0, 50, 0), new Coord2D(50, 20, 50, 20) } ), 5, 50, 20, 129, 5, ModelRendererTurbo.MR_FRONT, new float[] {50, 20, 25, 15, 19});
bodyModel[6].rotateAngleX = 4.71238894F;
bodyModel[6].rotateAngleZ = 3.14159263F;
bodyModel[6].setRotationPoint(15F, -13F, -30F);
bodyModel[7].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(45, 0, 45, 0), new Coord2D(46, 1, 46, 1), new Coord2D(47, 3, 47, 3), new Coord2D(49, 5, 49, 5), new Coord2D(50, 10, 50, 10), new Coord2D(45, 15, 45, 15), new Coord2D(20, 10, 20, 10), new Coord2D(5, 5, 5, 5) } ), 20, 50, 18, 120, 20, ModelRendererTurbo.MR_FRONT, new float[] {8, 16, 27, 10, 6, 3, 3, 2, 45});
bodyModel[7].rotateAngleZ = 3.14159263F;
bodyModel[7].rotateAngleX = 3.14159263F;
bodyModel[7].setRotationPoint(20F, -13F, -30F);
bodyModel[8].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(20, 0, 20, 0), new Coord2D(30, 6, 30, 6), new Coord2D(30, 20, 30, 20), new Coord2D(20, 26, 20, 26), new Coord2D(6, 26, 6, 26), new Coord2D(0, 20, 0, 20), new Coord2D(0, 6, 0, 6) } ), 25, 30, 26, 98, 25, ModelRendererTurbo.MR_FRONT, new float[] {9, 14, 9, 14, 12, 14, 12, 14});
bodyModel[8].rotateAngleX = 3.14159263F;
bodyModel[8].rotateAngleZ = 3.14159263F;
bodyModel[8].setRotationPoint(70F, 0F, -34F);
bodyModel[9].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(14, 0, 14, 0), new Coord2D(20, 6, 20, 6), new Coord2D(20, 14, 20, 14), new Coord2D(14, 20, 14, 20), new Coord2D(6, 20, 6, 20), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 2, 20, 20, 68, 2, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 9, 8, 9, 8, 9, 8});
bodyModel[9].rotateAngleX = 3.14159263F;
bodyModel[9].rotateAngleZ = 3.14159263F;
bodyModel[9].setRotationPoint(75F, -2F, -36F);
bodyModel[10].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 9, 0, 9), new Coord2D(2, 4, 2, 4), new Coord2D(15, 0, 15, 0), new Coord2D(50, 0, 50, 0), new Coord2D(45, 4, 45, 4), new Coord2D(45, 9, 45, 9), new Coord2D(0, 9, 0, 9) } ), 20, 50, 9, 112, 20, ModelRendererTurbo.MR_FRONT, new float[] {0, 45, 5, 7, 35, 14, 6});
bodyModel[10].rotateAngleX = 3.14159263F;
bodyModel[10].rotateAngleZ = 3.14159263F;
bodyModel[10].setRotationPoint(20F, 0F, 10F);
bodyModel[11].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 20, 0, 20), new Coord2D(15, 10, 15, 10), new Coord2D(25, 0, 25, 0), new Coord2D(50, 0, 50, 0), new Coord2D(50, 20, 50, 20) } ), 5, 50, 20, 129, 5, ModelRendererTurbo.MR_FRONT, new float[] {50, 20, 25, 15, 19});
bodyModel[11].rotateAngleX = -4.71238894F;
bodyModel[11].rotateAngleZ = 3.14159263F;
bodyModel[11].setRotationPoint(15F, -8F, 30F);
bodyModel[12].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(45, 0, 45, 0), new Coord2D(46, 1, 46, 1), new Coord2D(47, 3, 47, 3), new Coord2D(49, 5, 49, 5), new Coord2D(50, 10, 50, 10), new Coord2D(45, 15, 45, 15), new Coord2D(20, 10, 20, 10), new Coord2D(5, 5, 5, 5) } ), 20, 50, 18, 120, 20, ModelRendererTurbo.MR_FRONT, new float[] {8, 16, 27, 10, 6, 3, 3, 2, 45});
bodyModel[12].rotateAngleZ = 3.14159263F;
bodyModel[12].rotateAngleX = 3.14159263F;
bodyModel[12].setRotationPoint(20F, -13F, 10F);
bodyModel[13].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(20, 0, 20, 0), new Coord2D(30, 6, 30, 6), new Coord2D(30, 20, 30, 20), new Coord2D(20, 26, 20, 26), new Coord2D(6, 26, 6, 26), new Coord2D(0, 20, 0, 20), new Coord2D(0, 6, 0, 6) } ), 25, 30, 26, 98, 25, ModelRendererTurbo.MR_FRONT, new float[] {9, 14, 9, 14, 12, 14, 12, 14});
bodyModel[13].rotateAngleX = 3.14159263F;
bodyModel[13].rotateAngleZ = 3.14159263F;
bodyModel[13].setRotationPoint(70F, 0F, 10F);
bodyModel[14].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(14, 0, 14, 0), new Coord2D(20, 6, 20, 6), new Coord2D(20, 14, 20, 14), new Coord2D(14, 20, 14, 20), new Coord2D(6, 20, 6, 20), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 2, 20, 20, 68, 2, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 9, 8, 9, 8, 9, 8});
bodyModel[14].rotateAngleX = 3.14159263F;
bodyModel[14].rotateAngleZ = 3.14159263F;
bodyModel[14].setRotationPoint(75F, -2F, 35F);
bodyModel[15].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(22, 0, 22, 0), new Coord2D(21, 1, 21, 1), new Coord2D(1, 1, 1, 1), new Coord2D(0, 0, 0, 0) } ), 2, 22, 1, 46, 2, ModelRendererTurbo.MR_FRONT, new float[] {0, 2, 20, 2, 22});
bodyModel[15].rotateAngleX = 1.57079631F;
bodyModel[15].rotateAngleY = 4.71238894F;
bodyModel[15].setRotationPoint(-50F, -12F, -11F);
bodyModel[16].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(20, 0, 20, 0), new Coord2D(30, 32, 30, 32), new Coord2D(20, 32, 20, 32) } ), 2, 30, 32, 102, 2, ModelRendererTurbo.MR_FRONT, new float[] {38, 10, 34, 20});
bodyModel[16].rotateAngleZ = 3.14159265F;
bodyModel[16].rotateAngleX = 0.52359878F;
bodyModel[16].setRotationPoint(100F, 0F, -23F);
bodyModel[17].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(20, 0, 20, 0), new Coord2D(30, 32, 30, 32), new Coord2D(20, 32, 20, 32) } ), 2, 30, 32, 102, 2, ModelRendererTurbo.MR_FRONT, new float[] {38, 10, 34, 20});
bodyModel[17].rotateAngleZ = 3.14159265F;
bodyModel[17].rotateAngleX = -0.52359878F;
bodyModel[17].setRotationPoint(100F, -1F, 23F);
bodyModel[18].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(0, 0, 0, 0), new Coord2D(25, 0, 25, 0), new Coord2D(35, 57, 35, 57), new Coord2D(25, 55, 25, 55) } ), 2, 35, 57, 155, 2, ModelRendererTurbo.MR_FRONT, new float[] {61, 11, 58, 25});
bodyModel[18].rotateAngleY = 3.14159263F;
bodyModel[18].setRotationPoint(100F, -23F, -1F);
bodyModel[19].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(54, 0, 54, 0), new Coord2D(60, 6, 60, 6), new Coord2D(60, 14, 60, 14), new Coord2D(54, 23, 54, 23), new Coord2D(6, 23, 6, 23), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 30, 60, 23, 152, 30, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 11, 48, 11, 8, 9, 48});
bodyModel[19].rotateAngleY = 1.57079631F;
bodyModel[19].setRotationPoint(85F, 0F, 30F);
bodyModel[20].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(14, 0, 14, 0), new Coord2D(20, 6, 20, 6), new Coord2D(20, 14, 20, 14), new Coord2D(14, 20, 14, 20), new Coord2D(6, 20, 6, 20), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 10, 20, 20, 68, 10, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 9, 8, 9, 8, 9, 8});
bodyModel[20].rotateAngleY = 1.57079631F;
bodyModel[20].setRotationPoint(115F, 0F, 25F);
bodyModel[21].addShape3D(0, 0, 0, new Shape2D(new Coord2D[] { new Coord2D(6, 0, 6, 0), new Coord2D(14, 0, 14, 0), new Coord2D(20, 6, 20, 6), new Coord2D(20, 14, 20, 14), new Coord2D(14, 20, 14, 20), new Coord2D(6, 20, 6, 20), new Coord2D(0, 14, 0, 14), new Coord2D(0, 6, 0, 6) } ), 10, 20, 20, 68, 10, ModelRendererTurbo.MR_FRONT, new float[] {9, 8, 9, 8, 9, 8, 9, 8});
bodyModel[21].rotateAngleY = 1.57079631F;
bodyModel[21].setRotationPoint(115F, 0F, -6F);
if(VarGear == true)
{
}
if(VarDoor == true)
{
}
if(VarWing == true)
{
}
tailModel = new ModelRendererTurbo[0];
if(VarGear == true)
{
}
if(VarDoor == true)
{
}
if(VarWing == true)
{
}
leftWingModel = new ModelRendererTurbo[0];
if(VarGear == true)
{
}
if(VarDoor == true)
{
}
if(VarWing == true)
{
}
rightWingModel = new ModelRendererTurbo[0];
if(VarGear == true)
{
}
if(VarDoor == true)
{
}
if(VarWing == true)
{
}
propellerModels = new ModelRendererTurbo[0][0];
yawFlapModel = new ModelRendererTurbo[0];
pitchFlapLeftModel = new ModelRendererTurbo[0];
pitchFlapRightModel = new ModelRendererTurbo[0];
pitchFlapLeftWingModel = new ModelRendererTurbo[0];
pitchFlapRightWingModel = new ModelRendererTurbo[0];
// Stuff not used in this modeltype. Should be defined to avoid errors.
topWingModel = new ModelRendererTurbo[0];
flipAll();
}
// Replace with your propeller function
private ModelRendererTurbo[] makeProp(int i, int j, int k)
{
ModelRendererTurbo[] prop = new ModelRendererTurbo[0];
return prop;
}
}
Now I think what it does is divide the whole model up into various sections, in this case I've only used body parts because the A-144 is not an atmospheric fighter, so it doesn't need flaps, although it origionally did.