DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Rebuilding.c
См. документацию.
2{
4
5 protected int m_LastStorageVersion;
6
7 protected int m_SyncParts1;
8 protected int m_SyncParts2;
9 protected int m_SyncParts3;
10 protected int m_SyncParts4;
11 protected int m_SyncParts5;
12 protected int m_SyncParts6;
13 protected int m_SyncParts7;
14 protected int m_SyncParts8;
15 protected int m_SyncParts9;
16 protected int m_SyncParts10;
17 protected int m_SyncParts1Local;
18 protected int m_SyncParts2Local;
19 protected int m_SyncParts3Local;
20 protected int m_SyncParts4Local;
21 protected int m_SyncParts5Local;
22 protected int m_SyncParts6Local;
23 protected int m_SyncParts7Local;
24 protected int m_SyncParts8Local;
25 protected int m_SyncParts9Local;
26 protected int m_SyncParts10Local;
27
30
31 //BuildPart
32 override void BuildPartServerEx(Man player, string part_name, int action_id)
33 {
34 super.BuildPartServerEx(player,part_name,action_id);
35
36 ProcessOnPartBuiltServer(player, part_name, action_id);
37 }
38
39 //DismantlePart
40 override void DismantlePartServerEx(Man player, string part_name, int action_id)
41 {
42 super.DismantlePartServerEx(player,part_name,action_id);
43
44 ProcessOnPartDismantledServer(player, part_name, action_id);
45 }
46
47 //DestroyPart
48 override void DestroyPartServer(Man player, string part_name, int action_id, bool destroyed_by_connected_part = false)
49 {
50 //set DamageZone health to zero
51 string damage_zone;
52 if (DamageSystem.GetDamageZoneFromComponentName(m_EntityParent, part_name, damage_zone) && m_EntityParent.GetHealth(damage_zone, "Health") > 0)
53 {
54 m_EntityParent.SetHealth(damage_zone, "Health", 0);
55 }
56
57 super.DestroyPartServer(player,part_name,action_id,destroyed_by_connected_part);
58
59 ProcessOnPartDestroyedServer(player, part_name, action_id, destroyed_by_connected_part);
60 }
61
62 //============================================
63 // Syncing
64 //============================================
65
67 {
68 super.OnConstructionVariablesSynchronized();
69
71 }
72
73 protected void HandleSyncedParts()
74 {
75 bool changed = false;
77 {
79 changed = true;
80 }
82 {
84 changed = true;
85 }
87 {
89 changed = true;
90 }
92 {
94 changed = true;
95 }
97 {
99 changed = true;
100 }
102 {
104 changed = true;
105 }
107 {
109 changed = true;
110 }
112 {
114 changed = true;
115 }
117 {
119 changed = true;
120 }
122 {
124 changed = true;
125 }
126
127 //do local client stuff here
128 if (changed)
129 {
131 if (SetAllPartsFromSyncData(changedParts))
132 {
133 QueueFullUpdateParts(changedParts);
134 }
135 changedParts = null;
136 }
137 }
138
140 {
141 int partId = part.GetId();
142 if (partId <= 0)
143 return;
144
145 //in case of variable part sync data sizes, prepare some map with info to be used in the switch. Sadly the syncVariables themselves can't be handled as such.
146 int adjustedID = Math.Clamp((partId - 1), 0, int.MAX) * part.GetSyncDataSize();
147 int syncIntIdx = adjustedID / BIT_INT_SIZE;
148 int offset = adjustedID % BIT_INT_SIZE;
149
150 switch (syncIntIdx)
151 {
152 case 0:
154 break;
155
156 case 1:
158 break;
159
160 case 2:
162 break;
163
164 case 3:
166 break;
167
168 case 4:
170 break;
171
172 case 5:
174 break;
175
176 case 6:
178 break;
179
180 case 7:
182 break;
183
184 case 8:
186 break;
187
188 case 9:
190 break;
191 }
192 }
193
195 {
196 int partId = part.GetId();
197 if (partId <= 0)
198 return;
199
200 int adjustedID = Math.Clamp((partId - 1), 0, int.MAX) * part.GetSyncDataSize();
201 int syncIntIdx = adjustedID / BIT_INT_SIZE;
202 int offset = adjustedID % BIT_INT_SIZE;
203
204 switch (syncIntIdx)
205 {
206 case 0:
208 break;
209
210 case 1:
212 break;
213
214 case 2:
216 break;
217
218 case 3:
220 break;
221
222 case 4:
224 break;
225
226 case 5:
228 break;
229
230 case 6:
232 break;
233
234 case 7:
236 break;
237
238 case 8:
240 break;
241
242 case 9:
244 break;
245 }
246 }
247
249 {
250 int partId = part.GetId();
251 if (partId <= 0)
252 return;
253
254 int adjustedID = Math.Clamp((partId - 1), 0, int.MAX) * part.GetSyncDataSize();
255 int syncIntIdx = adjustedID / BIT_INT_SIZE;
256 int offset = adjustedID % BIT_INT_SIZE;
257
258 switch (syncIntIdx)
259 {
260 case 0:
262 break;
263
264 case 1:
266 break;
267
268 case 2:
270 break;
271
272 case 3:
274 break;
275
276 case 4:
278 break;
279
280 case 5:
282 break;
283
284 case 6:
286 break;
287
288 case 7:
290 break;
291
292 case 8:
294 break;
295
296 case 9:
298 break;
299 }
300 }
301
304 {
305 int partId = part.GetId();
306 if (partId <= 0)
307 return false;
308
309 int adjustedID = Math.Clamp((partId - 1), 0, int.MAX) * part.GetSyncDataSize();
310 int syncIntIdx = adjustedID / BIT_INT_SIZE;
311 int offset = adjustedID % BIT_INT_SIZE;
312 int tmp;
313
314 switch (syncIntIdx)
315 {
316 case 0:
317 tmp = m_SyncParts1;
318 break;
319
320 case 1:
321 tmp = m_SyncParts2;
322 break;
323
324 case 2:
325 tmp = m_SyncParts3;
326 break;
327
328 case 3:
329 tmp = m_SyncParts4;
330 break;
331
332 case 4:
333 tmp = m_SyncParts5;
334 break;
335
336 case 5:
337 tmp = m_SyncParts6;
338 break;
339
340 case 6:
341 tmp = m_SyncParts7;
342 break;
343
344 case 7:
345 tmp = m_SyncParts8;
346 break;
347
348 case 8:
349 tmp = m_SyncParts9;
350 break;
351
352 case 9:
353 tmp = m_SyncParts10;
354 break;
355 }
356
357 return part.CalculateLocalSyncBitMask(tmp, offset);
358 }
359
362 {
363 bool wasChanged = false;
364
366 {
367 if (UpdatePartSyncStateLocal(part))
368 {
369 if (changedParts)
370 changedParts.Insert(part);
371 wasChanged = true;
372 }
373 }
374
375 return wasChanged;
376 }
377
380 {
381 if (part.GetId() < 1)
382 {
383 if (!part.IsUtilityPart())
384 ErrorEx("invalid or corrupted part ID for part " + part.GetPartName() + ". Part ID must be > 0");
385 return false;
386 }
387
388 part.StoreLocalSyncBitMask(GetPartLocalSyncBitMaskValue(part)); //stores translated synced info on the local part instance
389 return SetPartStateLocal(part);
390 }
391
393 {
394 bool changed = false;
395 bool isSyncedAsBuilt = part.IsLocalSyncBuilt();
396 bool isBuilt = part.IsBuilt();
397 string name = part.GetPartName();
398 if (isSyncedAsBuilt)
399 {
400 if (!isBuilt)
401 {
404 changed = true;
405 }
406 }
407 else
408 {
409 if (isBuilt)
410 {
413 changed = true;
414 }
415 }
416
417 return changed;
418 }
419
420 override void AddToConstructedParts(string part_name)
421 {
424
425 super.AddToConstructedParts(part_name);
426 }
427
428 override void RemoveFromConstructedParts(string part_name)
429 {
432
433 super.RemoveFromConstructedParts(part_name);
434 }
435
436 //============================================
437 // Events
438 //============================================
440 {
441 super.OnConstructionDoorOpenStart(params);
442
443 int doorIdx = (int)params.param1;
444 BuildingBase building;
446 if (Class.CastTo(building, m_EntityParent) && Class.CastTo(info, building.GetDoorInfo(doorIdx)) && info.m_DoorConstructionPhysicsSource != string.Empty)
447 {
448 building.SetAnimationPhase(info.m_DoorConstructionPhysicsSource, 1.0);
449 }
450 }
451
453 {
454 super.OnConstructionDoorCloseStart(params);
455
456 int doorIdx = (int)params.param1;
457 BuildingBase building;
459 if (Class.CastTo(building, m_EntityParent) && Class.CastTo(info, building.GetDoorInfo(doorIdx)) && info.m_DoorConstructionPhysicsSource != string.Empty)
460 {
461 building.SetAnimationPhase(info.m_DoorConstructionPhysicsSource, 0.0);
462 }
463 }
464
465 //============================================
466 // Persistence
467 //============================================
468 override bool HandleStorageEvents()
469 {
470 return true;
471 }
472
474 {
476 {
477 super.HandleStoreSave(ctx);
478
480 }
481 }
482
483 override void HandleStoreLoad(ParamsReadContext ctx, int version)
484 {
486 {
487 super.HandleStoreLoad(ctx,version);
488
489 if (!DeserializeConstructionData(ctx,version))
490 ErrorEx("deserialization of construction data of " + m_EntityParent.GetType() + " FAILED, presumed corrupted data",ErrorExSeverity.INFO);
491
492 //true if changed, we need to react to and sync the changes to clients
494 {
496 }
497 m_EntityParent.SetSynchDirty();
498 }
499 }
500
502 {
504 ctx.Write(m_SyncParts1);
505 ctx.Write(m_SyncParts2);
506 ctx.Write(m_SyncParts3);
507 ctx.Write(m_SyncParts4);
508 ctx.Write(m_SyncParts5);
509 ctx.Write(m_SyncParts6);
510 ctx.Write(m_SyncParts7);
511 ctx.Write(m_SyncParts8);
512 ctx.Write(m_SyncParts9);
513 ctx.Write(m_SyncParts10);
514 }
515
516 protected bool DeserializeConstructionData(ParamsReadContext ctx, int version)
517 {
518 if (!ctx.Read(m_LastStorageVersion))
519 return false;
521 {
522 ErrorEx("Invalid rebuilding storage version | " + m_LastStorageVersion + "/" + REBUILDING_STORAGE_VERSION, ErrorExSeverity.INFO);
523 return false;
524 }
525
526 if (!ctx.Read(m_SyncParts1))
527 return false;
528 if (!ctx.Read(m_SyncParts2))
529 return false;
530 if (!ctx.Read(m_SyncParts3))
531 return false;
532 if (!ctx.Read(m_SyncParts4))
533 return false;
534 if (!ctx.Read(m_SyncParts5))
535 return false;
536 if (!ctx.Read(m_SyncParts6))
537 return false;
538 if (!ctx.Read(m_SyncParts7))
539 return false;
540 if (!ctx.Read(m_SyncParts8))
541 return false;
542 if (!ctx.Read(m_SyncParts9))
543 return false;
544 if (!ctx.Read(m_SyncParts10))
545 return false;
546
547 return true;
548 }
549
550 //============================================
551 // Inits
552 //============================================
553 override void Init()
554 {
555 super.Init();
556
558 }
559
564
565 override void InitBaseState()
566 {
568 }
569
570 protected void InitSupportMap()
571 {
574
577 }
578
579 override protected typename GetDefaultPartInstanceTypename()
580 {
581 return ConstructionPartRebuild;
582 }
583
584 //============================================
585 // Parts
586 //============================================
587 protected ConstructionPartRebuild GetRebuildingPart(string part_name)
588 {
589 return ConstructionPartRebuild.Cast(GetConstructionPart(part_name));
590 }
591
593 override protected bool HasRequiredPart(string part_name)
594 {
595 //simple requirements check
596 if (!super.HasRequiredPart(part_name))
597 return false;
598
599 //now look into weighted variants
600 TConstructionPartVariantArray tmp = GetRebuildingPart(part_name).GetRequiredPartsVariants();
601 if (tmp)
602 {
603 bool anyVariantBuilt = false;
604 foreach (array<string> variantGroup : tmp)
605 {
606 anyVariantBuilt = false;
607 foreach (string partName : variantGroup)
608 {
609 anyVariantBuilt |= IsPartConstructed(partName);
610 }
611
612 if (!anyVariantBuilt)
613 return false;
614 }
615 }
616
617 return true;
618 }
619
621 //supports//
623
624 override protected bool PartHasAnySupportFulfilled(string part_name)
625 {
626 if (!super.PartHasAnySupportFulfilled(part_name))
627 return false;
628
629 ConstructionPartRebuild rebPart = GetRebuildingPart(part_name);
630 set<int> tmp = rebPart.GetConfiguredSupportCategories();
631 if (tmp.Count() > 0) //can fail only if some support category is defined
632 {
633 foreach (int category : tmp)
634 {
635 if (rebPart.GetSupportRequirement(category) <= m_SupportFulfillment.Get(category))
636 return true;
637 }
638
639 return false;
640 }
641
642 return true;
643 }
644
645 override bool SupportRemovalCheck(string part_name)
646 {
647 ConstructionPartRebuild rebPart = GetRebuildingPart(part_name);
648 set<int> tmp = rebPart.GetConfiguredSupportCategories();
649 foreach (int category : tmp)
650 {
651 if (m_SupportRequirement.Get(category) > (m_SupportFulfillment.Get(category) - rebPart.GetSupportProvided(category)))
652 return false;
653 }
654
655 return true;
656 }
657
658 protected void AddSupportFulfillmentFromSourcePart(string part_name)
659 {
660 ConstructionPartRebuild rebPart = GetRebuildingPart(part_name);
661 set<int> tmp = rebPart.GetConfiguredSupportCategories();
662 int value;
663 foreach (int category : tmp)
664 {
665 value = rebPart.GetSupportProvided(category);
666 if (m_SupportFulfillment.Contains(category))
667 {
668 value = Math.Clamp(m_SupportFulfillment.Get(category) + value, 0, int.MAX);
669 }
670 m_SupportFulfillment.Set(category, value);
671 }
672 }
673
674 protected void RemoveSupportFulfillmentFromSourcePart(string part_name)
675 {
676 ConstructionPartRebuild rebPart = GetRebuildingPart(part_name);
677 set<int> tmp = rebPart.GetConfiguredSupportCategories();
678 int value;
679 foreach (int category : tmp)
680 {
681 value = rebPart.GetSupportProvided(category);
682 if (m_SupportFulfillment.Contains(category))
683 {
684 value = Math.Clamp(m_SupportFulfillment.Get(category) - value, 0, int.MAX);
685 }
686 m_SupportFulfillment.Set(category, value);
687 }
688 }
689
690 protected void AddSupportRequirementFromSourcePart(string part_name)
691 {
692 ConstructionPartRebuild rebPart = GetRebuildingPart(part_name);
693 //skipping utility part requirement propagation
694 if (rebPart.IsUtilityPart())
695 return;
696
697 set<int> tmp = rebPart.GetConfiguredSupportCategories();
698 int value;
699 foreach (int category : tmp)
700 {
701 value = rebPart.GetSupportRequirement(category);
702 if (m_SupportRequirement.Contains(category))
703 {
704 value = Math.Clamp(m_SupportRequirement.Get(category) + value, 0, int.MAX);
705 }
706 m_SupportRequirement.Set(category, value);
707 }
708 }
709
710 protected void RemoveSupportRequirementFromSourcePart(string part_name)
711 {
712 ConstructionPartRebuild rebPart = GetRebuildingPart(part_name);
713 //skipping utility part requirement propagation
714 if (rebPart.IsUtilityPart())
715 return;
716
717 set<int> tmp = rebPart.GetConfiguredSupportCategories();
718 int value;
719 foreach (int category : tmp)
720 {
721 value = rebPart.GetSupportRequirement(category);
722 if (m_SupportRequirement.Contains(category))
723 {
724 value = Math.Clamp(m_SupportRequirement.Get(category) - value, 0, int.MAX);
725 }
726 m_SupportRequirement.Set(category, value);
727 }
728 }
729
730 override bool HasDependentPart(string part_name)
731 {
732 ConstructionPartRebuild rebPart;
734 {
735 if (Class.CastTo(rebPart, part) && !rebPart.IsUtilityPart())
736 {
737 if (rebPart.GetRequiredParts().Find(part_name) != -1)
738 return true;
739
740 TConstructionPartVariantArray tmpArr = rebPart.GetRequiredPartsVariants();
741 if (tmpArr)
742 {
743 foreach (array<string> variantGroup : tmpArr)
744 {
745 foreach (string partName : variantGroup)
746 {
747 if (partName == part_name) //part_name needed
748 return true;
749 }
750 }
751 }
752 }
753 }
754
755 return false;
756 }
757
758 override protected array<string> GetValidDepenentPartsArray(string part_name, array<string> recurs = null)
759 {
760 string name = "";
761 array<string> dependentParts = new array<string>();
762
763 ConstructionPartRebuild rebPart;
765 {
766 if (Class.CastTo(rebPart, part))
767 {
768 name = rebPart.GetPartName();
769 array<string> reqPartsArray = rebPart.GetRequiredParts();
770 if (reqPartsArray && reqPartsArray.Find(part_name) > -1)
771 {
772 if (!recurs || (recurs.Find(name) == -1))
773 dependentParts.Insert(name);
774 }
775
776 TConstructionPartVariantArray tmpArr = rebPart.GetRequiredPartsVariants();
777 if (tmpArr)
778 {
779 foreach (array<string> variantGroup : tmpArr)
780 {
781 foreach (string partName : variantGroup)
782 {
783 if (partName == part_name) //part_name needed
784 dependentParts.Insert(name);
785 }
786 }
787 }
788
789 if (!PartHasAnySupportFulfilled(name) && dependentParts.Find(name) == -1)
790 {
791 dependentParts.Insert(name);
792 }
793 }
794 }
795
796 return dependentParts;
797 }
798
799 //============================================
800 //UI-related getters
801 //============================================
803 override bool CanDisplayAttachmentCategoryConstruction(string categoryName)
804 {
805 if (!super.CanDisplayAttachmentCategoryConstruction(categoryName))
806 return false;
807
808 array<ConstructionPartTypeData> GUIRequiredParts = m_TypeLevelHolder.GetGuiRequiredPartTypesMap().Get(categoryName);
809 if (GUIRequiredParts.Count() > 0)
810 {
811 foreach (ConstructionPartTypeData partTypeData : GUIRequiredParts)
812 {
813 if (!GetConstructionPart(partTypeData.GetPartName()).IsBuilt())
814 return false;
815 }
816 }
817
818 //legacy dependency check, just in case
819 ConstructionPartRebuild rebPart = GetRebuildingPart(categoryName);
820 if (rebPart)
821 {
822 if (!rebPart.IsBuilt() || !HasRequiredPart(rebPart.GetPartName()))
823 return false;
824 }
825
826 return true;
827 }
828}
Param1< int > DoorStartParams
Определения 3_Game/DayZ/Entities/Building.c:1
ActionOverrideData int
void BuildingBase()
ConstructionPart GetConstructionPart()
Определения ActionPartInfo.c:235
const int BIT_INT_SIZE
Определения BitArray.c:4
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
void ConstructionBase(EntityAI parent)
Определения ConstructionBase.c:58
void ProcessOnPartDestroyedServer(Man player, string part_name, int action_id, bool destroyed_by_connected_part=false)
Определения ConstructionBase.c:419
ConstructionDataTypeHolder m_TypeLevelHolder
Sandstorm decay speed coef.
Определения ConstructionBase.c:41
void ProcessOnPartDismantledServer(Man player, string part_name, int action_id)
Определения ConstructionBase.c:405
void ProcessOnPartBuiltServer(Man player, string part_name, int action_id)
Определения ConstructionBase.c:379
ref array< ConstructionPart > m_ConstructionPartArray
INSTANCED construction part data;.
Определения ConstructionBase.c:43
bool IsPartConstructed(string part_name)
returns true if part constructed
Определения ConstructionBase.c:1068
ref array< ConstructionPart > m_BuiltConstructionPartArray
Определения ConstructionBase.c:44
void QueueFullUpdateParts(array< ConstructionPart > changedParts)
Определения ConstructionBase.c:562
EntityAI m_EntityParent
Определения ConstructionBase.c:45
void SetLockOnAttachedMaterials(string part_name, bool lock_slot)
Определения ConstructionBase.c:1383
DayZGame g_Game
Определения DayZGame.c:4074
const int MAX
Определения EnConvert.c:27
string m_DoorConstructionPhysicsSource
Name of the construction part linked to the doors, if any (empty default)
Определения AdditionalDoorsInfo.c:10
Single door info.
Определения AdditionalDoorsInfo.c:3
Super root of all classes in Enforce script.
Определения EnScript.c:11
int GetId()
Определения ConstructionPart.c:208
int GetSyncDataSize()
Not ready for overrides yet. All in good time.
Определения ConstructionPart.c:65
void ComposeSyncDataOnDismantle(inout int syncData, int offset)
Определения ConstructionPart.c:79
string GetPartName()
Определения ConstructionPart.c:198
int CalculateLocalSyncBitMask(int syncData, int offset)
Translates the bitmask value from the main syncVariable into simple int format of 'GetSyncDataSize' s...
Определения ConstructionPart.c:135
bool IsBuilt()
Определения ConstructionPart.c:160
bool IsLocalSyncBuilt()
'true' if synced as built already
Определения ConstructionPart.c:166
void ComposeSyncDataOnDestroy(inout int syncData, int offset)
Определения ConstructionPart.c:88
bool IsUtilityPart()
Определения ConstructionPart.c:233
void ComposeSyncDataOnBuild(inout int syncData, int offset)
Определения ConstructionPart.c:70
void StoreLocalSyncBitMask(int bitmask)
Определения ConstructionPart.c:147
Instanced construction part data classes for dynamic data, statics now stored on EntityType level in ...
Определения ConstructionPart.c:4
static parts info, lives on EntityType level. Instanced data in 'ConstructionPart' class
Определения ConstructionPartTyped.c:3
Определения EnMath.c:7
void InitSupportMap()
Определения Rebuilding.c:570
int m_SyncParts1Local
Определения Rebuilding.c:17
override void AddToConstructedParts(string part_name)
Определения Rebuilding.c:420
int m_SyncParts10
Определения Rebuilding.c:16
void RemoveSupportRequirementFromSourcePart(string part_name)
Определения Rebuilding.c:710
bool DeserializeConstructionData(ParamsReadContext ctx, int version)
Определения Rebuilding.c:516
override void OnConstructionDoorCloseStart(DoorStartParams params)
Определения Rebuilding.c:452
int m_SyncParts4
Определения Rebuilding.c:10
override bool HandleStorageEvents()
Определения Rebuilding.c:468
override void HandleSyncDataDismantle(ConstructionPart part)
Определения Rebuilding.c:194
override bool SupportRemovalCheck(string part_name)
Определения Rebuilding.c:645
int m_LastStorageVersion
Определения Rebuilding.c:5
int m_SyncParts3Local
Определения Rebuilding.c:19
override void HandleSyncDataDestroy(ConstructionPart part)
Определения Rebuilding.c:248
ref map< int, int > m_SupportFulfillment
Определения Rebuilding.c:29
int m_SyncParts6
Определения Rebuilding.c:12
override void OnConstructionVariablesSynchronized()
Определения Rebuilding.c:66
override void DestroyPartServer(Man player, string part_name, int action_id, bool destroyed_by_connected_part=false)
Определения Rebuilding.c:48
bool HasRequiredPart(string part_name)
Also checks for all listed variant categories (at least 1 from each is required)
Определения Rebuilding.c:593
override bool UpdatePartSyncStateLocal(ConstructionPart part)
Sets local construction part state.
Определения Rebuilding.c:379
ref map< int, int > m_SupportRequirement
Определения Rebuilding.c:28
bool SetAllPartsFromSyncData(out array< ConstructionPart > changedParts=null)
returns 'true' if any part state was changed
Определения Rebuilding.c:361
int m_SyncParts1
Определения Rebuilding.c:7
int m_SyncParts6Local
Определения Rebuilding.c:22
override void RemoveFromConstructedParts(string part_name)
Определения Rebuilding.c:428
int m_SyncParts3
Определения Rebuilding.c:9
GetDefaultPartInstanceTypename()
Определения Rebuilding.c:579
override void HandleSyncDataBuild(ConstructionPart part)
Определения Rebuilding.c:139
int m_SyncParts8Local
Определения Rebuilding.c:24
int m_SyncParts9
Определения Rebuilding.c:15
void AddSupportFulfillmentFromSourcePart(string part_name)
Определения Rebuilding.c:658
int m_SyncParts9Local
Определения Rebuilding.c:25
void AddSupportRequirementFromSourcePart(string part_name)
Определения Rebuilding.c:690
int m_SyncParts7
Определения Rebuilding.c:13
override bool CanDisplayAttachmentCategoryConstruction(string categoryName)
client-side distance checks (valid memory point and configuration required)
Определения Rebuilding.c:803
override void OnConstructionDoorOpenStart(DoorStartParams params)
Определения Rebuilding.c:439
override void Init()
Определения Rebuilding.c:553
bool PartHasAnySupportFulfilled(string part_name)
Определения Rebuilding.c:624
int m_SyncParts8
Определения Rebuilding.c:14
override void BuildPartServerEx(Man player, string part_name, int action_id)
Определения Rebuilding.c:32
override void HandleStoreSave(ParamsWriteContext ctx)
Определения Rebuilding.c:473
int m_SyncParts10Local
Определения Rebuilding.c:26
void RemoveSupportFulfillmentFromSourcePart(string part_name)
Определения Rebuilding.c:674
ConstructionPartRebuild GetRebuildingPart(string part_name)
Определения Rebuilding.c:587
int m_SyncParts2Local
Определения Rebuilding.c:18
int m_SyncParts5Local
Определения Rebuilding.c:21
int m_SyncParts2
Определения Rebuilding.c:8
override bool HasDependentPart(string part_name)
Определения Rebuilding.c:730
override void DismantlePartServerEx(Man player, string part_name, int action_id)
Определения Rebuilding.c:40
int m_SyncParts5
Определения Rebuilding.c:11
override void InitBaseState()
Определения Rebuilding.c:565
void HandleSyncedParts()
Определения Rebuilding.c:73
array< string > GetValidDepenentPartsArray(string part_name, array< string > recurs=null)
Определения Rebuilding.c:758
void SerializeConstructionData(ParamsWriteContext ctx)
Определения Rebuilding.c:501
int GetPartLocalSyncBitMaskValue(ConstructionPart part)
Returns the translated value of 'GetSyncDataSize' size (currently 2 bits)
Определения Rebuilding.c:303
bool SetPartStateLocal(ConstructionPart part)
Определения Rebuilding.c:392
void InitBaseStateDeferred()
Определения Rebuilding.c:560
int m_SyncParts4Local
Определения Rebuilding.c:20
static int REBUILDING_STORAGE_VERSION
Определения Rebuilding.c:3
override void HandleStoreLoad(ParamsReadContext ctx, int version)
Определения Rebuilding.c:483
int m_SyncParts7Local
Определения Rebuilding.c:23
Определения Rebuilding.c:2
proto bool Write(void value_out)
proto bool Read(void value_in)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения Transport.c:70
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
ErrorExSeverity
Определения EnDebug.c:62
enum ShapeType ErrorEx
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
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'.
static const string Empty
Определения EnString.c:7
const int CALL_CATEGORY_SYSTEM
Определения 3_Game/DayZ/tools/tools.c:8