DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ConstructionPartTyped.c
См. документацию.
1
3{
4 protected string m_Name; //un-localized text name that is displayed ingame. Localized via getter method.
5 protected string m_PartName; //config class name
6 protected string m_MainPartName; //main (parent) config class name
7 protected string m_PartPath; //raw part path, stored for deferred init
8 protected typename m_CustomInstanceTypename; //set only for custom types, contains type of custom part instances
9 protected int m_Id; //a number used for synchronization and persistence purposes, must be unique and withing sync limit (total number of bits in all sync/persistence variables)
10 protected int m_BuildActionTypeMask; //values from EConstructionTools
11 protected int m_BuildIndicationTypeMask; //values from EConstructionTools, used for indication only!
12 protected int m_DismantleActionTypeMask; //values from EConstructionTools
13 protected int m_MaterialType; //used for determinig effect type (wood vs. metal sounds, for example)
14 protected int m_HandFBAnimOverride = -1; //override ID of the FB animation for hand construction (tool anims are driven by tools)
15 protected bool m_IsBase; //defines if this part is the foundation of the whole construction
16 protected bool m_IsGate; //defines part gate state
17 protected bool m_IsUtilityPart;
18 protected bool m_DamageHandsOnBuild;
19 protected bool m_CanPartDecayConfig;
21 protected float m_PartDecayRateConfig;
22 protected ref array<string> m_RequiredPartTypes; //list of part types required by this part
23 protected ref array<string> m_ConflictedPartTypes; //list of part types conflicting with this one
24 protected ref array<string> m_CollisionData; //Names of min/max memory point selections
25 protected ref array<string> m_InsiderBoxPairNames; //Names of min/max pairs for insider box considerations
26 protected ref array<string> m_ItemFallingData; //Names of min/max memory point selections
27 protected ref array<string> m_EssentialAttachmentSlots; //Names of att. slots that are tied to the constructed part in some way
28 protected ref array<string> m_RelatedGUICategoryNames; //listing of related 'GUIInventoryAttachmentsProps' subclasses (part is required to display them, in this iteration)
30
31 //rebuilding data below
32 protected string m_BuildTextOverride = "";
33 protected string m_DismantleTextOverride = "";
34 protected ref array<string> m_PhxGeomNames; //used in 'Handle<operation>Physics' methods instead m_PartName
35 protected ref array<int> m_PhxGeomBehaviorInverted; //dictates behavior of geom selections from 'm_PhxGeomNames'. 0 == matches the phase of the animation, non-zero == inverted
36 protected ref array<string> m_ProxyRoadwayNames; //used in 'Handle<operation>ProxyRoadways' methods instead m_PartName
37 protected ref array<int> m_ProxyRoadwayBehaviorInverted; //dictates behavior of ProxyRoadway from 'm_ProxyRoadwayNames'. 0 == matches the phase of the animation, non-zero == inverted
38 protected ref array<string> m_AnimSourceNameOverrides; //used by 'SetAnimationPhase' instead of m_PartName
39 protected ref array<int> m_AnimSourceBehaviorOverridesInverted; //dictates behavior of animSources from 'm_AnimSourceNameOverrides'. 0 == matches the hide/show state of the animation, non-zero == inverted
41 protected ref TConstructionPartVariantArray m_ReqPartVariants;
44
71
73 //Protected Inits
75 protected void InitBasicStrings(PartTypeInitData partTypeData)
76 {
77 string name = "";
78 g_Game.ConfigGetTextRaw(m_PartPath + " name", name);
79 g_Game.FormatRawConfigStringKeys(name);
80 m_Name = name;
81 m_PartName = partTypeData.m_PartName;
82 m_MainPartName = partTypeData.m_MainPartName;
83 m_Id = g_Game.ConfigGetInt(m_PartPath + " id");
84 m_IsBase = g_Game.ConfigGetInt(m_PartPath + " is_base");
85 m_IsGate = g_Game.ConfigGetInt(m_PartPath + " is_gate");
86 }
87
88 protected void InitRequiredParts()
89 {
90 string cfgPath = m_PartPath + " required_parts";
92 g_Game.ConfigGetTextArray(cfgPath, m_RequiredPartTypes);
93 }
94
95 protected void InitActionMasks()
96 {
97 string path = m_PartPath + " build_action_type";
98 if (g_Game.ConfigIsExisting(path))
99 {
100 m_BuildActionTypeMask = g_Game.ConfigGetInt(path);
102 }
103
104 path = m_PartPath + " dismantle_action_type";
105 if (g_Game.ConfigIsExisting(path))
106 m_DismantleActionTypeMask = g_Game.ConfigGetInt(path);
107 }
108
109 protected void InitPartMaterials()
110 {
112
113 string path = m_PartPath + " Materials";
114 if (g_Game.ConfigIsExisting(path))
115 {
116 int count = g_Game.ConfigGetChildrenCount(path);
117 for (int i = 0; i < count; ++i)
118 {
119 string childName;
120 g_Game.ConfigGetChildName(path, i, childName);
121
122 string matPath = path + " " + childName;
124 m_MaterialsData.Insert(dataObj);
125 }
126 }
127 }
128
129 protected void InitMaterialType()
130 {
132 string path = m_PartPath + " material_type";
133 if (g_Game.ConfigIsExisting(path))
134 {
135 m_MaterialType = g_Game.ConfigGetInt(path);
136 }
137 }
138
139 protected void InitConflictedParts()
140 {
141 string path = m_PartPath + " conflicted_parts";
143 g_Game.ConfigGetTextArray(path, m_ConflictedPartTypes);
144 }
145
147 protected void InitCollisionData()
148 {
149 //collision box data
151 string path = m_PartPath + " collision_data";
152 if (g_Game.ConfigIsExisting(path))
153 {
154 g_Game.ConfigGetTextArray(path, m_CollisionData);
155 }
156 }
157
159 protected void InitInsiderBoxData()
160 {
161 //insider box data
162 string path = m_PartPath + " insider_minMaxs";
163 if (g_Game.ConfigIsExisting(path))
164 {
165 //read from config and validate
166 array<string> tmp = new array<string>();
167 g_Game.ConfigGetTextArray(path, tmp);
168
169 int count = tmp.Count();
170 if (count == 0)
171 {
172 tmp = null;
173 return;
174 }
175 else if (count % 2 != 0)
176 {
177 ErrorEx("odd number of insider_minMaxs configured for " + m_PartPath);
178 tmp = null;
179 return;
180 }
181
183 m_InsiderBoxPairNames.Copy(tmp);
184 }
185 }
186
188 protected void InitItemFallingData()
189 {
191 string path = m_PartPath + " item_falling_data";
192 if (g_Game.ConfigIsExisting(path))
193 {
194 g_Game.ConfigGetTextArray(path, m_ItemFallingData);
195 }
196 }
197
198 //
199 protected void InitPartDecayData()
200 {
201 //can decay
202 string path = m_PartPath + " can_part_decay";
203 if (g_Game.ConfigIsExisting(path))
204 SetCanDecayConfig(g_Game.ConfigGetInt(path));
205
206 //decay threshold
207 m_PartDecayThresholdConfig = ConstructionBase.DEFAULT_DECAY_THRESHOLD;
208 path = m_PartPath + " part_decay_threshold";
209 if (g_Game.ConfigIsExisting(path))
210 m_PartDecayThresholdConfig = g_Game.ConfigGetFloat(path);
212
213 //decay rate
214 m_PartDecayRateConfig = ConstructionBase.DEFAULT_DECAY_RATE;
215 path = m_PartPath + " part_decay_rate";
216 if (g_Game.ConfigIsExisting(path))
217 m_PartDecayRateConfig = g_Game.ConfigGetFloat(path);
218 }
219
220 protected void InitHandAnimOverride()
221 {
222 string path = m_PartPath + " hand_build_FB_anim_override";
223 if (g_Game.ConfigIsExisting(path))
224 m_HandFBAnimOverride = g_Game.ConfigGetInt(path);
225 }
226
229 {
231 string path = m_PartPath + " essential_attachments";
232 if (g_Game.ConfigIsExisting(path))
233 {
234 g_Game.ConfigGetTextArray(path, m_EssentialAttachmentSlots);
235 }
236 }
237
240 {
242 string path = m_PartPath + " related_GUI_categories";
243 if (g_Game.ConfigIsExisting(path))
244 {
245 g_Game.ConfigGetTextArray(path, m_RelatedGUICategoryNames);
246 }
247 }
248
251 {
253 string path = m_PartPath + " damage_hands_on_build";
254 if (g_Game.ConfigIsExisting(path))
255 {
256 m_DamageHandsOnBuild = g_Game.ConfigGetInt(path);
257 }
258 }
259
260 protected void InitUtilityPartInfo()
261 {
262 string path = m_PartPath + " is_utility";
263 m_IsUtilityPart = g_Game.ConfigGetInt(path);
264 }
265
266 protected void InitUtilityBuildData()
267 {
268 string path = m_PartPath + " utility_build";
270 if (g_Game.ConfigIsExisting(path))
271 {
272 g_Game.ConfigGetTextArray(path, m_UtilityAutomaticBuild);
273 }
274 }
275
277 {
278 string path = m_PartPath + " RequiredPartsVariants";
279 if (g_Game.ConfigIsExisting(path))
280 {
281 int count = g_Game.ConfigGetChildrenCount(path);
282 if (count > 0)
283 {
285 {
286 m_ReqPartVariants = new TConstructionPartVariantArray();
287
288 for (int i = 0; i < count; ++i)
289 {
290 string variantPath = "";
291 g_Game.ConfigGetChildName(path, i, variantPath);
292 variantPath = path + " " + variantPath + " partVariants";
293 array<string> tmp = new array<string>();
294 g_Game.ConfigGetTextArray(variantPath, tmp);
295 m_ReqPartVariants.Insert(tmp);
296 }
297 }
298 }
299 }
300 }
301
307
309 protected void InitPartEffectsData()
310 {
312 m_EffectsData.Init(m_PartPath, this);
313 }
314
315 protected void InitOptionalOverrides()
316 {
317 //strings
318 string path = m_PartPath + " build_text_override";
319 string tmpString = "";
320
321 if (g_Game.ConfigIsExisting(path))
322 {
323 g_Game.ConfigGetTextRaw(path, tmpString);
324 g_Game.FormatRawConfigStringKeys(tmpString);
325 }
326 m_BuildTextOverride = tmpString;
327
328 path = m_PartPath + " dismantle_text_override";
329 tmpString = "";
330 if (g_Game.ConfigIsExisting(path))
331 {
332 g_Game.ConfigGetTextRaw(path, tmpString);
333 g_Game.FormatRawConfigStringKeys(tmpString);
334 }
335 m_DismantleTextOverride = tmpString;
337 //arrays
338 //geoms
339 path = m_PartPath + " physics_geom_names";
340 m_PhxGeomNames = {};
341 if (g_Game.ConfigIsExisting(path))
342 {
343 g_Game.ConfigGetTextArray(path, m_PhxGeomNames);
344 }
345
346 path = m_PartPath + " physics_geom_behaviors_invert";
348 if (g_Game.ConfigIsExisting(path))
349 {
350 g_Game.ConfigGetIntArray(path, m_PhxGeomBehaviorInverted);
351 }
352
353 //sanity check, just in case
354 if (m_PhxGeomNames.Count() != m_PhxGeomBehaviorInverted.Count())
355 {
356 m_PhxGeomNames.Clear();
358 ErrorEx("'physics_geom_names' and 'physics_geom_behaviors_invert' counts do not match for part " + m_PartName);
359 }
361 //animSources
362 path = m_PartPath + " override_animsource_names";
364 if (g_Game.ConfigIsExisting(path))
365 {
366 g_Game.ConfigGetTextArray(path, m_AnimSourceNameOverrides);
367 }
368
369 path = m_PartPath + " override_animsource_behaviors_invert";
371 if (g_Game.ConfigIsExisting(path))
372 {
374 }
375
376 //sanity check, just in case
378 {
381 }
383 //proxy roadways
384 path = m_PartPath + " proxyroadway_names";
386 if (g_Game.ConfigIsExisting(path))
387 {
388 g_Game.ConfigGetTextArray(path, m_ProxyRoadwayNames);
389 }
390
391 path = m_PartPath + " proxyroadway_behaviors_invert";
393 if (g_Game.ConfigIsExisting(path))
394 {
395 g_Game.ConfigGetIntArray(path, m_ProxyRoadwayBehaviorInverted);
396 }
397
398 //sanity check, just in case
400 {
401 m_ProxyRoadwayNames.Clear();
403 ErrorEx("'proxyroadway_names' and 'proxyroadway_behaviors_invert' counts do not match for part " + m_PartName);
404 }
405 }
406
408 protected void InitCustomPartTypeProperties(PartTypeInitData initData);
409
411 //setters, use with caution!//
413
414 void SetCanDecayConfig(bool can)
415 {
417 }
418
420 {
423 }
424
426 //Getters//
428 string GetPartPath()
429 {
430 return m_PartPath;
431 }
432
434 {
435 return Widget.TranslateString(m_Name);
436 }
437
438 string GetPartName()
439 {
440 return m_PartName;
441 }
442
444 {
445 return m_MainPartName;
446 }
447
448 int GetId()
449 {
450 return m_Id;
451 }
452
454 {
455 return true;
456 }
457
459 {
461 }
462
464 {
465 return true;
466 }
467
469 {
470 return true;
471 }
472
474 {
475 return m_IsUtilityPart;
476 }
477
479 {
481 }
482
484 {
486 }
487
489 {
491 }
492
497
502
504 {
505 return m_ItemFallingData.Count() == 2;
506 }
507
509 {
510 return m_EssentialAttachmentSlots.Count() > 0;
511 }
512
514 {
515 return m_RelatedGUICategoryNames.Count() > 0;
516 }
517
518 bool IsBase()
519 {
520 return m_IsBase;
521 }
522
523 bool IsGate()
524 {
525 return m_IsGate;
526 }
527
532
537
543
548
554
559
564
566 {
567 return Widget.TranslateString(m_BuildTextOverride);
568 }
569
571 {
572 return Widget.TranslateString(m_DismantleTextOverride);
573 }
574
577 {
578 return m_PartName;
579 }
580
583 {
584 return m_PartName;
585 }
586
589 {
590 return m_MaterialType;
591 }
592
594 {
596 }
597
602
607
612
614 {
615 return false;
616 }
617
618 TConstructionPartVariantArray GetRequiredPartsTypeVariantArray()
619 {
620 return m_ReqPartVariants;
621 }
622
627
629 {
630 return m_StaticsData.GetSupportProvided(category);
631 }
632
634 {
635 return m_StaticsData.GetSupportRequirement(category);
636 }
637
639 {
640 return m_StaticsData.GetConfiguredSupportCategories();
641 }
642
647
652
657
662
667
673
678
683
685 //Utility//
687
690 {
692
693 if (m_BuildIndicationTypeMask & EConstructionTools.TOOL_NAIL && m_BuildIndicationTypeMask & EConstructionTools.TOOL_MOUNT_LOG)
694 m_BuildIndicationTypeMask &= ~EConstructionTools.TOOL_MOUNT_LOG;
695
696 if (m_BuildIndicationTypeMask & EConstructionTools.TOOL_DIG_BASE && m_BuildIndicationTypeMask & EConstructionTools.TOOL_EXCAVATION)
697 m_BuildIndicationTypeMask &= ~EConstructionTools.TOOL_EXCAVATION;
698 }
699
700 sealed protected void ErrorConfigUndefined(string undefinedParam, string path)
701 {
702 ErrorEx("'" + undefinedParam + "'parameter undefined for " + path);
703 }
704}
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
void ConstructionBase(EntityAI parent)
Определения ConstructionBase.c:58
ConstructionMaterialType
used to guide action sound selection, mostly. Could be also used for particles and stuff,...
Определения ConstructionBase.c:3
DayZGame g_Game
Определения DayZGame.c:4074
string path
Определения OptionSelectorMultistate.c:142
instanced data holder for single construction material
Определения ConstructionMaterials.c:3
set< int > GetPartTypeConfiguredSupportCategories()
Определения ConstructionPartTyped.c:638
string GetPartAnimSourceName()
returns AnimSource name to use in 'SetAnimationPhase'
Определения ConstructionPartTyped.c:576
void InitGuiAttachmentCategoryLinks()
which 'GUIInventoryAttachmentsProps' subclasses it relates to
Определения ConstructionPartTyped.c:239
array< string > GetPartTypeAnimSourceNameOverrides()
Определения ConstructionPartTyped.c:643
void InitPartDecayData()
Определения ConstructionPartTyped.c:199
bool HasEssentialAttachmentSlots()
Определения ConstructionPartTyped.c:508
void SanitizeBuildIndicationMask()
Solves for category icon overlaps (in vanilla configuration)
Определения ConstructionPartTyped.c:689
ref array< string > m_ConflictedPartTypes
Определения ConstructionPartTyped.c:23
ref array< string > m_InsiderBoxPairNames
Определения ConstructionPartTyped.c:25
ref array< string > m_ProxyRoadwayNames
Определения ConstructionPartTyped.c:36
void InitPartEffectsData()
'partPath' not necessary here, using part data directly, override as needed on unique part handlers
Определения ConstructionPartTyped.c:309
bool CanSimulateItemFalling()
Определения ConstructionPartTyped.c:503
int GetMaterialType()
rough material type, used for effect playback
Определения ConstructionPartTyped.c:588
ref array< string > m_RelatedGUICategoryNames
Определения ConstructionPartTyped.c:28
array< string > GetRelatedGUICategoryNames()
Определения ConstructionPartTyped.c:560
bool HasRelatedGUICategories()
Определения ConstructionPartTyped.c:513
void InitBasicStrings(PartTypeInitData partTypeData)
Определения ConstructionPartTyped.c:75
array< string > GetEssentialAttachmentSlots()
Определения ConstructionPartTyped.c:555
void InitPartTypeData(PartTypeInitData initData)
Определения ConstructionPartTyped.c:45
array< string > GetPartTypeUtilityAutobuildPartsList()
Определения ConstructionPartTyped.c:674
ref array< string > m_AnimSourceNameOverrides
Определения ConstructionPartTyped.c:38
string GetPartPath()
Определения ConstructionPartTyped.c:428
string GetPartBoneName()
returns bone name to use in 'ProxyPhysics' methods (translated to BoneIdx down the line)
Определения ConstructionPartTyped.c:582
ConstructionPartEffectsData GetPartTypeEffectsData()
Определения ConstructionPartTyped.c:679
bool CanPartDecayConfig()
Определения ConstructionPartTyped.c:478
void InitEssentialAttachmentSlots()
attachment slots somehow considered 'essential' to the part
Определения ConstructionPartTyped.c:228
void ErrorConfigUndefined(string undefinedParam, string path)
Определения ConstructionPartTyped.c:700
ref array< string > m_UtilityAutomaticBuild
Определения ConstructionPartTyped.c:40
array< string > GetItemFallingData()
strings of min/max selections (should be single points in memory LOD)
Определения ConstructionPartTyped.c:550
void InitItemFallingData()
item falling on dismantle/destruct, if configured.
Определения ConstructionPartTyped.c:188
void InitConflictedParts()
Определения ConstructionPartTyped.c:139
array< string > GetPartTypeProxyRoadwayNames()
Определения ConstructionPartTyped.c:663
int GetBuildIndicationTypeMask()
Определения ConstructionPartTyped.c:598
void InitInsiderBoxData()
'inside' box data to help determine whether the character is inside. Modelspace.
Определения ConstructionPartTyped.c:159
void SetCustomInstanceType(string name)
Определения ConstructionPartTyped.c:419
bool DamageToolOnBuild()
Определения ConstructionPartTyped.c:453
void InitUtilityPartInfo()
Определения ConstructionPartTyped.c:260
void InitRequiredPartVariants()
Определения ConstructionPartTyped.c:276
bool DamageHandsOnBuild()
Определения ConstructionPartTyped.c:458
void InitRequiredParts()
Определения ConstructionPartTyped.c:88
void InitPartMaterials()
Определения ConstructionPartTyped.c:109
string GetDismantleTextOverride()
Определения ConstructionPartTyped.c:570
int GetPartTypeSupportRequirement(int category)
Определения ConstructionPartTyped.c:633
array< string > GetInsiderBoxPairNames()
Определения ConstructionPartTyped.c:544
string m_MainPartName
Определения ConstructionPartTyped.c:6
void InitConstructionActionDamage()
if hands get damaged on build (and possibly other overrides later)
Определения ConstructionPartTyped.c:250
void InitOptionalOverrides()
Определения ConstructionPartTyped.c:315
string m_DismantleTextOverride
Определения ConstructionPartTyped.c:33
ref array< string > m_PhxGeomNames
Определения ConstructionPartTyped.c:34
float GetPartDecayRateConfig()
Определения ConstructionPartTyped.c:488
ref array< int > m_PhxGeomBehaviorInverted
Определения ConstructionPartTyped.c:35
ref array< string > m_ItemFallingData
Определения ConstructionPartTyped.c:26
ref array< string > m_RequiredPartTypes
Определения ConstructionPartTyped.c:22
array< string > GetConflictedPartTypes()
Определения ConstructionPartTyped.c:533
int GetDismantleActionTypeMask()
Определения ConstructionPartTyped.c:603
string GetPartName()
Определения ConstructionPartTyped.c:438
float m_PartDecayThresholdConfig
determined by, in sequence: 'can_decay_general' in class Construction > 'can_decay' on the part itsel...
Определения ConstructionPartTyped.c:20
float GetPartDecayThresholdConfig()
Определения ConstructionPartTyped.c:493
TConstructionPartVariantArray GetRequiredPartsTypeVariantArray()
Определения ConstructionPartTyped.c:618
array< int > GetPartTypeAnimSourceBehaviorInverts()
Определения ConstructionPartTyped.c:648
string m_BuildTextOverride
Определения ConstructionPartTyped.c:32
void InitActionMasks()
Определения ConstructionPartTyped.c:95
void InitCollisionData()
collision checks when building, if configured
Определения ConstructionPartTyped.c:147
int GetBuildActionTypeMask()
Определения ConstructionPartTyped.c:593
void SetCanDecayConfig(bool can)
Определения ConstructionPartTyped.c:414
ConstructionPartStaticsSupportData GetPartTypeStaticsSupportData()
Определения ConstructionPartTyped.c:623
array< string > GetPartTypePhxGeomNames()
Определения ConstructionPartTyped.c:653
array< ref ConstructionMaterialData > GetMaterialsData()
Определения ConstructionPartTyped.c:608
float m_PartDecayRateConfig
Определения ConstructionPartTyped.c:21
ref ConstructionPartStaticsSupportData m_StaticsData
Определения ConstructionPartTyped.c:42
int m_DismantleActionTypeMask
Определения ConstructionPartTyped.c:12
array< string > GetCollisionData()
strings of min/max selections (should be single points in memory LOD)
Определения ConstructionPartTyped.c:539
ref array< ref ConstructionMaterialData > m_MaterialsData
Определения ConstructionPartTyped.c:29
void InitCustomPartTypeProperties(PartTypeInitData initData)
Generic init method for custom part type properties.
ref array< string > m_EssentialAttachmentSlots
Определения ConstructionPartTyped.c:27
ref array< int > m_AnimSourceBehaviorOverridesInverted
Определения ConstructionPartTyped.c:39
bool DamageHandsOnDeconstruct()
Определения ConstructionPartTyped.c:468
void InitHandAnimOverride()
Определения ConstructionPartTyped.c:220
array< int > GetPartTypeProxyRoadwayBehaviorInverts()
Note, this will likely change after release, take care when modding.
Определения ConstructionPartTyped.c:669
ref array< int > m_ProxyRoadwayBehaviorInverted
Определения ConstructionPartTyped.c:37
ref array< string > m_CollisionData
Определения ConstructionPartTyped.c:24
ref TConstructionPartVariantArray m_ReqPartVariants
Определения ConstructionPartTyped.c:41
int GetPartTypeSupportProvided(int category)
Определения ConstructionPartTyped.c:628
bool m_DamageHandsOnBuild
Special helper parts with invalid IDs.
Определения ConstructionPartTyped.c:18
void InitUtilityBuildData()
Определения ConstructionPartTyped.c:266
int m_BuildIndicationTypeMask
Определения ConstructionPartTyped.c:11
int GetHandBuildFBAnimOverride()
Определения ConstructionPartTyped.c:498
bool DamageToolOnDeconstruct()
Определения ConstructionPartTyped.c:463
void InitMaterialType()
Определения ConstructionPartTyped.c:129
string GetNameLocalized()
Определения ConstructionPartTyped.c:433
ref ConstructionPartEffectsData m_EffectsData
Определения ConstructionPartTyped.c:43
void InitStaticsSupportPartData()
Определения ConstructionPartTyped.c:302
array< string > GetRequiredPartTypes()
Определения ConstructionPartTyped.c:528
string GetMainPartName()
Определения ConstructionPartTyped.c:443
array< int > GetPartTypePhxGeomBehaviorInverts()
Определения ConstructionPartTyped.c:658
bool m_CanPartDecayConfig
Определения ConstructionPartTyped.c:19
string GetBuildTextOverride()
Определения ConstructionPartTyped.c:565
static parts info, lives on EntityType level. Instanced data in 'ConstructionPart' class
Определения ConstructionPartTyped.c:3
Определения EnMath.c:7
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
enum ShapeType ErrorEx
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.