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();
 | |
|     }
 | |
| } |