|
|
| Line 1: |
Line 1: |
| − | =Ship scripts=
| |
| | | | |
| − | Ship scripts can be referenced referenced from shipdata.plist to perform behaviours that are executed on the creation or the disappearance of the ship.
| |
| − |
| |
| − | {{Oolite-method-added|1.71}}
| |
| − |
| |
| − | ==Assigning a script to shipdata.plist==
| |
| − |
| |
| − | The shipdata.plist file may be in one of two different formats: OpenStep or XML.
| |
| − |
| |
| − | A script is assigned to an OpenStep shipdata.plist file in the following manner:
| |
| − |
| |
| − | "my_custom_adder" = {
| |
| − | name = "Freaky Turbo Trader";
| |
| − | model = "custom_adder.dat";
| |
| − | like_ship = "adder";
| |
| − | roles = "trader my_freaky_adder";
| |
| − | script = "myFreakyAdderTrader.js";
| |
| − | };
| |
| − |
| |
| − | A script is assigned to an XML shipdata.plist file in the following manner:
| |
| − |
| |
| − | <dict>
| |
| − | <key>my_custom_adder</key>
| |
| − | <dict>
| |
| − | <key>name</key>
| |
| − | <string>Freaky Turbo Trader</string>
| |
| − | <key>model</key>
| |
| − | <string>custom_adder.dat</string>
| |
| − | <key>like_ship</key>
| |
| − | <string>adder</string>
| |
| − | <key>roles</key>
| |
| − | <string>trader my_freaky_adder</string>
| |
| − | <key>script</key>
| |
| − | <string>myFreakyAdderTrader.js</string>
| |
| − | </dict>
| |
| − | </dict>
| |
| − |
| |
| − | JavaScript scripts takes precedence over all plist actions.
| |
| − |
| |
| − | ==JavaScript actions==
| |
| − |
| |
| − | The following plist actions translate into javaScript in the following way:
| |
| − |
| |
| − | * setup_actions - are performed in JavaScript when the script is loaded
| |
| − | * launch_actions - is handled as the [[Oolite JavaScript Reference: world script event handlers#shipSpawned|shipSpawned]] event
| |
| − | * script_actions - is handled as the [[Oolite JavaScript Reference: world script event handlers#shipDockedWithStation|shipDockedWithStation]] and [[Oolite JavaScript Reference: world script event handlers#shipWasScooped|shipWasScooped]] event
| |
| − | * death_actions - is handled as the [[Oolite JavaScript Reference: world script event handlers#shipDied|shipDied]] event
| |
| − |
| |
| − | Any other [[Oolite JavaScript Reference: world script event handlers|world script events]] can be applied to the ship as well.
| |
| − |
| |
| − | ==JavaScript example for shipdata.plist scripts==
| |
| − |
| |
| − | Here is an example javaScript file that demonstrates where the shipdata.plist events occur
| |
| − |
| |
| − | this.name = "demo";
| |
| − | this.author = "Paul Wilkins";
| |
| − | this.copyright = "© 2009 Paul Wilkins";
| |
| − | this.description = "Empty script structure for shipdata.plist scripting";
| |
| − | this.version = "0.0";
| |
| − |
| |
| − | // setup_actions occur here
| |
| − |
| |
| − | // launch_actions
| |
| − | this.shipSpawned = function () {
| |
| − | // Put here your code for when a ship is created
| |
| − | };
| |
| − |
| |
| − | // script_actions
| |
| − | this.shipDockedWithStation = function () {
| |
| − | // Put here your code for when a ship docks with a station
| |
| − | };
| |
| − |
| |
| − | // script_actions
| |
| − | this.shipWasScooped = function () {
| |
| − | // Put here your code for when a ship is scooped
| |
| − | };
| |
| − |
| |
| − | // death_actions
| |
| − | this.shipDied = function () {
| |
| − | // Put here your code for when a ship dies
| |
| − | };
| |
| − |
| |
| − | See [[Oolite JavaScript Reference: Script]] for further scripting details.
| |
| − |
| |
| − | [[Category:Oolite scripting]]
| |