And if, like me, you don't want to use 3D modelling software to workout the locations, an alternative - and probably far more time consuming! - way is to put a different coloured flasher at each of the custom_views view_position locations plus the weapon_position_* locations. I found that helpful in:
- quickly understanding the correct syntax for the shipdata-overrides.plist file;
- fiddling with the preferred turret positions without obscuring the ship (because flashers go off as well as on).
When happy with the positions, convert the flashers to turrets, using your now-developed understanding of view orientation and weapon-facings.
And you'll probably find yourself adding a Scoop View to your custom views while you're in there too.
A Python covered in multi-coloured turrets (there may be the odd syntax error in the following example):
Code: Select all
{
"python-player" =
{
aft_eject_position = "0.0 15.5 -50.0";
scoop_position = "0.0 -15.0 -21.5";
view_position_aft = "0.0 15.0 -49.5";
view_position_forward = "0.0 10.0 31.5";
view_position_port = "-16.0 4.0 15.2";
view_position_starboard = "16.0 4.0 15.2";
weapon_position_aft = "0.0 10 -55.0";
weapon_position_forward = "0.0 0.0 55.0";
weapon_position_port = "-26.67 0.0 4.33";
weapon_position_starboard = "26.67 0.0 4.33";
custom_views =
(
{
view_description = "Scoop View";
view_orientation = "1.0 0.0 0.0 0.0";
view_position = "0.0 -15.0 -21.5";
weapon_facing = "FORWARD";
},
{
view_description = "Rear View - Distant";
view_orientation = "1.0 0.0 0.0 0.0";
view_position = "0.0 30.0 -800.0";
weapon_facing = "FORWARD";
},
{
view_description = "Rear View - VERY Distant";
view_orientation = "1.0 0.0 0.0 0.0";
view_position = "0.0 30.0 -5000.0";
weapon_facing = "FORWARD";
},
{
view_description = "Distant Right View";
view_orientation = "0.7071 0.0 0.7071 0.0";
view_position = "1200.0 30.0 0.0";
weapon_facing = "FORWARD";
},
{
view_description = "VERY Distant Right View";
view_orientation = "0.7071 0.0 0.7071 0.0";
view_position = "5000.0 30.0 0.0";
weapon_facing = "FORWARD";
},
{
view_description = "Front View";
view_orientation = "0.0 0.0 1.0 0.0";
view_position = "0.0 30.0 200.0";
weapon_facing = "FORWARD";
},
{
view_description = "Left View";
view_orientation = "0.7071 0.0 -0.7071 0.0";
view_position = "-200.0 30.0 0.0";
weapon_facing = "FORWARD";
},
{
view_description = "Top View";
view_orientation = "-0.7071 0.7071 0.0 0.0";
view_position = "0.0 230.0 -18.0";
weapon_facing = "FORWARD";
},
{
view_description = "Bottom View";
view_orientation = "0.0 0.0 0.7071 0.7071";
view_position = "0.0 -230.0 -18.0";
weapon_facing = "FORWARD";
}
);
subentities = (
{type = ball_turret;
subentity_key = "SiR-Turret-M"; position = ( 0.0, 21.0, -16.0); orientation = ( 1 , 0 , 0 , 0); fire_rate = 0.25;}, // Magenta, top, forward
{type = ball_turret;
subentity_key = "SiR-Turret-M"; position = ( 0.0, 21.0, -16.0); orientation = ( 0 , 0 , 1 , 0); fire_rate = 0.25;}, // Magenta, top, rear
// {type = ball_turret;
// subentity_key = "SiR-Turret-C"; position = ( 0.0, 0.0, 50.0); orientation = ( 1 , 0 , 0 , 0); fire_rate = 0.25;}, // Cyan, nose
{type = ball_turret;
subentity_key = "SiR-Turret-C"; position = ( -40.0, 0.0, -25.0); orientation = ( 0.7071, 0 , 0.7071, 0); fire_rate = 0.25;}, // Cyan, left
{type = ball_turret;
subentity_key = "SiR-Turret-C"; position = ( 40.0, 0.0, -25.0); orientation = ( 0.7071, 0 , -0.7071, 0); fire_rate = 0.25;}, // Cyan, right
{type = ball_turret;
subentity_key = "SiR-Turret-Y"; position = ( 0.0, -21.0, -21.5); orientation = ( 1 , 0 , 0 , 0); fire_rate = 0.25;}, // Yellow, belly, front
{type = ball_turret;
subentity_key = "SiR-Turret-Y"; position = ( 0.0, -21.0, -21.5); orientation = ( 0 , 0 , 1 , 0); fire_rate = 0.25;}, // Yellow, belly, rear
// repeated, to duplicate them
{type = ball_turret;
subentity_key = "SiR-Turret-W"; position = ( 0.0, 21.0, -16.0); orientation = ( 1 , 0 , 0 , 0); fire_rate = 0.3;}, // Magenta, top, forward
{type = ball_turret;
subentity_key = "SiR-Turret-W"; position = ( 0.0, 21.0, -16.0); orientation = ( 0 , 0 , 1 , 0); fire_rate = 0.3;}, // Magenta, top, rear
// {type = ball_turret;
// subentity_key = "SiR-Turret-C"; position = ( 0.0, 0.0, 50.0); orientation = ( 1 , 0 , 0 , 0); fire_rate = 0.3;}, // Cyan, nose
{type = ball_turret;
subentity_key = "SiR-Turret-W"; position = ( -40.0, 0.0, -25.0); orientation = ( 0.7071, 0 , 0.7071, 0); fire_rate = 0.3;}, // Cyan, left
{type = ball_turret;
subentity_key = "SiR-Turret-W"; position = ( 40.0, 0.0, -25.0); orientation = ( 0.7071, 0 , -0.7071, 0); fire_rate = 0.3;}, // Cyan, right
{type = ball_turret;
subentity_key = "SiR-Turret-W"; position = ( 0.0, -21.0, -21.5); orientation = ( 1 , 0 , 0 , 0); fire_rate = 0.3;}, // Yellow, belly, front
{type = ball_turret;
subentity_key = "SiR-Turret-W"; position = ( 0.0, -21.0, -21.5); orientation = ( 0 , 0 , 1 , 0); fire_rate = 0.3;}, // Yellow, belly, rear
{
type = flasher;
size = 4;
color = redColor;
phase = 0.0;
position = (-40.0, 0.0, -25.0);
},
{type = flasher;
size = 4;
color = greenColor;
phase = 0.0;
position = (40.0, 0.0, -25.0);
}
);
};
"SiR-Turret-C" = {
laser_color = "cyanColor";
model = "oolite-ball-turret.dat";
roles = "ballturret SiR-Turret-C";
setup_actions = ("initialiseTurret");
thrust = 0.5;
weapon_energy = 300;
weapon_range = 30000;
frangible = false;
energy_recharge_rate = 2;
max_energy = 2000;
};
"SiR-Turret-Y" = {
frangible = no;
ai_type = "nullAI.plist";
weapon_range = 30;
laser_color = "yellowColor";
model = "oolite-ball-turret.dat";
roles = "ballturret SiR-Turret-Y";
setup_actions = ("initialiseTurret");
thrust = 0.5;
weapon_energy = 3000;
};
"SiR-Turret-M" = {
frangible = no;
ai_type = "nullAI.plist";
weapon_range = 1;
laser_color = "magentaColor";
model = "oolite-ball-turret.dat";
roles = "ballturret SiR-Turret-M";
setup_actions = ("initialiseTurret");
thrust = 0.5;
energy_recharge_rate = 2;
max_energy = 2000;
weapon_energy = 3000;
};
"SiR-Turret-W" = {
frangible = no;
ai_type = "nullAI.plist";
weapon_range = 1;
laser_color = "whiteColor";
model = "oolite-ball-turret.dat";
roles = "ballturret SiR-Turret-W";
setup_actions = ("initialiseTurret");
thrust = 0.5;
energy_recharge_rate = 2;
max_energy = 2000;
weapon_energy = 3000;
};
}