LUADOC - Farming Simulator 19

HelpIcons

Description
Help icons show in-game help messages Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved.
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