76 lines
3.2 KiB
Lua
76 lines
3.2 KiB
Lua
--Single player purpose
|
|
|
|
local Logger = require("classes.util.Logger")
|
|
local Database = require("classes.spearhead_db")
|
|
local SpearheadEvents = require("classes.spearhead_events")
|
|
local MissionCommandsHelper = require("classes.stageClasses.helpers.MissionCommandsHelper")
|
|
local GlobalConfig = require("classes.configuration.GlobalConfig")
|
|
local CapConfig = require("classes.configuration.CapConfig")
|
|
local StageConfig = require("classes.configuration.StageConfig")
|
|
local Persistence = require("classes.persistence.Persistence")
|
|
local PersistenceConfig = require("classes.configuration.PersistenceConfig")
|
|
local SpawnManager = require("classes.helpers.SpawnManager")
|
|
local DetectionManager = require("classes.capClasses.detection.DetectionManager")
|
|
local GlobalCapManager = require("classes.capClasses.GlobalCapManager")
|
|
local GlobalStageManager = require("classes.stageClasses.GlobalStageManager")
|
|
local GlobalFleetManager = require("classes.fleetClasses.GlobalFleetManager")
|
|
local MissionEditorWarnings = require("classes.util.MissionEditorWarnings")
|
|
|
|
local defaultLogLevel = "INFO"
|
|
|
|
if SpearheadConfig and SpearheadConfig.debugEnabled == true then
|
|
defaultLogLevel = "DEBUG"
|
|
end
|
|
|
|
local startTime = timer.getTime() * 1000
|
|
|
|
SpearheadEvents.Init(defaultLogLevel)
|
|
|
|
local dbLogger = Logger.new("database", defaultLogLevel)
|
|
local standardLogger = Logger.new("", defaultLogLevel)
|
|
local databaseManager = Database.New(dbLogger)
|
|
MissionCommandsHelper.getOrCreate() -- initiate
|
|
|
|
local capConfig = CapConfig:new();
|
|
local stageConfig = StageConfig:getInstance();
|
|
|
|
local persistenceConfig = PersistenceConfig.new()
|
|
|
|
if persistenceConfig and persistenceConfig:isEnabled() == true then
|
|
local persistenceLogger = Logger.new("Persistence", defaultLogLevel)
|
|
Persistence.Init(persistenceLogger)
|
|
end
|
|
|
|
local spawnLogger = Logger.new("SpawnManager", defaultLogLevel)
|
|
local spawnManager = SpawnManager.new(spawnLogger)
|
|
local detectionLogger = Logger.new("DetectionManager", defaultLogLevel)
|
|
local detectionManager = DetectionManager.New(detectionLogger)
|
|
|
|
GlobalCapManager.start(databaseManager, capConfig, detectionManager, defaultLogLevel, spawnManager)
|
|
local globalStageManager = GlobalStageManager.new(databaseManager, stageConfig, defaultLogLevel, spawnManager)
|
|
GlobalFleetManager.start(databaseManager)
|
|
|
|
env.info(startTime .. "ms / " .. timer.getTime() * 1000 .. "ms")
|
|
local duration = (timer.getTime() * 1000) - startTime
|
|
standardLogger:info("Spearhead Initialisation duration: " .. tostring(duration) .. "ms")
|
|
|
|
local missionEditorWarningsLogger = Logger.new("MissionEditorWarnings", defaultLogLevel)
|
|
MissionEditorWarnings.WriteAll(missionEditorWarningsLogger)
|
|
globalStageManager:PrintMermaidStage()
|
|
|
|
local startDelayed = function()
|
|
globalStageManager:Start()
|
|
return nil
|
|
end
|
|
|
|
timer.scheduleFunction(startDelayed, nil, timer.getTime() + 5) -- delay start by 5 seconds so every deleted item it first removed entirely
|
|
|
|
local globalConfig = GlobalConfig.New()
|
|
if globalConfig and globalConfig:isDebugMenuEnabled() == true then
|
|
local DebugMenu = require("classes.debug.DebugMenu")
|
|
local debugMenu = DebugMenu.new()
|
|
debugMenu:RegisterMenus()
|
|
end
|
|
|
|
|