LUADOC - Farming Simulator 19

ShopTrigger

Description
Class for shop triggers to open shop gui
Functions

delete

Description
Deleting shop trigger
Definition
delete()
Code
47function ShopTrigger:delete()
48 g_messageCenter:unsubscribeAll(self)
49 if self.triggerId ~= nil then
50 removeTrigger(self.triggerId)
51 end
52 self.shopSymbol = nil
53 g_currentMission:removeActivatableObject(self)
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 and g_currentMission:getFarmId() ~= FarmManager.SPECTATOR_FARM_ID
61end

new

Description
Creating shop trigger object
Definition
new(integer name)
Arguments
integernametrigger node id
Return Values
tableinstanceinstance of object
Code
21function ShopTrigger:new(name)
22 local self = {}
23 setmetatable(self, ShopTrigger_mt)
24
25 if g_currentMission:getIsClient() then
26 self.triggerId = name
27 addTrigger(name, "triggerCallback", self)
28 end
29
30 self.shopSymbol = getChildAt(name, 0)
31 self.shopPlayerSpawn = getChildAt(name, 1)
32
33 self.objectActivated = false
34 self.isEnabled = true
35
36 g_messageCenter:subscribe(MessageType.PLAYER_FARM_CHANGED, self.playerFarmChanged, self)
37
38 self:updateIconVisibility()
39
40 self.activateText = g_i18n:getText("action_activateShop")
41
42 return self
43end

onActivateObject

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

onCreate

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

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