Difference between revisions of "Oolite JavaScript Reference: Shipdata scripts"

From Elite Wiki
m (Moving Oolite JS reference into a *correctly-named* subcategory of Oolite scripting.)
(Duplicate page, redirect.)
 
Line 1: Line 1:
−
=Oolite JavaScript Reference: Shipdata scripts=
+
#REDIRECT [[Oolite JavaScript Reference: Ship scripts]]
−  
−
The shipdata.plist file can reference a JavaScipt script 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 JavaScript Reference]]
 

Latest revision as of 16:37, 20 June 2010