LUADOC - Farming Simulator 22

Script v1_7_1_0

Engine v1_7_1_0

Foundation Reference

HelpIcons

Description
Class for help icons
Functions

delete

Description
Deleting help icons
Definition
delete()
Code
48function HelpIcons:delete()
49 for _, helpIcon in pairs(self.helpIcons) do
50 removeTrigger(helpIcon.helpIconTriggerId)
51 end
52end

deleteHelpIcon

Description
Delete help icon
Definition
deleteHelpIcon(integer i)
Arguments
integeriid of help icon
Code
132function HelpIcons:deleteHelpIcon(i)
133 if self.helpIcons[i] ~= nil then
134 setVisibility(self.helpIcons[i].helpIconId, false)
135 setCollisionMask(self.helpIcons[i].helpIconTriggerId, 0)
136 end
137end

new

Description
Creating help icons
Definition
new(integer name)
Arguments
integernamenode id
Return Values
tableinstanceInstance of object
Code
25function HelpIcons.new(name)
26 local self = {}
27 setmetatable(self, HelpIcons_mt)
28
29 self.me = name
30 local num = getNumOfChildren(self.me)
31
32 self.helpIcons = {}
33 for i = 0, num - 1 do
34 local helpIconTriggerId = getChildAt(self.me, i)
35 local helpIconId = getChildAt(helpIconTriggerId, 0)
36 local helpIconCustomNumber = Utils.getNoNil(getUserAttribute(helpIconTriggerId, "customNumber"), 0)
37 addTrigger(helpIconTriggerId, "triggerCallback", self)
38 local helpIcon = {helpIconTriggerId = helpIconTriggerId, helpIconId = helpIconId, helpIconCustomNumber = helpIconCustomNumber}
39 table.insert(self.helpIcons, helpIcon)
40 end
41 self.visible = true
42
43 return self
44end

onCreate

Description
Creating help icons
Definition
onCreate(integer id)
Arguments
integeridnode id
Code
15function HelpIcons:onCreate(id)
16 local helpIcons = HelpIcons.new(id)
17 g_currentMission:addNonUpdateable(helpIcons)
18 g_currentMission.helpIconsBase = helpIcons
19end

showHelpIcons

Description
Show help icons
Definition
showHelpIcons(boolean visible, boolean clearIconStates)
Arguments
booleanvisiblevisible
booleanclearIconStatesclear icon states
Code
108function HelpIcons:showHelpIcons(visible, clearIconStates)
109 self.visible = visible
110
111 local oldStates = g_currentMission.missionInfo.foundHelpIcons
112
113 for i, helpIcon in ipairs(self.helpIcons) do
114 local isVisible = visible
115 if clearIconStates == nil or not clearIconStates then
116 isVisible = isVisible and string.sub(oldStates, i, i) == "0"
117 end
118
119 setVisibility(helpIcon.helpIconId, isVisible)
120 if isVisible then
121 setCollisionMask(helpIcon.helpIconTriggerId, 3145728)
122 else
123 setCollisionMask(helpIcon.helpIconTriggerId, 0)
124 end
125 end
126
127end

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
69function HelpIcons:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay)
70 if onEnter then -- and g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode and g_currentMission.controlPlayer then
71 -- only trigger if the player or a vehicle controlled by the player enters
72 if (g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode and g_currentMission.controlPlayer) or (g_currentMission.controlledVehicle ~= nil and g_currentMission.controlledVehicle == g_currentMission.nodeToObject[otherId]) then
73 local missionInfo = g_currentMission.missionInfo
74
75 for i, helpIcon in ipairs(self.helpIcons) do -- order is important for savegame
76 if helpIcon.helpIconTriggerId == triggerId then
77 if getVisibility(helpIcon.helpIconId) then
78 setVisibility(helpIcon.helpIconId, false)
79 setCollisionMask(helpIcon.helpIconTriggerId, 0)
80
81 -- update help icon string
82 missionInfo.foundHelpIcons = ""
83 for _, helpIcon in ipairs(self.helpIcons) do
84 if getVisibility(helpIcon.helpIconId) then
85 missionInfo.foundHelpIcons = missionInfo.foundHelpIcons .. "0"
86 else
87 missionInfo.foundHelpIcons = missionInfo.foundHelpIcons .. "1"
88 end
89 end
90
91 local messageNumber = helpIcon.helpIconCustomNumber
92 if messageNumber == 0 then
93 messageNumber = i
94 end
95 g_currentMission.inGameMessage:showMessage(g_i18n:getText("helpIcon_title" .. messageNumber), g_i18n:getText("helpIcon_text" .. messageNumber), 0)
96 end
97 end
98 end
99
100 end
101 end
102end