jx_client_neibu/lua_probject/base_project/Game/ExtendManager.lua

72 lines
1.5 KiB
Lua
Raw Permalink Normal View History

2025-04-01 10:48:36 +08:00
require "Game.IExtendConfig"
require "Game.IGameInfo"
---
-- a net ExtendManager
ExtendManager = {
2025-04-09 15:33:02 +08:00
2025-04-01 10:48:36 +08:00
}
local _extendMap = {}
local _isUpdate = false
local _isInit = false
local function __new_config(data)
2025-04-09 15:33:02 +08:00
local ec = reimport(data.bundle .. ".ExtendConfig")
2025-04-11 12:49:08 +08:00
-- print("初始化ExtendManager===>>>" .. data.bundle)
2025-04-09 15:33:02 +08:00
--pt(data)
2025-04-01 10:48:36 +08:00
local config = ec.new()
ec.game_data = data
_extendMap[data.game_id] = config
return config
end
function ExtendManager.Init(game_list)
if _isInit then return end
2025-04-09 15:33:02 +08:00
for i = 1, #game_list do
local game = game_list[i]
2025-04-01 10:48:36 +08:00
__new_config(game)
end
_isInit = true
end
-- 更新扩展玩法到最新数据
function ExtendManager.UpdateExtend(data)
if not data then return end
local tem = _extendMap[data.game_id]
if tem and (not GameApplication.Instance.buildApp) then
return
end
if tem and tem.game_data.version ~= data.version then
GameApplication.Instance:UnExtendLua(data)
tem:UnAllAssets()
end
__new_config(data)
end
function ExtendManager.RemoveExtend(data)
local tem = _extendMap[data.game_id]
if tem then
GameApplication.Instance:UnExtendLua(data)
tem:UnAllAssets()
end
end
function ExtendManager.GetExtendConfig(id)
return _extendMap[id]
end
function ExtendManager.GetGameData(id)
local data = _extendMap[id]
if not data then
return nil
end
return data.game_data
end
function ExtendManager.Destroy()
_extendMap = {}
_isInit = false
2025-04-09 15:33:02 +08:00
end