Files
Main/Assets/Code/Logic/_Required/MapInfo/WorldMapInfoManager.cs

97 lines
2.8 KiB
C#
Raw Normal View History

2025-01-25 04:38:09 +08:00
using System;
using System.Collections.Generic;
using System.Text;
using Thousandto.Core.Base;
using SceneEditor.Proxy.Plugin;
namespace Thousandto.Code.Logic
{
/// <summary>
/// 世界地图数据管理器
/// </summary>
public class WorldMapInfoManager
{
//世界地图数据
private WorldMapInfoData _data = null;
//世界地图数据
public WorldMapInfoData Data
{
get
{
return _data;
}
}
//世界地图数据文件路径
public string WorldMapDataFilePath
{
get
{
return FileUtils.MapInfoDirPath + "/Minimap/" + MapInfoConstDefine.WorldMapDataFileName;
}
}
//获取MiniMap数据信息
public MiniMapInfoData GetMiniMapInfo(string mapName)
{
if (Data.MiniMapDict.ContainsKey(mapName))
{
return Data.MiniMapDict[mapName];
}
return null;
}
public void Initialize()
{
WorldMapDataSerializer.ReadWorldMap(WorldMapDataFilePath,x=> {
_data = x;
});
}
//设置World地图信息数据
public void SetWorldMapInfo(float mapSizeX, float mapSizeZ, float scale, float tempdata)
{
if (Data != null)
{
Data.Size = new UnityEngine.Vector2(mapSizeX, mapSizeZ);
Data.WorldMapScale = scale;
Data.TempData = tempdata;
Save();
}
}
//设置Mini地图数据学习你
public void SetMiniMapInfo(string mapName, float mapSizeX,float mapSizeZ,float mapCameraPosX,float mapCameraPosZ)
{
if (Data != null)
{
if (Data.MiniMapDict.ContainsKey(mapName))
{
Data.MiniMapDict[mapName].Size = new UnityEngine.Vector2(mapSizeX, mapSizeZ);
Data.MiniMapDict[mapName].CameraPosition = new UnityEngine.Vector2(mapCameraPosX, mapCameraPosZ);
}
else
{
Data.MiniMapDict[mapName] = new MiniMapInfoData()
{
MapName = mapName,
Size = new UnityEngine.Vector2(mapSizeX, mapSizeZ),
CameraPosition = new UnityEngine.Vector2(mapCameraPosX, mapCameraPosZ)
};
}
Save();
}
}
//保存
private void Save()
{
if (_data != null)
{
WorldMapDataSerializer.WriteWorldMap(WorldMapDataFilePath, _data);
}
}
}
}