/* * @brief Parse unit from xml */ private bool ParseUnitTemplateData( XmlNode _UnitNode , out UnitTemplateData _Data ) { _Data = new UnitTemplateData() ; if( null == _UnitNode.Attributes[ "unitDataTemplateName" ] ) return false ; _Data.unitDataTemplateName = _UnitNode.Attributes[ "unitDataTemplateName" ].Value ; if( null != _UnitNode.Attributes[ "unitDataGUITextureName" ] ) _Data.unitDataGUITextureName = _UnitNode.Attributes[ "unitDataGUITextureName" ].Value ; if( null != _UnitNode.Attributes[ "UnitDisplayNameIndex" ] ) { string UnitDisplayNameIndexStr = _UnitNode.Attributes[ "UnitDisplayNameIndex" ].Value ; int.TryParse( UnitDisplayNameIndexStr , out _Data.unitDisplayNameIndex ) ; } for( int i = 0 ; i < _UnitNode.ChildNodes.Count ; ++i ) { if( -1 != _UnitNode.ChildNodes[ i ].Name.IndexOf( "comment" ) ) { // comment } else if( "AddComponent" == _UnitNode.ChildNodes[ i ].Name ) { if( null != _UnitNode.ChildNodes[ i ].Attributes["name"] ) { _Data.m_AddComponentList.Add( _UnitNode.ChildNodes[ i ].Attributes["name"].Value ) ; } } else if( "Component" == _UnitNode.ChildNodes[ i ].Name ) { // parse compoent UnitComponentData componentData ; if( true == ParseComponent( _UnitNode.ChildNodes[ i ] , out componentData ) ) { _Data.unitComponents.Add( componentData ) ; } } else { // Debug.Log( "_UnitNode.ChildNodes[ i ]" + _UnitNode.ChildNodes[ i ].Name ) ; // parse standard parameter string name ; StandardParameter param ; if( true == XMLParseLevelUtility.ParseStandardParameter( _UnitNode.ChildNodes[ i ] , out name , out param ) ) { _Data.standardParameters.Add( name ,param ) ; } } } return true ; }
public UnitTemplateData( UnitTemplateData _src ) { unitDataTemplateName = _src.unitDataTemplateName ; unitDataGUITextureName = _src.unitDataGUITextureName ; unitDisplayNameIndex = _src.unitDisplayNameIndex ; standardParameters = _src.standardParameters ; unitComponents = _src.unitComponents ; m_AddComponentList = _src.m_AddComponentList ; }