c1_lua/lua/app/server/data/server_base_data.lua
2023-04-07 15:22:56 +08:00

76 lines
1.6 KiB
Lua

local ServerBaseData = class("ServerBaseData")
function ServerBaseData:ctor(...)
self.data = {}
self.data.__parent = self
local innerData = nil
innerData = {
__index = function (t, key)
return innerData[key]
end,
__newindex = function (t, key, value)
innerData[key] = value
end
}
setmetatable(self.data, innerData)
end
function ServerBaseData:_loadLocalData()
local data = LocalData:getString("ServerBaseData_" .. self.__cname, "")
local innerData = getmetatable(self.data)
local dataObj = nil
if data and data ~= "" then
dataObj = json.decode(data)
end
for k, v in pairs(innerData) do
innerData[k] = nil
end
if dataObj then
for k, v in pairs(dataObj) do
innerData[k] = v
end
end
end
function ServerBaseData:_loadNewPlayerData()
local innerData = getmetatable(self.data)
for k, v in pairs(innerData) do
innerData[k] = nil
end
local dataObj = self:getNewPlayerData()
if dataObj then
for k, v in pairs(dataObj) do
innerData[k] = v
end
end
end
function ServerBaseData:getNewPlayerData()
return nil
end
function ServerBaseData:getCloneData()
local cloneData = {}
local function _copy(object)
if type(object) ~= "table" then
return object
elseif cloneData[object] then
return cloneData[object]
end
local newObject = {}
cloneData[object] = newObject
for key, value in pairs(object) do
newObject[_copy(key)] = _copy(value)
end
return newObject
end
local innerData = getmetatable(self.data)
return _copy(innerData)
end
function ServerBaseData:clone()
end
return ServerBaseData