UI工具翻新
1. 增加UI工具 2. 增加设置页面 3. GameLoop更新 4. 导入ActionKit工具
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Utility;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
/// <summary>
|
||||
/// 配置项容器
|
||||
/// 1. 读取时可以直接从文件读取
|
||||
/// 2. 保存时可以直接保存到文件
|
||||
/// 3. 修改时会触发回调函数
|
||||
/// </summary>
|
||||
public class ConfigContainer
|
||||
{
|
||||
private readonly string _configPath;
|
||||
private JObject Data => JsonUtil.ReadJObject(_configPath);
|
||||
|
||||
public event Action<string, string> OnWrite;
|
||||
|
||||
public ConfigContainer(string configPath)
|
||||
{
|
||||
_configPath = configPath;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 写入
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <param name="value">值</param>
|
||||
public void Write(string key, string value)
|
||||
{
|
||||
var data = Data;
|
||||
data[key] = value;
|
||||
JsonUtil.SaveJObject(data, _configPath);
|
||||
OnWrite?.Invoke(key, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 读取配置项
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <param name="value">值</param>
|
||||
/// <returns>是否读取完成</returns>
|
||||
public bool TryRead(string key, out string value)
|
||||
{
|
||||
var res = Data.TryGetValue(key, out var jsValue);
|
||||
|
||||
value = jsValue?.ToString();
|
||||
return res;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 读取全部配置项为Dict
|
||||
/// </summary>
|
||||
/// <returns>配置项字典</returns>
|
||||
public Dictionary<string, string> ReadAll()
|
||||
{
|
||||
var data = Data;
|
||||
|
||||
var res = new Dictionary<string, string>();
|
||||
foreach (var pair in data)
|
||||
{
|
||||
res[pair.Key] = pair.Value.ToString();
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user