LUADOC - Farming Simulator 22

BasketTrigger

Description
Class for basket triggers
Functions

delete

Description
Delete basket trigger
Definition
delete()
Code
63function BasketTrigger:delete()
64 removeTrigger(self.triggerId)
65end

load

Description
Load basket trigger
Definition
load(integer nodeId)
Arguments
integernodeIdid of node
Return Values
booleansuccesssuccess
Code
45function BasketTrigger:load(nodeId)
46 self.nodeId = nodeId
47
48 self.triggerId = I3DUtil.indexToObject(nodeId, getUserAttribute(nodeId, "triggerIndex"))
49 if self.triggerId == nil then
50 self.triggerId = nodeId
51 end
52 addTrigger(self.triggerId, "triggerCallback", self)
53
54 self.triggerObjects = {}
55
56 self.isEnabled = true
57
58 return true
59end

new

Description
Creating basket trigger object
Definition
new(table mt)
Arguments
tablemtcustom metatable (optional)
Return Values
tableinstanceinstance of basket trigger object
Code
28function BasketTrigger.new(mt)
29 local self = {}
30 if mt == nil then
31 mt = BasketTrigger_mt
32 end
33 setmetatable(self, mt)
34
35 self.triggerId = 0
36 self.nodeId = 0
37
38 return self
39end

onCreate

Description
On create basket trigger
Definition
onCreate(integer id)
Arguments
integeridid of trigger node
Code
15function BasketTrigger:onCreate(id)
16 local trigger = BasketTrigger.new()
17 if trigger:load(id) then
18 g_currentMission:addNonUpdateable(trigger)
19 else
20 trigger:delete()
21 end
22end

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
Code
74function BasketTrigger:triggerCallback(triggerId, otherActorId, onEnter, onLeave, onStay, otherShapeId)
75 if self.isEnabled then
76
77 if onEnter then
78 local object = g_currentMission:getNodeObject(otherActorId)
79 if object.thrownFromPosition ~= nil then
80 self.triggerObjects[otherActorId] = true
81 end
82
83 elseif onLeave then
84 if self.triggerObjects[otherActorId] then
85 self.triggerObjects[otherActorId] = false
86
87 -- local object = g_currentMission:getNodeObject(otherActorId)
88 -- local x,y,z = worldToLocal(self.triggerId, object.thrownFromPosition[1],object.thrownFromPosition[2],object.thrownFromPosition[3])
89 -- local dist = MathUtil.vector3Length(x,y,z)
90 end
91 end
92 end
93end