DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ UpdateConstructionParts()

void UpdateConstructionParts ( )
protected

Parse type data and create part instance data objects.

См. определение в файле ConstructionBase.c строка 517

518 {
519 m_ConstructionParts.Clear();
522
523 EntityAIType entityType;
525 if (Class.CastTo(entityType, m_EntityParent.GetEntityType()) && Class.CastTo(holder, entityType.GetConstructionDataHolderBasic()))
526 {
528 foreach (ConstructionPartTypeData typeData : partTypesArray)
529 {
530 ConstructionPart part;
531 typename customInstanceTypename = typeData.GetCustomInstanceType();
532 if (!customInstanceTypename || !Class.CastTo(part, CreatePartInstanceObject(customInstanceTypename)))
533 {
534 //parameters are purely optional at this point, all config data is cached on entity type level
536 }
537
538 part.SetPartTypeData(typeData);
540 initData.m_ParentEnt = m_EntityParent;
541 part.InitAdditionalPartInstanceInfo(initData);
542
543 m_ConstructionParts.Insert(typeData.GetPartName(), part);
544 m_ConstructionPartArray.Insert(part);
545 m_AnyPartBuildableByHands |= part.GetBuildIndicationTypeMask() & EConstructionTools.TOOL_HANDS;
546 }
547 }
548 }
bool m_AnyPartBuildableByHands
Определения ConstructionBase.c:46
ref array< ConstructionPart > m_ConstructionPartArray
INSTANCED construction part data;.
Определения ConstructionBase.c:43
ref array< ConstructionPart > m_BuiltConstructionPartArray
Определения ConstructionBase.c:44
ConstructionPart CreatePartInstanceObject(typename partTypename)
Определения ConstructionBase.c:550
GetDefaultPartInstanceTypename()
Override on lower implements to create desired part types.
Определения ConstructionBase.c:556
EntityAI m_EntityParent
Определения ConstructionBase.c:45
Super root of all classes in Enforce script.
Определения EnScript.c:11
array< ConstructionPartTypeData > GetConstructionPartTypeDataArray()
Определения ConstructionPartTypedHolder.c:115
holder object for entity type-level parts info
Определения ConstructionPartTypedHolder.c:3
void InitAdditionalPartInstanceInfo(PartInstanceInitData initData)
intended to fill in additional INSTANCE info AFTER basic info is filled (which is tied to constructor...
int GetBuildIndicationTypeMask()
Определения ConstructionPart.c:336
void SetPartTypeData(ConstructionPartTypeData ptd)
Определения ConstructionPart.c:395
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
ConstructionDataTypeHolderBasic GetConstructionDataHolderBasic()
Cast to 'ConstructionDataTypeHolder' before using in higher modules.
Определения EntityAIType.c:82
Определения EntityAIType.c:2
EntityAI m_ParentEnt
Определения ConstructionInitData.c:4
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.

Перекрестные ссылки Class::CastTo(), CreatePartInstanceObject(), ConstructionPart::GetBuildIndicationTypeMask(), EntityAIType::GetConstructionDataHolderBasic(), ConstructionDataTypeHolder::GetConstructionPartTypeDataArray(), GetDefaultPartInstanceTypename(), ConstructionPart::InitAdditionalPartInstanceInfo(), m_AnyPartBuildableByHands, m_BuiltConstructionPartArray, m_ConstructionPartArray, m_EntityParent, PartInstanceInitData::m_ParentEnt и ConstructionPart::SetPartTypeData().

Используется в Construction::Init() и Init().