Script v1.4.4.0
- Handtools
- Events
- Objects
- AnimatedObject
- Bale
- Basketball
- Bga
- BunkerSilo
- FieldDefinition
- FillablePallet
- HelpIcons
- MountableObject
- Nightlight2
- NightlightFlicker
- PhysicsObject
- Rotator
- SaplingPallet
- ShovelTarget
- SimParticleSystem
- StationCrane
- Storage
- TourIcons
- Train
- VehicleSellingPoint
- Placeables
- Triggers
- Utils
- Vehicles
- Specializations
Engine v7.0.0.2
- General
- Entity
- Node
- Scenegraph
- Lighting
- Camera
- Shape
- Particle System
- Physics
- Spline
- Animation
- Overlays
- Sound
- Input
- XML
- Network
- Callbacks
- Text Rendering
- Terrain Detail
- Tire Track
- Editor
- Rendering
- String
- Math
- I3D
- Fillplanes
Foundation Reference
HelpIcons
DescriptionClass for help iconsFunctions
onCreate
DescriptionCreating help iconsDefinition
onCreate(integer id)Arguments
integer | id | node id |
17 | function HelpIcons:onCreate(id) |
18 | local helpIcons = HelpIcons:new(id); |
19 | g_currentMission:addNonUpdateable(helpIcons); |
20 | g_currentMission.helpIconsBase = helpIcons; |
21 | end; |
new
DescriptionCreating help iconsDefinition
new(integer name)Arguments
integer | name | node id |
table | instance | Instance of object |
27 | function 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; |
46 | end; |
delete
DescriptionDeleting help iconsDefinition
delete()Code
50 | function 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; |
57 | end; |
triggerCallback
DescriptionTrigger callbackDefinition
triggerCallback(integer triggerId, integer otherId, boolean onEnter, boolean onLeave, boolean onStay)Arguments
integer | triggerId | id of trigger |
integer | otherId | id of actor |
boolean | onEnter | on enter |
boolean | onLeave | on leave |
boolean | onStay | on stay |
74 | function 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; |
106 | end; |
showHelpIcons
DescriptionShow help iconsDefinition
showHelpIcons(boolean visible, boolean clearIconStates)Arguments
boolean | visible | visible |
boolean | clearIconStates | clear icon states |
112 | function 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 | |
131 | end; |
deleteHelpIcon
DescriptionDelete help iconDefinition
deleteHelpIcon(integer i)Arguments
integer | i | id of help icon |
136 | function 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; |
141 | end; |