예제 #1
0
	IEnumerator SetModeling()
	{
		AsLoadingIndigator.Instance.ShowIndigator( string.Empty);

		while( false == AsEntityManager.Instance.gameObject.active)
			yield return null;
		
		ReleaseModeling();
		
		eRACE race = (eRACE)AsCharacterCreateFramework.curRace;
		eCLASS job = (eCLASS)AsCharacterCreateFramework.curJob;
		eGENDER gender = (eGENDER)AsCharacterCreateFramework.curGender;
		
		sCHARVIEWDATA viewData = new sCHARVIEWDATA();
		viewData.eRace = race;
		viewData.eClass = job;
		viewData.eGender = gender;
		
		m_CharCreateGenderData = AsTableManager.Instance.GetTbl_CreateCharacter_GenderData( race, job, gender);
		if( null == m_CharCreateGenderData)
			Debug.LogError( "AsCustomizingPanel::SetModeling()[ con't find m_CharCreateGenderData ] race : " + race + " job : "+ job +" gender : " +gender);
		
		m_CharCreateClassData = AsTableManager.Instance.GetTbl_CreateCharacter_ClassData( race, job);
		if( null == m_CharCreateClassData)
			Debug.LogError( "AsCustomizingPanel::SetModeling()[ con't find m_CharCreateClassData ] race : " + race + " job : "+ job);
		
		int iHair = 0;
		if( null != m_CharCreateGenderData && null != m_CharCreateClassData)
		{
			iHair = (int)m_CharCreateGenderData.hairTypes[0] + (int)m_CharCreateGenderData.hairColors[0];
			int ibody = (int)m_CharCreateGenderData.bodyColors[0];
			int iPoint = (int)m_CharCreateGenderData.pointColors[0];
			int iGlove = (int)m_CharCreateGenderData.gloveColors[0];
			
			viewData.sNormalItemVeiw_1 = new sITEMVIEW();
			viewData.sNormalItemVeiw_1.nItemTableIdx = m_CharCreateClassData.commonProp.weapon;
			
			viewData.sNormalItemVeiw_2 = new sITEMVIEW();
			viewData.sNormalItemVeiw_2.nItemTableIdx = 0;
			
			viewData.sNormalItemVeiw_3 = new sITEMVIEW();
			viewData.sNormalItemVeiw_3.nItemTableIdx = ibody;
			
			viewData.sNormalItemVeiw_4 = new sITEMVIEW();
			viewData.sNormalItemVeiw_4.nItemTableIdx = iGlove;
			
			viewData.sNormalItemVeiw_5 = new sITEMVIEW();
			viewData.sNormalItemVeiw_5.nItemTableIdx = iPoint;
		}
		
		CharacterLoadData entityCreationData = new CharacterLoadData( ushort.MaxValue, viewData);
		entityCreationData.nHairItemIndex = iHair;
		
		m_ModelEntity = AsEntityManager.Instance.CreateUserEntity( "PlayerChar", entityCreationData, false);
		
		m_ModelEntity.HandleMessage( new Msg_AnimationIndicate( "Idle"));

		charDummy.transform.position = new Vector3( GetCharacterPositionX(), charDummy.transform.position.y, charDummy.transform.position.z);
		m_ModelEntity.gameObject.transform.localPosition = Vector3.zero;
		m_ModelEntity.gameObject.transform.localRotation = Quaternion.identity;
		m_ModelEntity.gameObject.transform.localScale = charDummy.transform.localScale;
		
		while( true)
		{
			if( eModelLoadingState.Finished == m_ModelEntity.CheckModelLoadingState())
				break;
			
			yield return null;
		}

		m_ModelEntity.transform.parent = charDummy.transform;
		SetLayerHierArchy( m_ModelEntity.transform, LayerMask.NameToLayer( "GUI"));
		
		Initialize();

		while( true == PartsRoot.s_isLoading)
			yield return null;

		genderIcons[0].controlIsEnabled = true;
		genderIcons[1].controlIsEnabled = true;

		AsLoadingIndigator.Instance.HideIndigator();
	}
	public AsCharacterCreateClassData( XmlElement _element)
	{
		XmlNode node = (XmlElement)_element;
		
		// <Type>
		SetValue( ref eClass, node, "Type");
//		SetValue( ref className, node, "Type");
		switch( eClass)
		{
		case eCLASS.DIVINEKNIGHT:	className = AsTableManager.Instance.GetTbl_String(306);	break;
		case eCLASS.MAGICIAN:	className = AsTableManager.Instance.GetTbl_String(307);	break;
		case eCLASS.CLERIC:	className = AsTableManager.Instance.GetTbl_String(308);	break;
		case eCLASS.HUNTER:	className = AsTableManager.Instance.GetTbl_String(309);	break;
		case eCLASS.ASSASSIN:	className = AsTableManager.Instance.GetTbl_String(310);	break;
		}
		// <Position>
		SetValue( ref position, node, "Position");
		// <Weapon>
		SetValue( ref weapon, node, "Weapon");
		// <Damage>
		SetValue( ref damage, node, "Damage");
		// <Defense>
		SetValue( ref defense, node, "Defense");
		// <Support>
		SetValue( ref support, node, "Support");
		// <StartMapID>
		SetValue( ref startMapID, node, "StartMapID");
		// <StartPointX>
		SetValue( ref startPoint.x, node, "StartPointX");
		// <StartPointZ>
		SetValue( ref startPoint.y, node, "StartPointZ");
		// <StartPointRandRatio>
		SetValue( ref startPointRandRatio, node, "StartPointRandRatio");
		// <CommonProperty>
		XmlNode commonProperty = node[ "CommonProperty"];
		commonProp = new AsCharacterCreateCommonProperty( commonProperty as XmlElement);
		// <Genders>
		XmlNode genders = node[ "Genders"];
		XmlNodeList genderList = genders.ChildNodes;
		foreach( XmlNode genderNode in genderList)
		{
			// <Gender>
			AsCharacterCreateGenderData genderData = new AsCharacterCreateGenderData( genderNode as XmlElement);
			dicGenderData.Add( genderData.gender, genderData);
		}
	}