Difference between revisions of "Oolite JavaScript Reference: Ship scripts"
From Elite Wiki
(Move to Ship scripts) |
|||
| 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]] |
||