onGameEngineStartup
Definition
-- @/lua/ge/main.lua:998
function onGameEngineStartup()
-- log('I', "main", "onGameEngineStartup called.....")
-- make sure some important paths exist
if not FS:directoryExists("settings/") then FS:directoryCreate("settings/") end
if not FS:directoryExists("screenshots/") then FS:directoryCreate("screenshots/") end
-- Set profile directory
setConsoleVariable("$Pref::Video::ProfilePath", "core/profile")
local mainEventManager = createObject("EventManager")
if mainEventManager then
-- log("I","", "mainEventManager = "..dumps(mainEventManager))
mainEventManager.queue = "mainEventManagerQueue"
mainEventManager:registerEvent("onExit")
mainEventManager:registerEvent("onStart")
mainEventManager:registerEvent("onPreStart")
mainEventManager:registerObject("MainEventManager")
else
log("E","", "Couldn't create event manager 'MainEventManager'")
end
parseArgs.defaultParseArgs()
onPreStartCallback()
---------------------------------------------------------
-- Either display the help message or startup the app.
-- This is emulating what mainEventManager:postEvent("onPreStart", 0) call would do for all listeners. However, in the entire codebase we
-- don't have a single CS file responding to this message. We should delete it.
-- if scripts_main.onPreStart and type(scripts_main.onPreStart) == 'function' then
-- scripts_main.onPreStart()
-- end
-- TODO(AK) 16/08/2021: This is for Torque Script cs files to hook into. Maybe re-enable after removing CS scripts involved in start up
-- mainEventManager:postEvent("onPreStart", 0)
---------------------------------------------------------
-- core_main.onStart()
-- Initialise Core stuff.
local clientCore = require("client/core")
clientCore.initializeCore()
-- log('I', "main", "Initialized Core...")
-- first check if we have a level file to load
local levelToLoad = getConsoleVariable("$levelToLoad")
if levelToLoad ~= "" then
-- Clear out the $levelToLoad so we don't attempt to load the level again later on.
setConsoleVariable("$levelToLoad", "")
local levelFile = "levels/" .. levelToLoad
freeroam_freeroam.startFreeroam(levelFile)
end
-- scripts_main.onStart()
setConsoleVariable("$pref::Directories::Terrain", "levels/")
-- log('I', "main", "--------- Initializing Directory: scripts---------");
-- Load the scripts that start it all...
local client_init = require("client/init")
-- Init the physics plugin.
PhysicsPlugin.init("")
client_init.initClient()
if mainEventManager then
mainEventManager:postEvent("onStart", 0)
end
log("I", "", "============== GELUA VM loaded ================")
end
Callers