Difference between revisions of "Oolite JavaScript OM Specification"

From Elite Wiki
m
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
'''This document is entirely outdated and kept only for historical purposes. For actual Oolite JavaScript interfaces, see [[:Category:Oolite JavaScript Reference|Oolite JavaScript Reference]].
 +
 
Use this page to define the object model exposed by Oolite to the JavaScript interpreter.
 
Use this page to define the object model exposed by Oolite to the JavaScript interpreter.
  
<tt><pre>
+
class Commodity
class Vector3
+
{
{
+
readonly string name;
float x, z, y;
+
readonly integer unitofMass; // grams, kgs, tons
}
+
}
 
+
class Quaternion
+
class Consignment
{
+
{
float x, y, z, w;
+
Commodity commodity;
}
+
float quantity;
 
+
}
class Commodity
+
{
+
class Entity
readonly string Name;
+
{
readonly integer unitofMass; // grams, kgs, tons
+
readonly integer ID;
}
+
readonly Entity[] subentities;
 
+
Vector3 position;
class Consignment
+
Vector3 velocity;
{
+
Quaternion rotation;
Commodity commodity;
+
// some property to set change in rotation per second?
float quantity;
+
}
+
static Entity getEntityWithID(integer ID);
 
+
class Entity
+
void setAI(string AIName);
{
+
void pushAI(string AIName);
readonly integer ID;
+
void popAI();
readonly Entity[] subentities;
+
}
Vector3 position;
+
Vector3 velocity;
+
// Note all methods which take an Entity as an argument can also accept an entity ID instead.
Quaternion rotation;
+
class <del>Vessel</del><ins>Ship</ins>
// some property to set change in rotation per second?
+
{
 
+
float foreShieldStrength;
static Entity getEntityWithID(integer ID);
+
float aftShieldStrength;
+
float energy;
void setAI(string AIName);
+
void pushAI(string AIName);
+
float foreShieldMaxStrength;
void popAI();
+
float aftShieldMaxStrength;
}
+
float maxEnergy;
 
+
// Note all methods which take an Entity as an argument can also accept an entity ID instead.
+
// something measure of max and current hull integrity?
class Vessel
+
{
+
// need to represent docking ports somehow
float foreShieldStrength;
+
float aftShieldStrength;
+
float cabinTemperature;
float energy;
+
integer maxCargoCapacity;
 
+
integer freeCargoCapacity;
float foreShieldMaxStrength;
+
float aftShieldMaxStrength;
+
Consignment[] cargo;
float maxEnergy;
+
 
+
Entity currentTarget;
// something measure of max and current hull integrity?
+
Entity[] escorts;
 
+
// need to represent docking ports somehow
+
string roleName;
 
+
string commanderName;
float cabinTemperature;
+
integer maxCargoCapacity;
+
// short form of getScanClassRelativeTo(0) - ie the player
integer freeCargoCapacity;
+
integer getScanClass();
 
+
integer getScanClassRelativeTo(Entity other);
Consignment[] cargo;
+
 
+
float getDistanceFrom(Entity other);
Entity currentTarget;
+
void noto(Vector3 destination);
Entity[] escorts;
+
void notoEntity(Entity other, integer minimumDistance);
 
+
string roleName;
+
// These methods return the ID of the launched entity, or -1 on error or if the target vessel cannot
string commanderName;
+
// launch other vessels.
+
integer launchVesselWithRole(string role);
// short form of getScanClassRelativeTo(0) - ie the player
+
integer launchVesselWithName(string name);
integer getScanClass();
+
}
integer getScanClassRelativeTo(Entity other);
 
 
 
float getDistanceFrom(Entity other);
 
void Goto(Vector3 destination);
 
void GotoEntity(Entity other, integer minimumDistance);
 
  
// These methods return the ID of the launched entity, or -1 on error or if the target vessel cannot
+
[[Category:Oolite scripting]]
// launch other vessels.
 
integer launchVesselWithRole(string role);
 
integer launchVesselWithName(string name);
 
}
 
</pre></tt>
 

Latest revision as of 02:19, 22 January 2016

This document is entirely outdated and kept only for historical purposes. For actual Oolite JavaScript interfaces, see Oolite JavaScript Reference.

Use this page to define the object model exposed by Oolite to the JavaScript interpreter.

class Commodity
{
	readonly string name;
	readonly integer unitofMass; // grams, kgs, tons
}

class Consignment
{
	Commodity commodity;
	float quantity;
}

class Entity
{
	readonly integer ID;
	readonly Entity[] subentities;
	Vector3 position;
	Vector3 velocity;
	Quaternion rotation;
	// some property to set change in rotation per second?

	static Entity getEntityWithID(integer ID);
	
	void setAI(string AIName);
	void pushAI(string AIName);
	void popAI();
}

// Note all methods which take an Entity as an argument can also accept an entity ID instead.
class VesselShip
{
	float foreShieldStrength;
	float aftShieldStrength;
	float energy;

	float foreShieldMaxStrength;
	float aftShieldMaxStrength;
	float maxEnergy;

	// something measure of max and current hull integrity?

	// need to represent docking ports somehow

	float cabinTemperature;
	integer maxCargoCapacity;
	integer freeCargoCapacity;

	Consignment[] cargo;

	Entity currentTarget;
	Entity[] escorts;

	string roleName;
	string commanderName;
	
	// short form of getScanClassRelativeTo(0) - ie the player
	integer getScanClass();
	integer getScanClassRelativeTo(Entity other);

	float getDistanceFrom(Entity other);
	void noto(Vector3 destination);
	void notoEntity(Entity other, integer minimumDistance);

	// These methods return the ID of the launched entity, or -1 on error or if the target vessel cannot
	// launch other vessels.
	integer launchVesselWithRole(string role);
	integer launchVesselWithName(string name);
}