Difference between revisions of "Oolite JavaScript Reference: Oolite"

From Elite Wiki
m (compareVersion: corrected old casing of Log() -> log())
(oolite.resourcePaths)
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
<small>'''Prototype:''' <code>Object</code></small><br />
 
<small>'''Prototype:''' <code>Object</code></small><br />
<small>'''Subtypes:''' none
+
<small>'''Subtypes:''' none</small>
 
 
{{Oolite-class-added|1.70}}
 
  
 
The '''<code>Oolite</code>''' class represents Oolite itself. It allows scripts to access information about the application. There is a global instance of <code>Oolite</code>, named <code>oolite</code>.
 
The '''<code>Oolite</code>''' class represents Oolite itself. It allows scripts to access information about the application. There is a global instance of <code>Oolite</code>, named <code>oolite</code>.
Line 8: Line 6:
 
== Properties ==
 
== Properties ==
 
=== <code>gameSettings</code> ===
 
=== <code>gameSettings</code> ===
{{Oolite-class-added|1.74}}
 
 
  '''gameSettings''' : Object(read-only)
 
  '''gameSettings''' : Object(read-only)
This property allows an OXP to detect various game settings. It has the following read-only properties:
+
This property allows an [[OXP]] to detect various game settings. It has the following read-only properties:
 +
 
 +
autosave : Boolean
 +
gameWindow : Object (see below)
 +
keyConfig : Object (from v1.77.1 onwards, see below)
 +
musicMode : String ("MUSIC_OFF", "MUSIC_ON", or "MUSIC_ITUNES")
 +
procedurallyTexturedPlanets : Boolean
 +
reducedDetailGraphics : Boolean
 +
detailLevel : String ("DETAIL_LEVEL_MINIMUM", "DETAIL_LEVEL_NORMAL", "DETAIL_LEVEL_SHADERS", or "DETAIL_LEVEL_EXTRAS")
 +
speechOn : Boolean
 +
wireframeGraphics : Boolean
 +
 
 +
Before 1.80 there was no <code>detailLevel</code> property but there was a <code>shaderEffectsLevel</code> property.
  
autosave : Boolean (true, false)
+
The gameWindow property contains the following properties:
gameWindow : Object ( see below )
+
  height : Number
  musicMode : String (either 'MUSIC_OFF', 'MUSIC_ON', or 'MUSIC_ITUNES')
+
  width : Number
  procedurallyTexturedPlanets : Boolean (true, false)
+
  fullScreen : Boolean
reducedDetailGraphics : Boolean (true, false)
 
shaderEffectsLevel : String (either 'SHADERS_OFF', 'SHADERS_SIMPLE', 'SHADERS_FULL', or 'SHADERS_NOT_SUPPORTED')
 
speechOn : Boolean (true, false)
 
  wireframeGraphics : Boolean (true, false)
 
  
the gameWindow property contains the following
+
The keyConfig property contains numeric (decimal) KeyCode values of all Keyconfig Entry in oolite.app/Resources/Config/keyconfig.plist file. Keyconfig Entry - KeyCode pairs are documented in ''[[Oolite_Keyboard_Controls]]''.
height
 
width
 
fullScreen
 
  
These proposed properties are not finalised yet, and might be different when 1.74 is released.
+
You can use the standard Javascript String.fromCharCode() method to convert KeyCode to a string:
 +
var button = String.fromCharCode( oolite.gameSettings.keyConfig.key_ident_system );
 +
player.consoleMessage( "Press " + button + " to turn on the ident system." );
  
 +
Things like tab, escape, arrow keys, etc. would need to be handled separately.
  
 
=== <code>jsVersion</code> ===
 
=== <code>jsVersion</code> ===
 
  '''jsVersion''' : Number (read-only)
 
  '''jsVersion''' : Number (read-only)
The version of the JavaScript language implemented by this version of Oolite, multiplied by 100, as an integer. For instance, for [http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7 JavaScript 1.7] (used in Oolite 1.70), this will be equal to <code>170</code>.
+
The version of the JavaScript language implemented by this version of Oolite, multiplied by 100, as an integer. For instance, for [http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7 JavaScript 1.7] (used in Oolite 1.74), this will be equal to <code>170</code>.
  
 
=== <code>jsVersionString</code> ===
 
=== <code>jsVersionString</code> ===
 
  '''jsVersionString''' : String (read-only)
 
  '''jsVersionString''' : String (read-only)
 
The version of the JavaScript language implemented by this version of Oolite, as a string. For instance, for JavaScript 1.7, this will be equal to <code>"1.7"</code>.
 
The version of the JavaScript language implemented by this version of Oolite, as a string. For instance, for JavaScript 1.7, this will be equal to <code>"1.7"</code>.
 +
 +
