LUADOC - Farming Simulator 17

Printable Version

HelpIcons

Description
Class for help icons
Functions

onCreate

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

new

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

delete

Description
Deleting help icons
Definition
delete()
Code
50function HelpIcons:delete()
51 -- BUG: help icons are deleted before we get here!
52 if g_currentMission:getIsClient() then
53 for _, helpIcon in pairs(self.helpIcons) do
54 removeTrigger(helpIcon.helpIconTriggerId);
55 end;
56 end;
57end;

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

showHelpIcons

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

deleteHelpIcon

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