| | # CObject Overview |
| |
|
| | CObjects are objects, accessible to Lua, which have a counterpart in the C++ side of the engine. |
| |
|
| | They do not have allocated memory in the Lua side, and therefore cannot store any information. |
| |
|
| | Reference: [CObject](LuaCObject.md.html) |
| |
|
| | # Parent classes |
| |
|
| | * ColorizableObject |
| | * FXObject |
| | * MapObject |
| | * [PropertyObject](LuaClasses.md.html#propertyobject) |
| |
|
| | # CObject reference |
| |
|
| |
|
| | ## CObject:Attach |
| |
|
| | Attaches one object to another at a specified spot. |
| |
|
| |
|
| | void **CObject:Attach**(object child, int spot) |
| | object child |
| | : object to be attached |
| |
|
| | int spot |
| | : spot numeric index |
| |
|
| |
|
| | ## CObject:ChangeEntity |
| |
|
| | Changes the object's entity. |
| |
|
| |
|
| | void **CObject:ChangeEntity**(string entity) |
| | string entity |
| | : the entity name |
| |
|
| |
|
| | ## CObject:ClearEnumFlags |
| |
|
| | Clear the object's enumeration flags. |
| |
|
| |
|
| | void **CObject:ClearEnumFlags**(int mask) |
| | int mask |
| | : mask containing the flags to be cleared. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | obj:ClearEnumFlags(const.efVisible) |
| | -- the object is now invisible |
| | ~~~~ |
| |
|
| | ## CObject:ClearGameFlags |
| |
|
| | Clear the object's game flags. |
| |
|
| |
|
| | void **CObject:ClearGameFlags**(int mask) |
| | int mask |
| | : mask containing the flags to be cleared. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | obj:ClearGameFlags(const.gofAlwaysRenderable) |
| | -- the object wont be drawn when outside the camera view |
| | ~~~~ |
| |
|
| | ## CObject:CountAttaches |
| |
|
| | Counts object attaches based on certain criteria |
| |
|
| |
|
| | int **CObject:CountAttaches**([string classes], [function filter], ...) |
| | string classes |
| | : an optional comma separated list of classes, to filter the attached objects. If not provided, all attaches shall be processed. |
| |
|
| | function filter |
| | : an optional function to test if an attach is to be counted. Any parameter provided after the callback, would be passed to it when called. |
| |
|
| | _returns_ int |
| | : the count of matched attaches. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | local count = obj:CountAttaches("foo, bar", function(obj) return not obj:GetVisible() end) |
| | -- 'count' equals the number of the invisible attaches form the classes "foo" and "bar" |
| | ~~~~ |
| |
|
| | ## CObject:DestroyAttaches |
| |
|
| | Destroys object attaches based on certain criteria |
| |
|
| |
|
| | int **CObject:DestroyAttaches**([string classes], [function filter], ...) |
| | string classes |
| | : an optional comma separated list of classes, to filter the attached objects. If not provided, all attaches shall be processed. |
| |
|
| | function filter |
| | : an optional function to test if an attach is to be deleted. Any parameter provided after the callback, would be passed to it when called. |
| |
|
| | _returns_ int |
| | : the count of matched attaches. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | obj:DestroyAttaches("foo, bar", function(obj) return not obj:GetVisible() end) |
| | -- all invisible attaches form the classes "foo" and "bar" are now destroyed |
| | ~~~~ |
| |
|
| | ## CObject:Detach |
| |
|
| | Detach an attached object from its parent. |
| |
|
| |
|
| | void **CObject:Detach**() |
| |
|
| | ## CObject:DetachFromMap |
| |
|
| | Removes the object from the map. The object's position wont be valid any more. |
| |
|
| |
|
| | void **CObject:DetachFromMap**() |
| |
|
| | ## CObject:ForEachAttach |
| |
|
| | Calls a function callback for each attached object from a list of classes |
| |
|
| |
|
| | int **CObject:ForEachAttach**([string classes], function callback, ...) |
| | string classes |
| | : an optional comma separated list of classes, to filter the attached objects. If not provided, all attaches shall be processed. |
| |
|
| | function callback |
| | : a function to call for each attach. Any parameter provided after the callback, would be passed to it when called. |
| |
|
| | _returns_ int |
| | : the count of matched attaches. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | obj:ForEachAttach("foo, bar", function(obj, visible) obj:SetVisible(visible) end, false) |
| | -- all attaches form the classes "foo" and "bar" are now invisible |
| | ~~~~ |
| |
|
| | ## CObject:GetAccelerationAndTime |
| |
|
| | Computes the linear acceleration and the time needed to reach a target position with a given final speed. |
| |
|
| |
|
| | int, int **CObject:GetAccelerationAndTime**(point pos, int speed, [int speed0]) |
| |
|
| | int, int **CObject:GetAccelerationAndTime**(int x, int y, int z, int speed, [int speed0]) |
| | point pos |
| | : the target position as a point |
| |
|
| | int x, y, z |
| | : the target position as coordinates |
| |
|
| | int speed |
| | : the desired final speed |
| |
|
| | int speed0 |
| | : the initial speed (optional, the current speed by default) |
| |
|
| | _returns_ int, int |
| | : the acceleration and the time |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | local accel, time = obj:GetAccelerationAndTime(pos, 0) |
| | obj:SetAcceleration(accel) |
| | obj:SetPos(pos, time) |
| | -- the object will slowly stop at the target position |
| | ~~~~ |
| |
|
| | ## CObject:GetAngle |
| |
|
| | Returns the final rotation angle of an object. |
| |
|
| | The visual angle is different from the final angle, only when the object is still rotating. |
| |
|
| |
|
| | int **CObject:GetAngle**() |
| | _returns_ int |
| | : final rotation angle. |
| |
|
| |
|
| | ## CObject:GetAttaches |
| |
|
| | Collects the attaches from given class(es). If no class is specified, then all attached objects shall be collected. |
| |
|
| |
|
| | table **CObject:GetAttaches**([string class]) |
| |
|
| | table **CObject:GetAttaches**([table classes]) |
| | string class |
| | : an optional class name, to filter the attached objects. |
| |
|
| | table classes |
| | : an optional class list, to filter the attached objects. |
| |
|
| | _returns_ table |
| | : a list containing the matched attaches, or nil if none has been found. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | local attaches = obj:GetAttaches("foo") |
| | -- 'attaches' containts all attached objects form the class "foo" |
| | ~~~~ |
| |
|
| | ## CObject:GetAxis |
| |
|
| | Returns the rotation axis of an object. |
| |
|
| |
|
| | point **CObject:GetAxis**() |
| | _returns_ point |
| | : rotation axis vector as point |
| |
|
| |
|
| | ## CObject:GetClassFlags |
| |
|
| | Returns the object's class flags. All object flags are represented as a single bit (0 or 1). |
| |
|
| |
|
| | int **CObject:GetClassFlags**([int mask]) |
| | int mask |
| | : optional flag mask, used to check if the object contains specific flags. |
| |
|
| | _returns_ int |
| | : the object's enumeration flags, masked with the mask if provided. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | if obj:GetClassFlags(const.cfDecal) ~= 0 then |
| | -- the object is a decal |
| | end |
| | ~~~~ |
| |
|
| | ## CObject:GetDist |
| |
|
| | Computes the distance from the object's final position to another position. |
| |
|
| |
|
| | int **CObject:GetDist**(object obj) |
| |
|
| | int **CObject:GetDist**(box bx) |
| |
|
| | int **CObject:GetDist**(point pos) |
| | object obj |
| | : check distance to an object |
| |
|
| | box bx |
| | : check distance to a box |
| |
|
| | point pos |
| | : check distance to a position |
| |
|
| | _returns_ int |
| | : the computed distance |
| |
|
| |
|
| | ## CObject:GetEntityBBox |
| |
|
| | Returns the bounding box of the current state of the object with mirroring applied, but without applying object's position, scale and orientation. |
| |
|
| |
|
| | box **CObject:GetEntityBBox**() |
| | _returns_ box |
| | : the bounding box of the entity. |
| |
|
| |
|
| | ## CObject:GetEnumFlags |
| |
|
| | Returns the object's enumeration flags. All object flags are represented as a single bit (0 or 1). |
| |
|
| |
|
| | int **CObject:GetEnumFlags**([int mask]) |
| | int mask |
| | : optional flag mask, used to check if the object contains specific flags. |
| |
|
| | _returns_ int |
| | : the object's enumeration flags, masked with the mask if provided. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | if obj:GetEnumFlags(const.efVisible) ~= 0 then |
| | -- the object is visible |
| | end |
| | ~~~~ |
| |
|
| | ## CObject:GetFreeSpot |
| |
|
| | Returns an index of a spot from a given type with no attaches |
| |
|
| |
|
| | int **CObject:GetFreeSpot**(string spot) |
| | string spot |
| | : spot type name |
| |
|
| | _returns_ int |
| | : the spot index, -1 if not found. |
| |
|
| |
|
| | ## CObject:GetGameFlags |
| |
|
| | Returns the object's game flags. All object flags are represented as a single bit (0 or 1). |
| |
|
| |
|
| | int **CObject:GetGameFlags**([int mask]) |
| | int mask |
| | : optional flag mask, used to check if the object contains specific flags. |
| |
|
| | _returns_ int |
| | : the object's game flags, masked with the mask if provided. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | if obj:GetGameFlags(const.gofAlwaysRenderable) ~= 0 then |
| | -- the object is drawn even when outside the camera view |
| | end |
| | ~~~~ |
| |
|
| | ## CObject:GetMaxRadius |
| |
|
| | Returns the maximim object's entity radius in any of its states (animations). |
| |
|
| |
|
| | int **CObject:GetMaxRadius**() |
| | _returns_ int |
| | : object's max radius. |
| |
|
| |
|
| | ## CObject:GetNearestSpot |
| |
|
| | Returns the index of the nearest spot to a specified location |
| |
|
| |
|
| | int **CObject:GetNearestSpot**(string spot, point pos) |
| |
|
| | int **CObject:GetNearestSpot**(string spot, object obj) |
| | string spot |
| | : spot type name |
| |
|
| | point pos |
| | : location as point |
| |
|
| | object obj |
| | : location as object |
| |
|
| | _returns_ int |
| | : the spot index, -1 if not found. |
| |
|
| |
|
| | ## CObject:GetNumStates |
| |
|
| | Returns the number of valid states (animations) for current object. |
| |
|
| |
|
| | int **CObject:GetNumStates**() |
| | _returns_ int |
| | : number of states |
| |
|
| |
|
| | ## CObject:GetObjectBBox |
| |
|
| | Returns the object's bounding box in its current state (animation). |
| |
|
| |
|
| | box **CObject:GetObjectBBox**() |
| | _returns_ box |
| | : the object's bounding box. |
| |
|
| |
|
| | ## CObject:GetParent |
| |
|
| | Returns the parent object (if the current object is attached). |
| |
|
| |
|
| | object **CObject:GetParent**() |
| | _returns_ object |
| | : the parent object if any, nil otherwise |
| |
|
| |
|
| | ## CObject:GetPos |
| |
|
| | Returns the final map position of an object . |
| |
|
| | The visual position is different from the final position, only when the object is still moving. |
| |
|
| |
|
| | point **CObject:GetPos**() |
| | _returns_ point |
| | : final map position. |
| |
|
| |
|
| | ## CObject:GetPosXYZ |
| |
|
| | Same as GetPos, but returns the coordinates of the position. |
| |
|
| |
|
| | int, int, int **CObject:GetPosXYZ**() |
| | _returns_ int, int, int |
| | : coordinates of the final map position. |
| |
|
| |
|
| | ## CObject:GetRadius |
| |
|
| | Returns the object's entity radius in its current state (animation). For objects without entity, the radius can be specified as a member 'radius' in the class definition. |
| |
|
| |
|
| | int **CObject:GetRadius**() |
| | _returns_ int |
| | : object's radius. |
| |
|
| |
|
| | ## CObject:GetRandomSpot |
| |
|
| | Returns the index of a random spot from a given type |
| |
|
| |
|
| | int **CObject:GetRandomSpot**(string spot) |
| | string spot |
| | : spot type name |
| |
|
| | _returns_ int |
| | : the spot index, -1 if not found. |
| |
|
| |
|
| | ## CObject:GetRelativePoint |
| |
|
| | Computes the world position of a point relative to an object. |
| |
|
| |
|
| | point **CObject:GetRelativePoint**(point pos) |
| |
|
| | point **CObject:GetRelativePoint**(int x, int y, int z) |
| | point pos |
| | : position relative to the object as a point. |
| |
|
| | int x, y, z |
| | : position relative to the object as coordinates. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | local pos = obj:GetRelativePoint(0, 0, 10*guim) |
| | -- 'pos' is located 10 meters above the object |
| | ~~~~ |
| |
|
| | ## CObject:GetRollPitchYaw |
| |
|
| | Returns the object's orientation as roll, pitch and yaw angles. |
| |
|
| |
|
| | int **CObject:GetRollPitchYaw**([int time_delta]) |
| | int time_delta |
| | : optional time interval in the future, thus enabling to get a future orientation. |
| |
|
| | _returns_ int, int, int |
| | : the object's roll, pitch and yaw angle. |
| |
|
| |
|
| | ## CObject:GetScale |
| |
|
| | Returns the object's scale (disregarding parent hierarchy). |
| |
|
| |
|
| | int **CObject:GetScale**() |
| | _returns_ int |
| | : the object's scale in percent (100% is the default). |
| |
|
| |
|
| | ## CObject:GetSpotAxisAngle |
| |
|
| | Returns the rotation of the specified spot around it's rotation axis. |
| |
|
| |
|
| | angle axis **CObject:GetSpotAxisAngle**(int spot) |
| | int spot |
| | : spot index. |
| |
|
| | _returns_ point axis |
| | : the spot rotation axis vector as point. |
| |
|
| | _returns_ int angle |
| | : the spot rotation. |
| |
|
| |
|
| | ## CObject:GetSpotBeginIndex |
| |
|
| | Returns the first spot index from a given spot type for an object |
| |
|
| |
|
| | int, int **CObject:GetSpotBeginIndex**(string spot) |
| | string spot |
| | : spot name |
| |
|
| | _returns_ int |
| | : the spot index, -1 if not found. |
| |
|
| |
|
| | ## CObject:GetSpotEndIndex |
| |
|
| | Returns the last spot index from a given spot type for an object |
| |
|
| |
|
| | int, int **CObject:GetSpotEndIndex**(string spot) |
| | string spot |
| | : spot name |
| |
|
| | _returns_ int |
| | : the spot index, -1 if not found. |
| |
|
| |
|
| | ## CObject:GetSpotPos |
| |
|
| | Returns the final world position of the specified spot. |
| |
|
| |
|
| | point **CObject:GetSpotPos**(int spot) |
| | int spot |
| | : spot index. |
| |
|
| | _returns_ point |
| | : the spot position. |
| |
|
| |
|
| | ## CObject:GetSpotPosXYZ |
| |
|
| | Same as GetSpotPos but the returned values are the position's coordinates. |
| |
|
| |
|
| | int, int, int **CObject:GetSpotPosXYZ**(int spot) |
| | int spot |
| | : spot index. |
| |
|
| | _returns_ int, int, int |
| | : the coordinates of the spot position. |
| |
|
| |
|
| | ## CObject:GetSpotRange |
| |
|
| | Returns the first and the last spot indexes from a given spot type for an object |
| |
|
| |
|
| | int, int **CObject:GetSpotRange**(string spot) |
| | string spot |
| | : spot name |
| |
|
| | _returns_ int, int |
| | : the spot indexes, -1 if not found. |
| |
|
| |
|
| | ## CObject:GetState |
| |
|
| | Gets the object's current state index (animation index). |
| |
|
| |
|
| | int **CObject:GetState**() |
| | _returns_ int |
| | : the state index |
| |
|
| |
|
| | ## CObject:GetVisualAngle |
| |
|
| | Returns the visual rotation angle of an object. |
| |
|
| | The visual angle is different from the final angle, only when the object is still rotating. |
| |
|
| |
|
| | int **CObject:GetVisualAngle**() |
| | _returns_ int |
| | : visual rotation angle. |
| |
|
| |
|
| | ## CObject:GetVisualDist |
| |
|
| | Computes the distance from the object's visual position to another position. |
| |
|
| |
|
| | int **CObject:GetVisualDist**(object obj) |
| |
|
| | int **CObject:GetVisualDist**(box bx) |
| |
|
| | int **CObject:GetVisualDist**(point pos) |
| | object obj |
| | : check distance to an object |
| |
|
| | box bx |
| | : check distance to a box |
| |
|
| | point pos |
| | : check distance to a position |
| |
|
| | _returns_ int |
| | : the computed distance |
| |
|
| |
|
| | ## CObject:GetVisualPos |
| |
|
| | Returns the visual position of an object. |
| |
|
| | The visual position is different from the final position, only when the objects is still moving. |
| |
|
| |
|
| | point **CObject:GetVisualPos**([int time_delta = 0], [bool extrapolate = false]) |
| | int time_delta |
| | : optional parameter to specify a different moment than now. |
| |
|
| | bool extrapolate |
| | : if true and if the provided time exceeds the movement time, avoids the clamping. |
| |
|
| | _returns_ point |
| | : visual position. |
| |
|
| |
|
| | ## CObject:GetVisualPos2D |
| |
|
| | Same as GetVisualPos, but the returned position is only two dimensional. |
| |
|
| |
|
| | point **CObject:GetVisualPos2D**([int time], [bool extrapolate = false]) |
| | _returns_ point |
| | : visual 2D position. |
| |
|
| |
|
| | ## CObject:GetVisualPosXYZ |
| |
|
| | Same as GetVisualPos, but the returned values are the object coordinates. |
| |
|
| |
|
| | int, int, int **CObject:GetVisualPosXYZ**([int time_delta = 0], [bool extrapolate = false]) |
| | _returns_ int, int, int |
| | : visual coordinates X, Y and Z. |
| |
|
| |
|
| | ## CObject:GetVisualScale |
| |
|
| | Returns the object's current visual scale (disregarding parent hierarchy). |
| |
|
| |
|
| | int **CObject:GetVisualScale**(int delta = 0) |
| | _returns_ int |
| | : the object's scale in percent (100% is the default). |
| |
|
| |
|
| | ## CObject:GetVisualWorldScale |
| |
|
| | Returns the object's world current visual scale (considering parent hierarchy). |
| |
|
| |
|
| | int **CObject:GetVisualWorldScale**(int delta = 0) |
| | _returns_ int |
| | : the object's world scale in percent (100% is the default). |
| |
|
| |
|
| | ## CObject:GetVisualZ |
| |
|
| | Same as GetVisualPos, but returns only the Z coordinate of the visual map position. |
| |
|
| |
|
| | int **CObject:GetVisualZ**([int time_delta = 0], [bool extrapolate = false]) |
| | _returns_ int |
| | : Z coordinate of the visual map position. |
| |
|
| |
|
| | ## CObject:GetWorldScale |
| |
|
| | Returns the object's world scale (considering parent hierarchy). |
| |
|
| |
|
| | int **CObject:GetWorldScale**() |
| | _returns_ int |
| | : the object's world scale in percent (100% is the default). |
| |
|
| |
|
| | ## CObject:GetZ |
| |
|
| | Same as GetPos, but returns only the Z coordinate of the final map position, or nil if on the terrain. |
| |
|
| |
|
| | int **CObject:GetZ**() |
| | _returns_ int |
| | : Z coordinate of the final map position. |
| |
|
| |
|
| | ## CObject:HasAllSurfaces |
| |
|
| | Checks if the object's entity has specific surfaces. |
| |
|
| |
|
| | bool **CObject:HasAllSurfaces**(int mask, [bool hierarchical]) |
| | int mask |
| | : A mask of the surfaces in question. See the 'EntitySurfaces' global for a list of surfaces and their masks. |
| |
|
| | bool hierarchical |
| | : Checks the attached objects too. |
| |
|
| | _returns_ bool |
| | : Returns true if the entity has all of those surfaces. |
| |
|
| |
|
| | ## CObject:HasAnySurfaces |
| |
|
| | Checks if the object's entity has specific surfaces. |
| |
|
| |
|
| | bool **CObject:HasAnySurfaces**(int mask, [bool hierarchical]) |
| | int mask |
| | : A mask of the surfaces in question. See the 'EntitySurfaces' global for a list of surfaces and their masks. |
| |
|
| | bool hierarchical |
| | : Checks the attached objects too. |
| |
|
| | _returns_ bool |
| | : Returns true if the entity has any of those surfaces. |
| |
|
| |
|
| | ## CObject:HasEntity |
| |
|
| | Checks if an object has an entity. |
| |
|
| |
|
| | bool **CObject:HasEntity**() |
| | _returns_ bool |
| | : true if entity is present. |
| |
|
| |
|
| | ## CObject:HasSpot |
| |
|
| | Checks if an object has a given spot type. |
| |
|
| |
|
| | bool **CObject:HasSpot**(string spot) |
| | string spot |
| | : the spot name to be checked |
| |
|
| | _returns_ bool |
| | : true if the spot is present. |
| |
|
| |
|
| | ## CObject:HasState |
| |
|
| | Checks if the object's entity has a given state (animation). |
| |
|
| |
|
| | bool **CObject:HasState**(string name) |
| |
|
| | bool **CObject:HasState**(int index) |
| | string name |
| | : the state name to check for |
| |
|
| | int index |
| | : the state index to check for |
| |
|
| | _returns_ bool |
| | : Returns true if the state is present |
| |
|
| |
|
| | ## CObject:IntersectBBox |
| |
|
| | Intersects object's bounding box in its current state/animation with a given box or point. |
| |
|
| |
|
| | int **CObject:IntersectBBox**(box/point, b2D = false) |
| | _returns_ int/bool |
| | : intersection result. |
| |
|
| |
|
| | ## CObject:IsAnimEnd |
| |
|
| | Returns if the current phase is the last anim phase |
| |
|
| |
|
| | int **CObject:IsAnimEnd**([int channel = 1]) |
| | int channel |
| | : optional animation channel |
| |
|
| | _returns_ bool |
| | : true if the current phase is the last anim phase |
| |
|
| |
|
| | ## CObject:IsReachableFrom |
| |
|
| | Checks if any of the source points can reach any of the approach points. |
| |
|
| | The function makes a single path finding call. In order to work correctly, all pass tunnels have to be symetrical (no one way tunnels). |
| |
|
| |
|
| | bool **CObject:IsReachableFrom**(table sources, int pfclass = 0, int restrict_dist = 150*guim) |
| | table sources |
| | : Table with points or objects or a single object |
| |
|
| | int pfclass |
| | : Optional pfclass |
| |
|
| | int restrict_dist |
| | : Optional restrict distance |
| |
|
| |
|
| | ## CObject:IsSoundMuted |
| |
|
| | Returns the value of the sound mute flag for an object. |
| |
|
| |
|
| | void **CObject:IsSoundMuted**() |
| |
|
| | ## CObject:IsValidPos |
| |
|
| | Checks if an object is present on the map |
| |
|
| |
|
| | bool **CObject:IsValidPos**() |
| | _returns_ bool |
| | : returns true, if the object has a position on the map. |
| |
|
| |
|
| | ## CObject:IsValidZ |
| |
|
| | Checks if the object position has a valid Z coordinate. Objects with invalid Z are always drawn on the terrain surface. |
| |
|
| |
|
| | bool **CObject:IsValidZ**() |
| | _returns_ bool |
| | : returns true, if the object has a valid Z coordinate. |
| |
|
| |
|
| | ## CObject:PlayState |
| |
|
| | Similar to SetState, but waits until the state animation is played before returning. |
| |
|
| |
|
| | void **CObject:PlayState**(string name, [int count = 1, int flags = 0, int crossfade = -1]) |
| |
|
| | void **CObject:PlayState**(int index, [int count = 1, int flags = 0, int crossfade = -1]) |
| | string name |
| | : the state name to check for |
| |
|
| | string index |
| | : the state index to check for |
| |
|
| | int count |
| | : optional count of animation replays (for looped animations only) |
| |
|
| | int flags |
| | : optional animation control flags (see object documentation for details) |
| |
|
| | int crossfade |
| | : optional animation crossfade time (see object documentation for details) |
| |
|
| |
|
| | ## CObject:RemoveLuaReference |
| |
|
| | Called when a cobject having a Lua reference is being destroyed. The method isn't overriden by child classes, but instead all implementations are called starting from the topmost parent. |
| |
|
| |
|
| | void **CObject:RemoveLuaReference**() |
| |
|
| | ## CObject:SetAcceleration |
| |
|
| | Sets linear acceleration as easing function when moving the object. |
| |
|
| |
|
| | void **CObject:SetAcceleration**(int accel) |
| | int accel |
| | : the linear acceleration value |
| |
|
| |
|
| | ## CObject:SetAngle |
| |
|
| | Smoothly changes the object's rotation angle over the specified time. |
| |
|
| |
|
| | void **CObject:SetAngle**(int angle, [int time = 0]) |
| | int angle |
| | : the new angle (in minutes, 1 degree equals 60 minutes) |
| |
|
| | int time |
| | : the time (ms) to change the axis (optional) |
| |
|
| |
|
| | ## CObject:SetAnimPhase |
| |
|
| | Advance the object's animation to a specific moment (phase). For nonlooping animations, the phase is clamped between 0 and the normal duration of the animation (without considering any speed modifications). |
| |
|
| |
|
| | void **CObject:SetAnimPhase**(int channel, int phase) |
| | int channel |
| | : animation channel index (first channel is 1) |
| |
|
| | int phase |
| | : the animation time to set. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | local duration = obj:SetState("step") |
| | obj:SetAnimPhase(1, duration - 1) |
| | -- the object animation is forced to advance to its last frame |
| | ~~~~ |
| |
|
| | ## CObject:SetAnimSpeed |
| |
|
| | Sets the new object's animation channel speed. |
| |
|
| | The channel speed is a property of the animation channel alone and doesn't affect the animations played on other channels. |
| |
|
| |
|
| | void **CObject:SetAnimSpeed**(int channel, int speed, [int time = 0]) |
| | int channel |
| | : animation channel (the first channel is 1) |
| |
|
| | int speed |
| | : the new speed to set in promilles |
| |
|
| | int time |
| | : the time we want the animation to reach smoothly the given speed (optional) |
| |
|
| |
|
| | ## CObject:SetAnimSpeedModifier |
| |
|
| | Sets the new object's animation speed modifier. |
| |
|
| | The speed modifier is a property of the object and affects all animation channels. |
| |
|
| |
|
| | void **CObject:SetAnimSpeedModifier**(int speed) |
| | int speed |
| | : the new speed modifier to set in promilles |
| |
|
| |
|
| | ## CObject:SetAttachAngle |
| |
|
| | Specifies the angle for the rotation offset when the object is attached. |
| |
|
| |
|
| | void **CObject:SetAttachAngle**(int angle) |
| | int angle |
| | : attach rotation angle |
| |
|
| |
|
| | ## CObject:SetAttachAxis |
| |
|
| | Specifies the axis for the rotation offset when the object is attached. |
| |
|
| |
|
| | void **CObject:SetAttachAxis**(point axis) |
| |
|
| | void **CObject:SetAttachAxis**(int dx, int dy, int dz) |
| | point axis |
| | : attach rotation axis vector as point |
| |
|
| | int dx, dy, dz |
| | : the axis vector as coordinates |
| |
|
| |
|
| | ## CObject:SetAttachOffset |
| |
|
| | Specifies a linear offset when the object is attached. |
| |
|
| |
|
| | void **CObject:SetAttachOffset**(point offset) |
| |
|
| | void **CObject:SetAttachOffset**(int dx, int dy, int dz) |
| | point offset |
| | : offset vector from the spot position as point |
| |
|
| | int dx, dy, dz |
| | : the offset vector as coordinates |
| |
|
| |
|
| | ## CObject:SetAxis |
| |
|
| | Smoothly changes the object's rotation axis over the specified time. |
| |
|
| |
|
| | void **CObject:SetAxis**(point axis, [int time = 0]) |
| |
|
| | void **CObject:SetAxis**(int dx, int dy, int dz, [int time = 0]) |
| | point axis |
| | : the new rotation axis vector as point |
| |
|
| | int dx, dy, dz |
| | : the new rotation axis vector as coordinates |
| |
|
| | int time |
| | : the time (ms) to change the axis (optional). |
| |
|
| |
|
| | ## CObject:SetAxisAngle |
| |
|
| | Smoothly turns the object to the given axis and angle for the specified time. This method ensures proper interpolation avoiding discontinuities. |
| |
|
| |
|
| | void **CObject:SetAxisAngle**(point axis, int angle, [int time = 0]) |
| |
|
| | void **CObject:SetAxisAngle**(int axis_x, int axis_y, int axis_z, int angle, [int time = 0]) |
| |
|
| | void **CObject:SetAxisAngle**(object other, [int time = 0]) |
| |
|
| | ## CObject:SetColorModifier |
| |
|
| | Modifies the colorization of the entire object. |
| |
|
| |
|
| | void **CObject:SetColorModifier**(int color, [int time = 0, bool recursive = false]) |
| | int color |
| | : the modification color in integer format. Each color component ranges between 0 and 255. For values above 100 the color component's value is being increased, while for values below, it's being reduced. To disable any modification, use RGB(100, 100, 100). |
| |
|
| | int time |
| | : optional parameter allowing to make the modification smoothly over an interval of time. |
| |
|
| | bool recursive |
| | : optional parameter indicating to set the color to all the attaches too. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | obj:SetColorModifier(RGB(200, 100, 50)) |
| | -- the object is now with increased red color, reduced blue color and unchanged green |
| | obj:SetColorModifier(RGB(100, 100, 100)) |
| | -- the object's true colors are now restored |
| | ~~~~ |
| |
|
| | ## CObject:SetColorizationMaterial |
| |
|
| | Specifies object's material properties. |
| |
|
| |
|
| | void **CObject:SetColorizationMaterial**(int idx, int color, int roughness, int metallic) |
| |
|
| | void **CObject:SetColorizationMaterial**(object other) |
| | int idx |
| | : colorization index, depends on the number of colorization masks available in the object's entity |
| |
|
| | int color |
| | : the material color to be used, in RGB format represented as an unsigned integer (one byte per color component). |
| |
|
| | int roughness |
| | : the material roughness, represented as an integer between -128 and 127 |
| |
|
| | int metallic |
| | : the metallic degree, represented as an integer between -128 and 127 |
| |
|
| | object other |
| | : copy the colorization from another object |
| |
|
| |
|
| | ## CObject:SetDust |
| |
|
| | Changes the object's dust visuals. Has an effect only if the entity has a dust mask. |
| |
|
| |
|
| | void **CObject:SetDust**(int value, int material, int color) |
| | int value |
| | : the degree of dust, ranging from 0 to 255 |
| |
|
| | int material |
| | : material index, can be 0 (exterior) or 1 (interior) |
| |
|
| |
|
| | ## CObject:SetEnumFlags |
| |
|
| | Sets the object's enumeration flags. |
| |
|
| |
|
| | void **CObject:SetEnumFlags**(int mask) |
| | int mask |
| | : mask containing the flags to be set. |
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | obj:SetEnumFlags(const.efVisible) |
| | -- the object is now visible |
| | ~~~~ |
| |
|
| | ## CObject:SetGameFlags |
| |
|
| | Sets the object's game flags. |
| |
|
| |
|
| |
|
| | Example: |
| |
|
| | ~~~~ Lua |
| | obj:SetGameFlags(const.gofAlwaysRenderable) |
| | -- the object is now drawn even when outside the camera view |
| | ~~~~ |
| |
|
| | void **CObject:SetGameFlags**(int mask) |
| | int mask |
| | : mask containing the flags to be set. |
| |
|
| |
|
| | ## CObject:SetGravity |
| |
|
| | Sets gravity acceleration as easing function when moving the object. |
| |
|
| |
|
| | void **CObject:SetGravity**([int gravity = 980]) |
| | int gravity |
| | : the gravity acceleration value (optional) |
| |
|
| |
|
| | ## CObject:SetMirrored |
| |
|
| | Specifies the the object entity should be mirrored. |
| |
|
| |
|
| | void **CObject:SetMirrored**(bool mirrored) |
| | bool mirrored |
| | : true if mirrored |
| |
|
| |
|
| | ## CObject:SetOpacity |
| |
|
| | Sets the current object opacity. |
| |
|
| |
|
| | void **CObject:SetOpacity**(int opacity, [int time = 0, bool recursive = false]) |
| | int opacity |
| | : 0 for full transparency; 100 for full opacity |
| |
|
| | int time |
| | : time for smooth transition (optional) |
| |
|
| | int recursive |
| | : if true, apply to attached objects too (optional) |
| |
|
| |
|
| | ## CObject:SetPos |
| |
|
| | Smoothly changes the object's position over the specified time. |
| |
|
| | The map position of the object is changed immediately, but its visual position will change over the given interval of time. |
| |
|
| |
|
| | void **CObject:SetPos**(point pos, [int time = 0]) |
| |
|
| | void **CObject:SetPos**(int x, int y, int z, [int time = 0]) |
| | point pos |
| | : the new position as a point |
| |
|
| | int x, y, z |
| | : the new position as three coordinates. |
| |
|
| | int time |
| | : the time (ms) to change the position (optional). |
| |
|
| |
|
| | ## CObject:SetPosAxisAngle |
| |
|
| | Smoothly moves and turns the object to the given pos, axis and angle for the specified time. It is better to use this method instead of invoking the interpolations separately. |
| |
|
| |
|
| | void **CObject:SetPosAxisAngle**(point pos, point axis, int angle, [int time = 0]) |
| |
|
| | void **CObject:SetPosAxisAngle**(int pos_x, int pos_y, int pos_z, int axis_x, int axis_y, int axis_z, int angle, [int time = 0]) |
| |
|
| | void **CObject:SetPosAxisAngle**(object other, [int time = 0]) |
| |
|
| | ## CObject:SetRollPitchYaw |
| |
|
| | Sets the object's orientation via roll, pitch and yaw angles. |
| |
|
| |
|
| | void **CObject:SetRollPitchYaw**(int roll, int pitch, int yaw, [int time_delta]) |
| | int roll |
| | : roll angle (Rotation around the object's front-to-back axis) |
| |
|
| | int pitch |
| | : pitch angle (Rotation around the object's side-to-side axis) |
| |
|
| | int yaw |
| | : yaw angle (Rotation around the object's vertical axis) |
| |
|
| | int time_delta |
| | : optional time interval in the future, thus enabling smooth interpolation from the current orientation. |
| |
|
| |
|
| | ## CObject:SetSIModulation |
| |
|
| | Sets the current self illumination modulation. |
| |
|
| |
|
| | void **CObject:SetSIModulation**(int modulation) |
| | int modulation |
| | : 0 for no self illumination; 100 for max self illumination |
| |
|
| |
|
| | ## CObject:SetScale |
| |
|
| | Changes the object's scale. |
| |
|
| |
|
| | void **CObject:SetScale**(int scale) |
| | int scale |
| | : the object's scale in percent (100% is the default). |
| |
|
| | int time |
| | : interpolation delta (0 by default). |
| |
|
| |
|
| | ## CObject:SetSound |
| |
|
| | Associates a sound to be played from this object. |
| |
|
| |
|
| | void **CObject:SetSound**(string sound, [string type, int volume, int crossfade, bool looping]) |
| | string sound |
| | : a sound name (sound bank) or a sound filename. |
| |
|
| | string type |
| | : a sound type name, indicating that a sound file is provided, instead of a sound name. |
| |
|
| | int volume |
| | : forces the volume of the sound between 0 and 1000 (the sound bank volume is used by default). |
| |
|
| | int crossfade |
| | : optional cross-fade time if changing the sound state. |
| |
|
| | bool looping |
| | : specifies if the sound should be looping (uses the sound bank flag by default). |
| |
|
| |
|
| | ## CObject:SetSoundMute |
| |
|
| | Sets or resets the sound mute flag for an object. |
| |
|
| |
|
| | void **CObject:SetSoundMute**(int volume, bool bMute) |
| | bool bMute |
| | : mutes the sounds from the object if set |
| |
|
| |
|
| | ## CObject:SetSoundVolume |
| |
|
| | Changes the sound volume for an object. |
| |
|
| |
|
| | void **CObject:SetSoundVolume**(int volume, [int time = 0]) |
| | int volume |
| | : specifies the volume of the sound between 0 and 1000. |
| |
|
| | int time |
| | : optional time for smooth change. |
| |
|
| |
|
| | ## CObject:SetState |
| |
|
| | Changes the object's state (animation). |
| |
|
| |
|
| | int **CObject:SetState**(string name, [int flags = 0, int crossfade = -1, int speed = 1000, bool change_only]) |
| |
|
| | int **CObject:SetState**(int index, [int flags = 0, int crossfade = -1, int speed = 1000, bool change_only]) |
| | string name |
| | : the state name to check for |
| |
|
| | string index |
| | : the state index to check for |
| |
|
| | int flags |
| | : optional animation control flags (see object documentation for details) |
| |
|
| | int crossfade |
| | : optional animation crossfade time (see object documentation for details) |
| |
|
| | int speed |
| | : optional animation speed in promilles |
| |
|
| | bool change_only |
| | : will early-out if the state is already the requested one |
| |
|
| |
|
| | ## CObject:StopSound |
| |
|
| | Stops the sound of an object. |
| |
|
| |
|
| | void **CObject:StopSound**([int time = 0]) |
| | int time |
| | : optional time for smoothly muting the sound. |
| |
|
| |
|
| | ## CObject:TimeToAnimEnd |
| |
|
| | Returns remaining time to the end of currently played animation of the object (the result is depending on the current animation speed). |
| |
|
| |
|
| | int **CObject:TimeToAnimEnd**([int channel = 1]) |
| | int channel |
| | : optional animation channel |
| |
|
| | _returns_ int |
| | : the time remaining |
| |
|
| |
|
| | ## GetEntityBBox |
| |
|
| | Returns the bounding box of an entity in a given state. |
| |
|
| |
|
| | box **GetEntityBBox**(string entity, string state) |
| |
|
| | box **GetEntityBBox**(string entity, int state) |
| | string entity |
| | : entity name |
| |
|
| | string state |
| | : state name |
| |
|
| | int state |
| | : state idx |
| |
|
| | _returns_ box |
| | : the bounding box of the entity. |
| |
|
| |
|
| | ## GetNumStates |
| |
|
| | Returns the number of valid states (animations) for a given entity. |
| |
|
| |
|
| | int **GetNumStates**(string entity) |
| | string entity |
| | : the entity name |
| |
|
| | _returns_ int |
| | : number of states |
| |
|
| |
|
| | ## GetSpotBeginIndex |
| |
|
| | Returns the first spot index from a given spot type for an entity in a given state |
| |
|
| |
|
| | int, int **GetSpotBeginIndex**(string entity, string state, string spot) |
| |
|
| | int, int **GetSpotBeginIndex**(string entity, int state, string spot) |
| | string entity |
| | : entity name |
| |
|
| | string state |
| | : state name |
| |
|
| | int state |
| | : state index |
| |
|
| | string spot |
| | : spot name |
| |
|
| | _returns_ int |
| | : the spot index, -1 if not found. |
| |
|
| |
|
| | ## GetSpotEndIndex |
| |
|
| | Returns the last spot index from a given spot type for an entity in a given state |
| |
|
| |
|
| | int, int **GetSpotEndIndex**(string entity, string state, string spot) |
| |
|
| | int, int **GetSpotEndIndex**(string entity, int state, string spot) |
| | string entity |
| | : entity name |
| |
|
| | string state |
| | : state name |
| |
|
| | int state |
| | : state index |
| |
|
| | string spot |
| | : spot name |
| |
|
| | _returns_ int |
| | : the spot index, -1 if not found. |
| |
|
| |
|
| | ## GetSpotRange |
| |
|
| | Returns the first and the last spot indexes from a given spot type for an entity in a given state |
| |
|
| |
|
| | int, int **GetSpotRange**(string entity, string state, string spot) |
| |
|
| | int, int **GetSpotRange**(string entity, int state, string spot) |
| | string entity |
| | : entity name |
| |
|
| | string state |
| | : state name |
| |
|
| | int state |
| | : state index |
| |
|
| | string spot |
| | : spot name |
| |
|
| | _returns_ int, int |
| | : the spot indexes, -1 if not found. |
| |
|
| |
|
| | ## GetTopmostParent |
| |
|
| | Returns the topmost parent, if attached, or the object itself otherwise. |
| |
|
| |
|
| | object **GetTopmostParent**(object obj [, string class = false]) |
| | object obj |
| | : the object |
| |
|
| | string class |
| | : optional class name as filter |
| |
|
| | _returns_ object |
| | : the topmost parent |
| |
|
| |
|
| | ## HasAllSurfaces |
| |
|
| | Checks if an entity has specific surfaces. |
| |
|
| |
|
| | bool **HasAllSurfaces**(string entity, int mask) |
| | string entity |
| | : The entity name. |
| |
|
| | int mask |
| | : A mask of the surfaces in question. See the 'EntitySurfaces' global for a list of surfaces and their masks. |
| |
|
| | _returns_ bool |
| | : Returns true if the entity has all of those surfaces. |
| |
|
| |
|
| | ## HasAnySurfaces |
| |
|
| | Checks if an entity has specific surfaces. |
| |
|
| |
|
| | bool **HasAnySurfaces**(string entity, int mask) |
| | string entity |
| | : The entity name. |
| |
|
| | int mask |
| | : A mask of the surfaces in question. See the 'EntitySurfaces' global for a list of surfaces and their masks. |
| |
|
| | _returns_ bool |
| | : Returns true if the entity has any of those surfaces. |
| |
|
| |
|
| | ## HasSpot |
| |
|
| | Checks if an entity has a given spot type in a specified state. |
| |
|
| |
|
| | bool **HasSpot**(string entity, string state, string spot) |
| | string entity |
| | : the entity name |
| |
|
| | #param string state - the state to check |
| |
|
| | string spot |
| | : the spot name to be checked |
| |
|
| | _returns_ bool |
| | : true if the spot is present. |
| |
|
| |
|
| | ## HasState |
| |
|
| | Checks if an entity has a given state (animation). |
| |
|
| |
|
| | bool **HasState**(string entity, string name) |
| |
|
| | bool **HasState**(string entity, int index) |
| | string entity |
| | : the entity name |
| |
|
| | string name |
| | : the state name to check for |
| |
|
| | int index |
| | : the state index to check for |
| |
|
| | _returns_ bool |
| | : Returns true if the state is present |
| |
|
| |
|
| | ## IsBeingDestructed |
| |
|
| | Returns if the given param is an object in the process of being destroyed. |
| |
|
| |
|
| | bool **IsBeingDestructed**(object obj) |
| | object obj |
| | : the object to be tested |
| |
|
| | _returns_ bool |
| | : true if the object is being destroyed |
| |
|
| |
|
| | ## IsValid |
| |
|
| | Returns if the given param is a valid, non yet destroyed object. |
| |
|
| |
|
| | bool **IsValid**(object obj) |
| | object obj |
| | : the object to be tested |
| |
|
| | _returns_ bool |
| | : true if the object is valid |
| |
|
| |
|
| |
|
| |
|
| |
|
| | (insert footer.md.html here) |
| | <link rel="stylesheet" type="text/css" href="Style.css" /> |
| | <style class="fallback">body{visibility:hidden;white-space:pre;font-family:monospace}</style><script src="markdeep.min.js" charset="utf-8"></script><script>window.alreadyProcessedMarkdeep||(document.body.style.visibility="visible")</script> |