class ConstructionPart { string m_Name; //localized text name that is displayed ingame 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) string m_PartName; //config class name string m_MainPartName; //main (parent) config class name bool m_IsBuilt; //defines part build state bool m_IsBase; //defines if this part is the foundation of the whole construction bool m_IsGate; //defines part gate state ref array m_RequiredParts; //list of parts required by this part void ConstructionPart( string name, string part_name, string main_part_name, int id, bool is_built, bool is_base, bool is_gate, array required_parts ) { m_Name = name; m_PartName = part_name; m_MainPartName = main_part_name; m_Id = id; m_IsBuilt = is_built; m_IsBase = is_base; m_IsGate = is_gate; m_RequiredParts = required_parts; } string GetName() { string ret = Widget.TranslateString(m_Name); return ret; } string GetPartName() { return m_PartName; } string GetMainPartName() { return m_MainPartName; } int GetId() { return m_Id; } bool IsBuilt() { return m_IsBuilt; } void SetBuiltState( bool is_built ) { if (LogManager.IsBaseBuildingLogEnable()) bsbDebugPrint("[bsb] SetBuildState=" + is_built + " part=" + m_PartName); m_IsBuilt = is_built; } void SetRequestBuiltState( bool req_built ) { if (LogManager.IsBaseBuildingLogEnable()) bsbDebugPrint("[bsb] SetRequestBuiltState=" + req_built + " part=" + m_PartName); if (GetGame().IsMultiplayer()) SetBuiltState(req_built); else ; // skip set to true in single player - will be synced later } bool IsBase() { return m_IsBase; } bool IsGate() { return m_IsGate; } array GetRequiredParts() { return m_RequiredParts; } }