mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 23:11:54 +08:00
feat(保存系统): 改进保存数据的序列化和反序列化处理
重构保存系统以使用新的嵌套字典工具方法 修改Starter场景中的按钮文本并隐藏多人游戏选项 添加JsonTool和ArrayTool的嵌套数据操作方法
This commit is contained in:
@@ -53,3 +53,34 @@ static func mergeDictionary(a: Dictionary, b: Dictionary) -> Dictionary:
|
||||
for key in b:
|
||||
result[key] = result.get(key, 0.0) + b[key]
|
||||
return result
|
||||
static func getNested(data: Variant, path: String) -> Variant:
|
||||
var keys = path.split(".")
|
||||
var result = data
|
||||
for key in keys:
|
||||
if result is Dictionary:
|
||||
result = result[key]
|
||||
elif result is Array:
|
||||
result = result[key.to_int()]
|
||||
else:
|
||||
return null
|
||||
return result
|
||||
static func setNested(data: Variant, path: String, value: Variant):
|
||||
var keys = path.split(".")
|
||||
for i in range(keys.size() - 1):
|
||||
var key = keys[i]
|
||||
if data is Dictionary:
|
||||
data = data[key]
|
||||
elif data is Array:
|
||||
data = data[key.to_int()]
|
||||
else:
|
||||
return
|
||||
var lastKey = keys[-1]
|
||||
if data is Dictionary:
|
||||
data[lastKey] = value
|
||||
elif data is Array:
|
||||
var index = lastKey.to_int()
|
||||
if index == data.size():
|
||||
data.append(value)
|
||||
else:
|
||||
data[index] = value
|
||||
return data
|
||||
|
||||
Reference in New Issue
Block a user