159 lines
4.2 KiB
C#
159 lines
4.2 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.IO;
|
|||
|
|
using UnityEngine;
|
|||
|
|
using UnityEngine.UI;
|
|||
|
|
|
|||
|
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
///<2F><><EFBFBD>ܣ<EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>رյ<D8B1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public class UIMapPanel : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
public List<string> allMaps = new List<string>();
|
|||
|
|
public Dropdown dropMap;
|
|||
|
|
private int _curOpenMapId;
|
|||
|
|
private bool _saving;
|
|||
|
|
|
|||
|
|
public int CurOpenMapId => _curOpenMapId;
|
|||
|
|
|
|||
|
|
// Start is called before the first frame update
|
|||
|
|
void Start()
|
|||
|
|
{
|
|||
|
|
_saving = false;
|
|||
|
|
_curOpenMapId = -1;
|
|||
|
|
|
|||
|
|
UIWindow.Instance.uiCreateMap.onCreatedMapCallback += OnCreatedMap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void OnDataLoaded()
|
|||
|
|
{
|
|||
|
|
string[] AllFilePath = Directory.GetDirectories(Application.dataPath + "/GameAssets/Maps");
|
|||
|
|
for (int i = 0; i < AllFilePath.Length; i++)
|
|||
|
|
{
|
|||
|
|
string[] pathSplit = AllFilePath[i].Split('/');
|
|||
|
|
string[] pathSplit2 = pathSplit[pathSplit.Length - 1].Split('\\');
|
|||
|
|
allMaps.Add(pathSplit2[pathSplit2.Length - 1]);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void ScanMap()
|
|||
|
|
{
|
|||
|
|
allMaps.Clear();
|
|||
|
|
|
|||
|
|
OnDataLoaded();
|
|||
|
|
|
|||
|
|
dropMap.options.Clear();
|
|||
|
|
|
|||
|
|
for (int i=0; i<allMaps.Count; i++)
|
|||
|
|
{
|
|||
|
|
Dropdown.OptionData od = new Dropdown.OptionData();
|
|||
|
|
od.text = allMaps[i];
|
|||
|
|
dropMap.options.Add(od);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
dropMap.value = 1;
|
|||
|
|
dropMap.value = 0; //Ϊ<><CEAA>Ĭ<EFBFBD><C4AC>ѡ<EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void OnCreatedMap(int mapId, int mapWidth, int mapHeight)
|
|||
|
|
{
|
|||
|
|
ScanMap();
|
|||
|
|
allMaps.Add(mapId.ToString());
|
|||
|
|
Dropdown.OptionData od = new Dropdown.OptionData();
|
|||
|
|
od.text = mapId.ToString();
|
|||
|
|
dropMap.options.Add(od);
|
|||
|
|
dropMap.value = dropMap.options.Count - 1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void OpenMap()
|
|||
|
|
{
|
|||
|
|
if(dropMap.options.Count == 0)
|
|||
|
|
{
|
|||
|
|
UIWindow.Instance.ShowMessage("<22><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD>ͼ");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(_curOpenMapId > 0)
|
|||
|
|
{
|
|||
|
|
UIWindow.Instance.ShowMessage("<22><><EFBFBD>ȹر<C8B9><D8B1><EFBFBD><EFBFBD>е<EFBFBD>ͼ");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int mapId = 0;
|
|||
|
|
|
|||
|
|
mapId = Convert.ToInt32(dropMap.options[dropMap.value].text);
|
|||
|
|
UIWindow.Instance.uiCreateMap.LoadMapRegions(mapId);
|
|||
|
|
UIWindow.Instance.uiCellInfo.LoadCells();
|
|||
|
|
UIWindow.Instance.uiCellInfo.ShowCells();
|
|||
|
|
UIWindow.Instance.uiEditMapConfig.LoadMapConfig(mapId);
|
|||
|
|
UIWindow.Instance.uiMonstersPanel.LoadMonsterConfig(mapId);
|
|||
|
|
UIWindow.Instance.uiNpcsPanel.LoadNpcsConfig(mapId);
|
|||
|
|
UIWindow.Instance.uiTriggersPanel.LoadTriggersConfig(mapId);
|
|||
|
|
UIWindow.Instance.uiFuBensPanel.LoadFuBenConfig(mapId);
|
|||
|
|
UIWindow.Instance.uiJuBaosPanel.LoadJuBaoConfig(mapId);
|
|||
|
|
|
|||
|
|
_curOpenMapId = mapId;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void CloseMap()
|
|||
|
|
{
|
|||
|
|
MapManager.Instance.CloseMap();
|
|||
|
|
_curOpenMapId = -1;
|
|||
|
|
UIWindow.Instance.HideMouseOver();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public bool HasMap(string mapId)
|
|||
|
|
{
|
|||
|
|
return allMaps.Find(s => s == mapId) != null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void ResetMap()
|
|||
|
|
{
|
|||
|
|
if (dropMap.options.Count == 0)
|
|||
|
|
{
|
|||
|
|
UIWindow.Instance.ShowMessage("<22><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD>ͼ");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (_curOpenMapId < 0)
|
|||
|
|
{
|
|||
|
|
UIWindow.Instance.ShowMessage("û<>е<EFBFBD>ͼ");
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F>ȹرյ<D8B1>ͼ
|
|||
|
|
CloseMap();
|
|||
|
|
UIWindow.Instance.uiEditMapConfig.Cleanup();
|
|||
|
|
|
|||
|
|
//<2F>ٴ<D9B4>ͼ
|
|||
|
|
OpenMap();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void Update()
|
|||
|
|
{
|
|||
|
|
if (Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.S))
|
|||
|
|
{
|
|||
|
|
if (_saving)
|
|||
|
|
return;
|
|||
|
|
|
|||
|
|
SaveAll();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void SaveAll()
|
|||
|
|
{
|
|||
|
|
_saving = true;
|
|||
|
|
Debug.Log("<22><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...");
|
|||
|
|
UIWindow.Instance.uiCreateMap.SaveRegions();
|
|||
|
|
UIWindow.Instance.uiCellEditor.SaveCells();
|
|||
|
|
UIWindow.Instance.uiEditMapConfig.SaveMapConfig();
|
|||
|
|
UIWindow.Instance.uiMonstersPanel.SaveMonsterConfig();
|
|||
|
|
UIWindow.Instance.uiNpcsPanel.SaveNpcsConfig();
|
|||
|
|
UIWindow.Instance.uiTriggersPanel.SaveTriggersConfig();
|
|||
|
|
UIWindow.Instance.uiJuBaosPanel.SaveJuBaoConfig();
|
|||
|
|
UIWindow.Instance.uiFuBensPanel.SaveFuBenConfig();
|
|||
|
|
UIWindow.Instance.ShowMessage("<22><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>");
|
|||
|
|
_saving = false;
|
|||
|
|
}
|
|||
|
|
}
|