55 lines
1.3 KiB
C#
55 lines
1.3 KiB
C#
// HintData.cs
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace RuntimeData
|
|
{
|
|
|
|
//TODO HintData序列化相关
|
|
[Serializable]
|
|
public class HintData
|
|
{
|
|
public uint Id;
|
|
public uint GridId;
|
|
public string Message;
|
|
|
|
public HintData(uint id, uint gridId, string message)
|
|
{
|
|
Id = id;
|
|
GridId = gridId;
|
|
Message = message;
|
|
}
|
|
}
|
|
|
|
[Serializable]
|
|
public class HintMapData
|
|
{
|
|
public List<HintData> HintList = new();
|
|
private Dictionary<uint, HintData> _idToHintDict = new();
|
|
|
|
public void AddHint(HintData data)
|
|
{
|
|
if (_idToHintDict.ContainsKey(data.Id)) return;
|
|
HintList.Add(data);
|
|
_idToHintDict[data.Id] = data;
|
|
}
|
|
|
|
public void RemoveHint(uint id)
|
|
{
|
|
if (!_idToHintDict.TryGetValue(id, out var data)) return;
|
|
HintList.Remove(data);
|
|
_idToHintDict.Remove(id);
|
|
}
|
|
|
|
public void ClearAll()
|
|
{
|
|
HintList.Clear();
|
|
_idToHintDict.Clear();
|
|
}
|
|
|
|
public bool GetHint(uint id, out HintData data) => _idToHintDict.TryGetValue(id, out data);
|
|
|
|
public List<HintData> GetAllHints() => HintList;
|
|
}
|
|
} |