Difference between revisions of "Oolite JavaScript OM Specification"
From Elite Wiki
(Changed properties/instance variables to be consistently lowercase.) |
(Removed already-implemented classes Vector and Quaternion, changed categories, expanded note.) |
||
Line 1: | Line 1: | ||
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. | ||
− | '''Note:''' this is a work in progress. It should not be taken as a final specification. | + | '''Note:''' this is a work in progress. It should not be taken as a final specification. Much of the functionality has been redesigned already. See [[:Category:Oolite scripting]] for current documentation and [[:Category:Oolite scripting drafts]] for in-progress documentation. |
− | + | class Commodity | |
− | class Vector3 | + | { |
− | { | + | 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 <del>Vessel</del><ins>Ship</ins> | ||
+ | { | ||
+ | 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); | ||
+ | } | ||
− | + | [[Category:Oolite scripting drafts]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [[Category:Oolite |
Revision as of 14:42, 3 August 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. Much of the functionality has been redesigned already. See Category:Oolite scripting for current documentation and Category:Oolite scripting drafts for in-progress documentation.
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. classVesselShip { 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); }