| # 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> |