128 {
130 {
131 ActionInfoDataConstructionBase info = ActionInfoDataConstructionBase.Cast(
m_ActionInfo);
133
135 int toolActionMask = EConstructionTools.TOOL_HANDS;
137 if (Class.CastTo(tool, info.GetTool()))
138 {
139
140 string toolCfgPath = "cfgVehicles" + " " + tool.GetType() + " " + "build_action_type";
141 if (
g_Game.ConfigIsExisting(toolCfgPath))
142 {
143 toolActionMask =
g_Game.ConfigGetInt(toolCfgPath);
144 }
145 else
146 {
147 toolActionMask = EConstructionTools.TOOL_NO_ACTION;
148 }
149
150 }
151
153 {
154 m_IconVisibleCount = 0;
155
156 bool firstValidToolSet = false;
157 int maskOverlap = toolActionMask & partInfoMask;
158
159
160 int iconIdx;
161 ConstructionToolInfoIcon toolIcon;
162
163
164 foreach (GenericIconBase icon : m_Icons)
165 {
166 Class.CastTo(toolIcon,icon);
167 toolIcon.SetConstructionPart(part);
168 iconIdx = toolIcon.GetIconIndex();
169 bool validToolBool = iconIdx & maskOverlap;
170
171 if (maskOverlap)
172 {
173 if (validToolBool && !firstValidToolSet)
174 {
178 firstValidToolSet = true;
179 }
180 else
181 {
184 }
185
187 m_IconVisibleCount += toolIcon.IsVisible();
188 }
189 else
190 {
191 if (iconIdx == EConstructionTools.TOOL_HANDS)
192 {
195 }
196 else
197 {
199 }
200
203 m_IconVisibleCount += toolIcon.IsVisible();
204 }
205 }
206
210 }
211 }
212 else
213 {
214 m_IconVisibleCount = 0;
215 }
216
217 super.UpdateInterval();
218 }
ActionInfoGridBase m_LastPart
ActionInfoDataBase m_ActionInfo
EConstructionInfoCategories
void ConstructionPart(string name, string part_name, string main_part_name, int id, bool is_built, bool is_base, bool is_gate, array< string > required_parts)
class GP5GasMask extends MaskBase ItemBase
int GetBuildIndicationTypeMask()