require("utils.EngineClass")
|
|
require("systool.RequireSystool")
|
|
require("game.common.LuaMemManager")
|
|
|
|
LuaMemManager.New()
|
|
local require = require
|
|
GameModule = GameModule or {}
|
|
local GameModule = GameModule
|
|
local Time = Time
|
|
|
|
function GameModule.Main()
|
|
QualitySettings.streamingMipmapsActive = false
|
|
-- 测试
|
|
-- if ApplicationPlatform == RuntimePlatform.Android or tostring(ApplicationPlatform) == tostring(RuntimePlatform.Android) then
|
|
-- QualitySettings.streamingMipmapsActive = true
|
|
-- QualitySettings.streamingMipmapsMemoryBudget = 2048
|
|
-- QualitySettings.streamingMipmapsMaxLevelReduction = 1
|
|
-- QualitySettings.streamingMipmapsAddAllCameras = true
|
|
-- end
|
|
|
|
GlobalUserOperateTime = 0
|
|
--输出 assetbundle 包更新下载加载卸载日志
|
|
--AppConst.OpenDownloadLog = true
|
|
OpenGameDebugLog = AppConst.OpenDownloadLog
|
|
|
|
require("clientconfig.ClientConfig")
|
|
require("config.Config")
|
|
require("utils.RequireUtils")
|
|
require("game.common.RequireCommon")
|
|
require("sysinfo.SysInfoCtrl")
|
|
require("newgameui.RequireGameUI")
|
|
require("language.RequireLanguage")
|
|
require("game.login.LoginController")
|
|
require("game.common.OpenFun")
|
|
require("game.common.StepPackModule")
|
|
require("utils.LuaFPS")
|
|
require("game.login.PreLoadBeforeLogin")
|
|
require("game.login.LoginBg")
|
|
|
|
math.randomseed(tostring(os.time()):reverse():sub(1, 6))
|
|
|
|
GameError.New()
|
|
SystemRuntimePlatform.Init()
|
|
-- if SystemRuntimePlatform.IsAndroid() then
|
|
-- G_DEBUG_MODE = true
|
|
-- end
|
|
SystemMemoryLevel.Init()
|
|
SetGameFrameRate()
|
|
InitResLoadSpeed()
|
|
InitEngineData()
|
|
GlobalTimerQuest = TimerQuest.New()
|
|
GameConfigUtil.Load()
|
|
GamePlatformRes.Load()
|
|
ShaderTools.Load()
|
|
GlobalEventSystem = EventSystem.New()
|
|
Runner:getInstance():AddRunObj(GlobalEventSystem, 3)
|
|
GameModule.runner = Runner:getInstance()
|
|
lua_resM = LuaResManager:getInstance()
|
|
lua_logM = LuaLogManager:getInstance()
|
|
lua_viewM = LuaViewManager:getInstance()
|
|
LuaMemManager:getInstance():InitInfo()
|
|
CookieWrapper.New()
|
|
lua_soundM = LuaSoundManager:getInstance()
|
|
lua_soundM:LoadSetting()
|
|
lua_settingM = GameSettingManager:getInstance()
|
|
lua_settingM:ApplySetting()
|
|
UpdateBeat:Add(GameModule.Update)
|
|
LateUpdateBeat:Add(GameModule.LateUpdate)
|
|
LoginBg.New()
|
|
SDKManager:RegisterCallbackFunc( SDKUtil.SDKCallBack )
|
|
StepPackModule.New()
|
|
co.InitTempVectorArray()
|
|
GameDontDestroyOnLoad()
|
|
|
|
local function onLoadLogicModule()
|
|
print("onLoadLogicModule")
|
|
|
|
--开始加载逻辑模块
|
|
LoginController.Instance:ShowLoading()
|
|
GlobleLogicFile = GlobleLogicFile or {}
|
|
require("game.common.ModulesController")
|
|
end
|
|
GlobalEventSystem:Bind(EventName.START_LOAD_LOGIC_MODULE,onLoadLogicModule)
|
|
|
|
local game_start = function()
|
|
print("PreLoadProgressDelete")
|
|
|
|
--进入场景后销毁预加载的登录创角资源
|
|
if GameModule.PreLoadProgress then
|
|
GameModule.PreLoadProgress:DeleteMe()
|
|
GameModule.PreLoadProgress = nil
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_START,game_start)
|
|
|
|
local function onDBLoadCompleted()
|
|
print("onDBLoadCompleted")
|
|
|
|
require("game.luaError.LuaErrorController")
|
|
require("game.login.LoginModel")
|
|
require("game.login.AccountView")
|
|
require("game.login.AccountServerItem")
|
|
require("game.login.ServerItem")
|
|
require("gameinput.GameInputManager")
|
|
|
|
LuaErrorController.New()
|
|
SysInfoCtrl.New()
|
|
GameInputManager.New()
|
|
UserMsgAdapter:getInstance()
|
|
LoginController.New()
|
|
|
|
--关闭引擎的加载界面
|
|
PreLoadViewState = false
|
|
Util.ClosePreLoadView()
|
|
|
|
--显示登录界面
|
|
GlobalEventSystem:Fire(LoginStateEvent.SHOW_LOGIN_VIEW)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.DB_DATA_LOAD_COMPLETED,onDBLoadCompleted)
|
|
|
|
local function onPreloadLoginResCompleted()
|
|
--首次预加载回调才进行
|
|
if PreLoadViewState then
|
|
print("onPreloadLoginResCompleted")
|
|
ConfigItemMgr.New()
|
|
CheckAndroid9SystemHair()
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.PRELOAD_LOGIN_RES_COMPLETED,onPreloadLoginResCompleted)
|
|
|
|
local start_init_login = function()
|
|
print("OnPreLoadProgress")
|
|
if GameModule.PreLoadProgress == nil or GameModule.PreLoadProgress._use_delete_method then
|
|
GameModule.PreLoadProgress = PreLoadBeforeLogin.New()
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(LoginStateEvent.START_LOGIN_MODULE,start_init_login)
|
|
|
|
local function onUILoadCompleted()
|
|
print("onUILoadCompleted")
|
|
start_init_login()
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_UI_LOAD_COMPLETED,onUILoadCompleted)
|
|
|
|
--开始预加载资源
|
|
UiFactory.StartPreload()
|
|
end
|
|
|
|
function GameModule.Update()
|
|
GameModule.runner:Update( Time.time, Time.deltaTime )
|
|
|
|
--开始逻辑模块后分帧加载系统文件
|
|
if not GameModule.init_modules_complete and GlobleLogicFile then
|
|
GameModule.GameLogicModuleInit()
|
|
end
|
|
end
|
|
|
|
function GameModule.LateUpdate()
|
|
GameModule.runner:LateUpdate( Time.time, Time.deltaTime )
|
|
end
|
|
|
|
function GameModule.GameLogicModuleInit()
|
|
for i = 1,3 do
|
|
GlobleInitLogicIndex = GlobleInitLogicIndex or 1
|
|
require(GlobleLogicFile[GlobleInitLogicIndex])
|
|
|
|
if GlobleInitLogicIndex == #GlobleLogicFile then
|
|
GlobleLogicFile = nil
|
|
|
|
ModulesController.New()
|
|
GameModule.init_modules_complete = true
|
|
LoginController.Instance:CloseLoading()
|
|
--逻辑模块全部加载完成后触发获取角色数据流程
|
|
GlobalEventSystem:Fire(EventName.START_LOHIN_ROLE_ACTION)
|
|
return
|
|
else
|
|
GlobleInitLogicIndex = GlobleInitLogicIndex + 1
|
|
end
|
|
end
|
|
end
|