LUADOC - Farming Simulator 17

Printable Version

BasketTrigger

Description
Class for basket triggers
Functions

onCreate

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

new

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

load

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

delete

Description
Delete basket trigger
Definition
delete()
Code
65function BasketTrigger:delete()
66 removeTrigger(self.triggerId);
67end;

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