Difference between revisions of "Oolite JavaScript Reference: Global"
(→Properties) |
(→missionVariables: Description and usage guidelines for mission variables.) |
||
Line 24: | Line 24: | ||
=== <code>missionVariables</code> === | === <code>missionVariables</code> === | ||
'''missionVariables''' : Object(read-only) | '''missionVariables''' : Object(read-only) | ||
− | This property | + | The <code>missionVariables</code> object stores values that are stored in saved games. This is the main way for scripts to store information permanently. |
+ | |||
+ | Whenever a value is assigned to a property of <code>missionVariables</code>, it is converted to a string object and tracked with the player. When the value is read, it will be converted to a number if possible, otherwise returned as a string. Example: | ||
+ | missionVariables.exampleVar = 42; | ||
+ | let x = missionVariables.exampleVar; // x is now the number 42 | ||
+ | |||
+ | Mission variables can also be used in legacy scripts and in [[descriptions.plist]] string expansions, by prefixing the name with “mission_”. Example: | ||
+ | expandDescription("My variable is [mission_exampleVar].") | ||
+ | |||
+ | Setting and retrieving mission variables has a small but non-trivial overhead. If a function needs to use a mission variable value several times, it is strongly recommended that it be copied into a local variable and, if necessary, stored back once. Example: | ||
+ | let x = missionVariables.exampleVar; | ||
+ | if (x < 3) x = processSmallValue(x); | ||
+ | else x = processBigValue(x); | ||
+ | missionVariables.exampleVar = x; | ||
+ | |||
+ | Mission variable names may not begin with an underscore (“_”). Unassigned mission variables are always <code>null</code>. | ||
=== <code>oolite</code> === | === <code>oolite</code> === |
Revision as of 14:12, 21 July 2010
The Global
environment includes all Oolite objects and methods accessible by all scripts at all times.
Contents
Properties
clock
clock : Object(read-only)
This property allows an OXP to access the game clock's properties and methods.
galaxyNumber
galaxyNumber : Number(read-only)
Returns the number ot the galaxy the player is in.
guiScreen
guiScreen : String(read-only)
Returns the screen the player is looking at. If in flight, it's set to "GUI_SCREEN_MAIN".
manifest
manifest : Object(read-only)
This property allows an OXP to directly access the player ship's manifest properties.
mission
mission : Object(read-only)
This property allows an OXP to access misson methods.
missionVariables
missionVariables : Object(read-only)
The missionVariables
object stores values that are stored in saved games. This is the main way for scripts to store information permanently.
Whenever a value is assigned to a property of missionVariables
, it is converted to a string object and tracked with the player. When the value is read, it will be converted to a number if possible, otherwise returned as a string. Example:
missionVariables.exampleVar = 42; let x = missionVariables.exampleVar; // x is now the number 42
Mission variables can also be used in legacy scripts and in descriptions.plist string expansions, by prefixing the name with “mission_”. Example:
expandDescription("My variable is [mission_exampleVar].")
Setting and retrieving mission variables has a small but non-trivial overhead. If a function needs to use a mission variable value several times, it is strongly recommended that it be copied into a local variable and, if necessary, stored back once. Example:
let x = missionVariables.exampleVar; if (x < 3) x = processSmallValue(x); else x = processBigValue(x); missionVariables.exampleVar = x;
Mission variable names may not begin with an underscore (“_”). Unassigned mission variables are always null
.
oolite
oolite : Object(read-only)
This property allows an OXP to access oolite's properties and methods.
player
player : Object(read-only)
This property allows an OXP to access the player object's properties and methods.
system
system : Object(read-only)
This property allows an OXP to access the current system's properties and methods.
timeAccelerationFactor
timeAccelerationFactor : Number(read/write)
Also known as TAF. Will change the ratio between game real time and actual real time (default is 1). The accepted range is between 0.0625 (1/16) and 16. Attempting to set numbers outside this range will reset the TAF to 1.
worldScripts
worldScripts : Object(read-only)
This property allows an OXP to access all world scripts, their properties and functions.
Example:
log(worldScripts['oolite-nova'].version);
Methods
displayNameForCommodity
function displayNameForCommodity(commodityName : String)
Returns the display name corresponding to the specified commodity. Useful in conjunction with localisation OXPs, or expansions that rename commodities depending on which station / system the player is at.
expandDescription
function expandDescription(description : String [, locals : Object (Dictionary)]) : String
Expands a string, substituting special tokens and any key inside square brackets with the substitution rules for Communications. When local key/value pairs are provided, they take precedence over any other values. (buggy at the time of writing, fixed for 1.74.2 and later versions.)
Example:
expandDescription('My ball is [my_color].', { 'my_color': 'red' });
expandMissionText
function expandMissionText(textKey: String [, locals : Object (Dictionary)]) : String
Returns an expanded mission text, substituting any tokens and keys inside square brackets inside the original missiontext.plist value with its corresponding expanded string. If local key/value pairs are provided, they take precedence over any other values. (buggy at the time of writing, fixed for 1.74.2 and later versions.)
Example:
expandMissionText('oolite_trumble_title');
log
function log([messageClass : String ,] message : String)
Writes a message to Oolite's log. The optional messageClass can be used to specify which type of message is written to the log.
Example:
log('myOXP.init','MyOXP initialised and ready!');
randomInhabitantsDescription
function randomInhabitantsDescription([plural : boolean])
Returns a random capitalised word, suitable to describe one sentient being, or - if using the optional plural argument - a group of sentients.
Example:
player.consoleMessage("You'll meet a " + randomInhabitantsDescription() + ". She'll be with a group of " + randomInhabitantsDescription(true) +'.');
randomName
function randomName()
Returns a random capitalised word, suitable for use as name, or indeed surname.
Example:
player.consoleMessage(randomName() + ' ' + randomName() +' rules this system with an iron fist.');
setScreenBackground
function setScreenBackground(image : String)
Temporary override that sets the background of the current gui screen to the specified image. Override is lost after the player switches screens.
Example:
setScreenBackground('oolite-nova-system.png');
setScreenOverlay
function setScreenOverlay(image : String)
Temporary override that sets the background of the current gui screen to the specified image. Override is lost after the player switches screens.
Example:
setScreenOverlay('trumblebox.png');