public Component AddComponent(ComponentData component_data) { int component_type_id = component_data.m_component_type_id; if (!IsSuitableComponent(component_type_id)) { return(null); } Component component = ComponentTypeRegistry.CreateComponent(component_type_id); if (component == null) { return(null); } component.ParentObject = this; component.ComponentTypeID = component_type_id; m_components[component_type_id] = component; if (component_data.m_component_variables != null) { component.InitializeVariable(component_data.m_component_variables); } return(component); }