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.
181 lines
5.6 KiB
181 lines
5.6 KiB
4 years ago
|
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();
|
||
|
}
|
||
|
}
|
||
|
}
|