You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
5.6 KiB
180 lines
5.6 KiB
using AX.MessageSystem; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.IO; |
|
using System.Xml; |
|
using UnityEngine; |
|
using UnityEngine.UI; |
|
/// <summary> |
|
/// 队伍名称设置 |
|
/// </summary> |
|
public class TeamNameSetting : ResourceLoadPanel<TeamNameSetting> |
|
{ |
|
private Transform Father; |
|
private InputField TeamName; |
|
private static List<string> TeamNameList = new List<string>(); |
|
private void Start() |
|
{ |
|
Init(); |
|
MessageDispatcher.AddListener("DisasterUpdateCompelete", ResetData); |
|
} |
|
|
|
private void OnDestroy() |
|
{ |
|
MessageDispatcher.RemoveListener("DisasterUpdateCompelete", ResetData); |
|
} |
|
void Init() |
|
{ |
|
TeamName = transform.Find("InputField").GetComponent<InputField>(); |
|
Father = transform.Find(GlobalVariable.ContentPath); |
|
LoadTeamName(); |
|
} |
|
|
|
//创建Item |
|
private void CreateTeamNameItem() |
|
{ |
|
GameObject TeamItem = Instantiate(Resources.Load("UI/TeamNameItem"), Father) as GameObject; |
|
TeamItem.GetComponent<TeamNameItem>().SetTeamName(TeamName.text); |
|
TeamNameList.Add(TeamName.text); |
|
} |
|
//检测同名 |
|
public bool CheckSameName(string Name) |
|
{ |
|
if (TeamNameList.Contains(Name)) |
|
{ |
|
ResourceLoadWindow.Instance.LoadTextHintWindow("已有相同名称", 1f); |
|
return true; |
|
} |
|
//foreach (Transform child in Father) |
|
//{ |
|
// if (Name.Equals(child.GetComponent<TeamNameItem>().GetTeamName())) |
|
// { |
|
// ResourceLoadWindow.Instance.LoadTextHintWindow("已有相同名称", 1f); |
|
// return true; |
|
// } |
|
//} |
|
return false; |
|
} |
|
|
|
//输入名字点击确定按钮 |
|
public void NameSureBtn() |
|
{ |
|
if (string.IsNullOrEmpty(TeamName.text)) { return; } //判断空输入 |
|
|
|
if (CheckSameName(TeamName.text)) { return; } //判断相同名字 |
|
|
|
CreateTeamNameItem(); //生成条目 |
|
} |
|
//获取选中的队伍力量名称 |
|
public string GetPresentTeamName() |
|
{ |
|
return GlobalVariable.TeamName = TeamNameItem.TeamName; |
|
} |
|
//获取队伍名称列表 |
|
public List<string> GetTeamNameList() |
|
{ |
|
return TeamNameList; |
|
} |
|
public void Close() |
|
{ |
|
gameObject.SetActive(false); |
|
} |
|
public void Sure() |
|
{ |
|
GetPresentTeamName(); |
|
gameObject.SetActive(false); |
|
SaveXml(); |
|
} |
|
private void SaveXml() |
|
{ |
|
var id = DisasterManager.disaster.Id.ToString(); |
|
var filepath = Application.dataPath + "/Data/" + id + "/File/"+"TeamName.xml"; |
|
if (File.Exists(filepath)) |
|
{ |
|
File.Delete(filepath); |
|
} |
|
File.Create(filepath).Dispose(); |
|
XmlDocument document = new XmlDocument(); |
|
XmlDeclaration xmldecl = document.CreateXmlDeclaration("1.0", "UTF-8", "yes"); |
|
document.AppendChild(xmldecl); |
|
|
|
XmlElement nodes = document.CreateElement("TeamNameList"); |
|
document.AppendChild(nodes); |
|
foreach (string teamName in TeamNameList) |
|
{ |
|
XmlElement node = document.CreateElement("TeamName"); |
|
node.SetAttribute("Name", teamName); |
|
if (teamName == GlobalVariable.TeamName) |
|
{ |
|
node.SetAttribute("Selected", 1.ToString()); |
|
} |
|
else |
|
{ |
|
node.SetAttribute("Selected", 0.ToString()); |
|
} |
|
nodes.AppendChild(node); |
|
} |
|
document.Save(filepath); |
|
} |
|
private void ResetData(IMessage obj) |
|
{ |
|
var id = DisasterManager.disaster.Id.ToString(); |
|
var filepath = Application.dataPath + "/Data/" + id + "/File/" + "TeamName.xml"; |
|
if (File.Exists(filepath)) |
|
{ |
|
XmlDocument xmlDoc = new XmlDocument(); |
|
xmlDoc.Load(filepath); |
|
XmlNode nodes = xmlDoc.SelectSingleNode("TeamNameList"); |
|
TeamNameList.Clear(); |
|
foreach (XmlElement node in nodes) |
|
{ |
|
var teamName = node.GetAttribute("Name"); |
|
TeamNameList.Add(teamName); |
|
var selected = node.GetAttribute("Selected"); |
|
if (selected == "1") |
|
{ |
|
TeamNameItem.TeamName = teamName; |
|
GlobalVariable.TeamName = teamName; |
|
} |
|
} |
|
RecreateTeamNameItems(); |
|
} |
|
} |
|
|
|
private void RecreateTeamNameItems() |
|
{ |
|
foreach(Transform item in Father) |
|
{ |
|
Destroy(item.gameObject); |
|
} |
|
foreach(string teamName in TeamNameList) |
|
{ |
|
GameObject TeamItem = Instantiate(Resources.Load("UI/TeamNameItem"), Father) as GameObject; |
|
TeamItem.GetComponent<TeamNameItem>().SetTeamName(teamName); |
|
} |
|
} |
|
private void LoadTeamName() |
|
{ |
|
var id = DisasterManager.disaster.Id.ToString(); |
|
var filepath = Application.dataPath + "/Data/" + id + "/File/" + "TeamName.xml"; |
|
if (File.Exists(filepath)) |
|
{ |
|
XmlDocument xmlDoc = new XmlDocument(); |
|
xmlDoc.Load(filepath); |
|
XmlNode nodes = xmlDoc.SelectSingleNode("TeamNameList"); |
|
TeamNameList.Clear(); |
|
foreach (XmlElement node in nodes) |
|
{ |
|
var teamName = node.GetAttribute("Name"); |
|
TeamNameList.Add(teamName); |
|
var selected = node.GetAttribute("Selected"); |
|
if (selected == "1") |
|
{ |
|
TeamNameItem.TeamName = teamName; |
|
GlobalVariable.TeamName = teamName; |
|
} |
|
} |
|
RecreateTeamNameItems(); |
|
} |
|
} |
|
}
|
|
|