Difference between revisions of "Oolite JavaScript OM Specification"

From Elite Wiki
m (Added Category:Oolite Development and WIP note.)
(Changed properties/instance variables to be consistently lowercase.)
Line 16: Line 16:
 
class Commodity
 
class Commodity
 
{
 
{
readonly string Name;
+
readonly string name;
 
readonly integer unitofMass; // grams, kgs, tons
 
readonly integer unitofMass; // grams, kgs, tons
 
}
 
}
Line 74: Line 74:
   
 
float getDistanceFrom(Entity other);
 
float getDistanceFrom(Entity other);
void Goto(Vector3 destination);
+
void noto(Vector3 destination);
void GotoEntity(Entity other, integer minimumDistance);
+
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
 
// These methods return the ID of the launched entity, or -1 on error or if the target vessel cannot

Revision as of 20:27, 31 March 2007

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

Note: this is a work in progress. It should not be taken as a final specification.

class Vector3
{
	float x, z, y;
}

class Quaternion
{
	float x, y, z, w;
}

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 Vessel
{
	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);
}