Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
local PB = require("pb")
|
||||
local ipairs = ipairs
|
||||
local rawget = rawget
|
||||
local setmetatable = setmetatable
|
||||
local ConfigData = require("GameCore.Data.ConfigData")
|
||||
local ReadTable = {}
|
||||
function ReadTable:__index(k)
|
||||
local raw = rawget(self, "raw")
|
||||
local meta = rawget(self, "meta")
|
||||
local lang = meta.lang
|
||||
local loaded = meta.loaded
|
||||
local pbName = meta.pbName
|
||||
local langs = meta.langs
|
||||
local line = raw[k]
|
||||
if langs ~= nil and lang == nil and not loaded then
|
||||
lang = ConfigData.LoadLanguageTable(LanguageTable.GetType(), pbName)
|
||||
meta.lang = lang
|
||||
meta.loaded = true
|
||||
end
|
||||
if nil ~= line then
|
||||
local lineInstance = assert(PB.decode("nova.client." .. pbName, line))
|
||||
if langs ~= nil then
|
||||
for _, v in ipairs(langs) do
|
||||
local field = lineInstance[v]
|
||||
if field ~= nil and lang ~= nil then
|
||||
lineInstance[v] = lang[field] or ""
|
||||
end
|
||||
end
|
||||
end
|
||||
return lineInstance
|
||||
end
|
||||
end
|
||||
function LoadDataTable(meta, raw, lang)
|
||||
local newTable = {
|
||||
raw = raw,
|
||||
meta = meta,
|
||||
lang = lang
|
||||
}
|
||||
setmetatable(newTable, ReadTable)
|
||||
return newTable
|
||||
end
|
||||
Reference in New Issue
Block a user