68 lines
1.5 KiB
Plaintext
68 lines
1.5 KiB
Plaintext
|
|
/*
|
||
|
|
文件名:UserStorage.nut
|
||
|
|
路径:Core/BaseClass/UserStorage.nut
|
||
|
|
创建日期:2024-11-14 08:43
|
||
|
|
文件用途:用户存档类
|
||
|
|
*/
|
||
|
|
class Storage {
|
||
|
|
|
||
|
|
Data = null;
|
||
|
|
|
||
|
|
// 构造函数
|
||
|
|
constructor() {
|
||
|
|
Data = {};
|
||
|
|
}
|
||
|
|
|
||
|
|
//储存数据
|
||
|
|
function SetItem(Key, Value) {
|
||
|
|
Data.rawset(Key, Value);
|
||
|
|
}
|
||
|
|
|
||
|
|
//储存数据列表
|
||
|
|
function SetItemList(T) {
|
||
|
|
foreach(Key, Value in T) {
|
||
|
|
Data.rawset(Key, Value);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//获取数据
|
||
|
|
function GetItem(Key) {
|
||
|
|
if (Data.rawin(Key)) return Data.rawget(Key);
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
//获取数据列表
|
||
|
|
function GetItemList(KeyList) {
|
||
|
|
local T = {};
|
||
|
|
foreach(Key in KeyList) {
|
||
|
|
local Buf = GetItem(Key);
|
||
|
|
T.Key <- Buf;
|
||
|
|
}
|
||
|
|
return T;
|
||
|
|
}
|
||
|
|
|
||
|
|
function Load(Path) {
|
||
|
|
try {
|
||
|
|
local FileObj = file(Path, "r");
|
||
|
|
local IO = blobex(FileObj.readblob(FileObj.len()));
|
||
|
|
local SaveStr = IO.GetString(IO.len());
|
||
|
|
Data = Json.Decode(SaveStr);
|
||
|
|
FileObj.close();
|
||
|
|
return true;
|
||
|
|
} catch (exception) {
|
||
|
|
print("未读取到存档文件");
|
||
|
|
print(exception);
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function Save(Path) {
|
||
|
|
local SaveStr = Json.Encode(Data);
|
||
|
|
local FileObj = file(Path, "w");
|
||
|
|
foreach(char in SaveStr) {
|
||
|
|
FileObj.writen(char, 'b');
|
||
|
|
}
|
||
|
|
FileObj.flush();
|
||
|
|
FileObj.close();
|
||
|
|
}
|
||
|
|
}
|