Oolite JavaScript Reference: Entity

From Elite Wiki
Revision as of 10:40, 4 August 2007 by Ahruman (talk | contribs) (Added isSubEntity.)

Prototype: Object
Subtypes: Ship, Planet

The Entity class represents an object in the game universe. Ships, Stations, Planets and the Playerare types of entity. Note that these more specific types have additional properties and methods.

Stale References

When an entity dies or is otherwise removed from the game universe (for instance, because player jumped from the system), existing Entity variables referring to the entity become invalid; all their properties become undefined, and their methods do nothing. In addition to the undefined properties, this can be detected with the valid() method.

Universal IDs

Every Entity has an unique universal ID. All Oolite-provided functions which take an Entity as an argument may also be passed an integer representing the Entity’s ID.

Properties

ID

ID [read-only integer]

The universal ID of the entity.

position

position [read-only Vector]

The position of the entity in system co-ordinates.

See Also: setPosition()

orientation

orientation [read-only Quaternion]

The spacial orientation of the entity.

See Also: setOrientation()

heading

heading [read-only Vector]

The heading of the entity. This is equivalent to orientation, but ignoring the axial twist component (roll in the case of a ship).

entity.heading() is equivalent to entity.orientation.forwardVector().

status

status [read-only string]

The current status of the entity (such as “STATUS_IN_FLIGHT” and “STATUS_BEING_SCOOPED”).

scanClass

scanClass [read-only string]

The current scan class of the entity (such as “CLASS_NEUTRAL” and “CLASS_CARGO”).

mass

mass [read-only double]

The mass of the entity. Currently, this is directly proportional to the volume.

owner

owner [read-only Entity]

The entity which owns this one. In the case of a subentity, the entity to which it is attached. In the case of a defense ship, the station it belongs to. In the case of a missile, the ship that launched it. There may be other uses.

energy

energy [read-write double]

The entity’s total energy; ranges from 0 to maxEnergy.

maxEnergy

maxEnergy [read-only double]

The highest permissible value of energy.

isValid

isValid [read-only boolean]

true if the entity is a valid entity variable, false if it is stale.

isShip

isShip [read-only boolean]

true if the entity is a Ship, false otherwise.

isStation

isStation [read-only boolean]

true if the entity is a Station, false otherwise.

isSubEntity

isSubEntity [read-only boolean]

true if the entity is a subentity, false otherwise. A subentity’s owner can be acquired through the owner property.

isPlayer

isPlayer [read-only boolean]

true if the entity is the Player, false otherwise.

isPlanet

isPlanet [read-only boolean]

true if the entity is a Planet, false otherwise.

distanceTravelled

distanceTravelled [read-only double]

The distance the entity has travelled since being spawned, in game metres.

spawnTime

spawnTime [read-only double]

The time at which the entity came into existence.

Methods

setPosition

void setPosition(vectorExpression)

Instantaneously move the entity to the specified position.

setOrientation

void setOrientation(quaternionExpression)

Instantaneously rotate the entity to the specified orientation.

call

call(methodName, ...)

Call a method on the underlying Objective-C class. This is the same approach taken by script actions in plist scripts and AI actions in AI plists. The first argument is the name of the method to call. If the method takes a parameter (in which case it will end with a colon), any number of additional arguments may be specified; these will be concatenated together, separated by spaces, and passed the requested method. If the underlying method returns a value, it will be returned from call(), otherwise the result will be undefined.

Deprecated methods

The following method is deprecated as of Oolite 1.70, and will be removed before the next stable release:

valid

Static methods

Static methods are methods which can be called on Entity, rather than an entity variable. Example: var myEntity = Entity.entityWithID(142);

entityWithID

entityWithID(integer)

Returns the entity with the specified universal ID.