=== <code>resourcePaths</code> ===
 +
{{oolite-method-added|1.83}}
 +
'''resourcePaths''' : Array (read-only)
 +
Contain full path of loaded config files and expansion packs, including all .oxp folders and .oxz files.
  
 
=== <code>version</code> ===
 
=== <code>version</code> ===
 
  '''version''' : Array (read-only)
 
  '''version''' : Array (read-only)
The version of Oolite, as an array of version components. For instance, for Oolite 1.70 this will be equal to <code>[1, 70]</code>. For a hypothetical version 1.70.1, it will be equal to <code>[1, 70, 1]</code>.
+
The version of Oolite, as an array of version components. For instance, for Oolite 1.74 this is <code>[1, 74]</code>. For version 1.73.4, it is <code>[1, 73, 4]</code>.
  
 
=== <code>versionString</code> ===
 
=== <code>versionString</code> ===
 
  '''versionString''' : String (read-only)
 
  '''versionString''' : String (read-only)
The version of Oolite, as a string. For instance, for Oolite 1.70 this will be equal to <code>"1.70"</code>. For a hypothetical version 1.70.1, it will be equal to <code>"1.70.1"</code>.
+
The version of Oolite, as a string. For instance, for Oolite 1.74 this is <code>"1.74"</code>. For version 1.73.4, it is <code>"1.73.4"</code>.
  
  
Line 60: Line 70:
 
  }
 
  }
  
[[Category:Oolite scripting]]
+
[[Category:Oolite JavaScript Reference]]

Revision as of 10:20, 21 July 2016

Prototype: Object
Subtypes: none

The Oolite class represents Oolite itself. It allows scripts to access information about the application. There is a global instance of Oolite, named oolite.

Properties

gameSettings

gameSettings : Object(read-only)

This property allows an OXP to detect various game settings. It has the following read-only properties:

autosave : Boolean
gameWindow : Object (see below)
keyConfig : Object (from v1.77.1 onwards, see below)
musicMode : String ("MUSIC_OFF", "MUSIC_ON", or "MUSIC_ITUNES")
procedurallyTexturedPlanets : Boolean
reducedDetailGraphics : Boolean
detailLevel : String ("DETAIL_LEVEL_MINIMUM", "DETAIL_LEVEL_NORMAL", "DETAIL_LEVEL_SHADERS", or "DETAIL_LEVEL_EXTRAS")
speechOn : Boolean
wireframeGraphics : Boolean

Before 1.80 there was no detailLevel property but there was a shaderEffectsLevel property.

The gameWindow property contains the following properties:

height : Number
width : Number
fullScreen : Boolean

The keyConfig property contains numeric (decimal) KeyCode values of all Keyconfig Entry in oolite.app/Resources/Config/keyconfig.plist file. Keyconfig Entry - KeyCode pairs are documented in Oolite_Keyboard_Controls.

You can use the standard Javascript String.fromCharCode() method to convert KeyCode to a string:

var button = String.fromCharCode( oolite.gameSettings.keyConfig.key_ident_system );
player.consoleMessage( "Press " + button + " to turn on the ident system." );

Things like tab, escape, arrow keys, etc. would need to be handled separately.

jsVersion

jsVersion : Number (read-only)

The version of the JavaScript language implemented by this version of Oolite, multiplied by 100, as an integer. For instance, for JavaScript 1.7 (used in Oolite 1.74), this will be equal to 170.

jsVersionString

jsVersionString : String (read-only)

The version of the JavaScript language implemented by this version of Oolite, as a string. For instance, for JavaScript 1.7, this will be equal to "1.7".

resourcePaths

This method was added in Oolite test release 1.83.

resourcePaths : Array (read-only)

Contain full path of loaded config files and expansion packs, including all .oxp folders and .oxz files.

version

version : Array (read-only)

The version of Oolite, as an array of version components. For instance, for Oolite 1.74 this is [1, 74]. For version 1.73.4, it is [1, 73, 4].

versionString

versionString : String (read-only)

The version of Oolite, as a string. For instance, for Oolite 1.74 this is "1.74". For version 1.73.4, it is "1.73.4".


Methods

compareVersion

function compareVersion(versionSpec) : Number

Compare the version of Oolite to versionSpec, which may be either a string or an array (in the format given by version). If the current version of Oolite is less than versionSpec, 1 is returned. If the current version of Oolite is greater than versionSpec, -1 is returned. If they are equal, 0 is returned. Example:

if (0 < oolite.compareVersion("1.80"))
{
    // Oolite version is older than 1.80.
    log(this.name, "An old version of Oolite (" + oolite.versionString + ") is in use. Some features of SuperDuperOXP will not be available.")
}
else
{
    // Enable advanced features here.
}