LUADOC - Farming Simulator 17

Printable Version

ShopTrigger

Description
Class for shop triggers to open shop gui
Functions

onCreate

Description
On create shop trigger
Definition
onCreate(integer id)
Arguments
integeridtrigger node id
Code
15function ShopTrigger:onCreate(id)
16 g_currentMission:addNonUpdateable(ShopTrigger:new(id));
17end;

new

Description
Creating shop trigger object
Definition
new(integer name)
Arguments
integernametrigger node id
Return Values
tableinstanceinstance of object
Code
23function ShopTrigger:new(name)
24 local self = {};
25 setmetatable(self, ShopTrigger_mt);
26
27 self.triggerId = name;
28 if g_currentMission:getIsClient() then
29 addTrigger(name, "triggerCallback", self);
30 end;
31
32 self.shopSymbol = getChildAt(name, 0);
33 self.shopPlayerSpawn = getChildAt(name, 1);
34
35 self.objectActivated = false;
36 self.isEnabled = true;
37
38 if (g_isPresentationVersion and not g_isPresentationVersionShopEnabled) or (not g_currentMission.missionInfo:isa(FSCareerMissionInfo)) then
39 setVisibility(self.shopSymbol, false);
40 end;
41
42 self.activateText = g_i18n:getText("action_activateShop");
43
44 return self;
45end;

delete

Description
Deleting shop trigger
Definition
delete()
Code
49function ShopTrigger:delete()
50 if g_currentMission:getIsClient() then
51 removeTrigger(self.triggerId);
52 g_currentMission:removeActivatableObject(self);
53 end;
54end;

getIsActivatable

Description
Returns true if shop can be opened
Definition
getIsActivatable()
Return Values
booleanisActivateableis activateable
Code
59function ShopTrigger:getIsActivatable()
60 return self.isEnabled and g_currentMission.controlPlayer;
61end;

onActivateObject

Description
Called on activate object
Definition
onActivateObject()
Code
69function ShopTrigger:onActivateObject()
70 g_currentMission:addActivatableObject(self);
71 self.objectActivated = true;
72 g_gui:showGui("ShopScreen");
73 local x,y,z = getWorldTranslation(self.shopPlayerSpawn);
74 local dx, _, dz = localDirectionToWorld(self.shopPlayerSpawn, 0, 0, -1);
75 g_currentMission.player:moveToAbsolute(x,y,z);
76 g_currentMission.player.rotY = Utils.getYRotationFromDirection(dx, dz);
77end;

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
86function ShopTrigger:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay)
87 if self.isEnabled and (not g_isPresentationVersion or g_isPresentationVersionShopEnabled) and g_currentMission.missionInfo:isa(FSCareerMissionInfo) then
88 if onEnter or onLeave then
89 if g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode then
90 if onEnter then
91 if not self.objectActivated then
92 g_currentMission:addActivatableObject(self);
93 self.objectActivated = true;
94 end
95 else
96 if self.objectActivated then
97 g_currentMission:removeActivatableObject(self);
98 self.objectActivated = false;
99 end
100 end;
101 end;
102 end;
103 end;
104end;