Skip to main content
Skip to main content

BasketTrigger

BasketTrigger

Description

Class for basket triggers

Functions

delete

Description

Delete basket trigger

Definition

delete()

Code

function BasketTrigger:delete()
removeTrigger( self.triggerId)
end

load

Description

Load basket trigger

Definition

load(integer nodeId)

Arguments

integernodeIdid of node

Return Values

integersuccesssuccess

Code

function BasketTrigger:load(nodeId)
self.nodeId = nodeId

self.triggerId = I3DUtil.indexToObject(nodeId, getUserAttribute(nodeId, "triggerIndex" ))
if self.triggerId = = nil then
self.triggerId = nodeId
end
addTrigger( self.triggerId, "triggerCallback" , self )

self.triggerObjects = { }

self.isEnabled = true

return true
end

new

Description

Creating basket trigger object

Definition

new(table? customMt)

Arguments

table?customMtcustom metatable (optional)

Return Values

table?instanceinstance of basket trigger object

Code

function BasketTrigger.new(customMt)
local self = setmetatable( { } , customMt or BasketTrigger _mt)

self.triggerId = 0
self.nodeId = 0

return self
end

onCreate

Description

On create basket trigger

Definition

onCreate(integer id)

Arguments

integeridid of trigger node

Code

function BasketTrigger:onCreate(id)
local trigger = BasketTrigger.new()
if trigger:load(id) then
g_currentMission:addNonUpdateable(trigger)
else
trigger:delete()
end
end

triggerCallback

Description

Trigger callback

Definition

triggerCallback(integer triggerId, integer otherId, boolean onEnter, boolean onLeave, boolean onStay, )

Arguments

integertriggerIdid of trigger
integerotherIdid of actor
booleanonEnteron enter
booleanonLeaveon leave
booleanonStayon stay
anyotherShapeId

Code

function BasketTrigger:triggerCallback(triggerId, otherActorId, onEnter, onLeave, onStay, otherShapeId)
if self.isEnabled then

if onEnter then
local object = g_currentMission:getNodeObject(otherActorId)
if object.thrownFromPosition ~ = nil then
self.triggerObjects[otherActorId] = true
end

elseif onLeave then
if self.triggerObjects[otherActorId] then
self.triggerObjects[otherActorId] = false

-- local object = g_currentMission:getNodeObject(otherActorId)
-- local x,y,z = worldToLocal(self.triggerId, object.thrownFromPosition[1],object.thrownFromPosition[2],object.thrownFromPosition[3])
-- local dist = MathUtil.vector3Length(x,y,z)
end
end
end
end