fixed stage switcher
This commit is contained in:
Binary file not shown.
@@ -6,12 +6,13 @@ local StagesByIndex = {}
|
||||
|
||||
GlobalStageManager = {}
|
||||
function GlobalStageManager:NewAndStart(database, stageConfig)
|
||||
|
||||
local logger = Spearhead.LoggerTemplate:new("StageManager", stageConfig.logLevel)
|
||||
local o = {}
|
||||
setmetatable(o, { __index = self })
|
||||
|
||||
o.onStageCompleted = function(stage)
|
||||
o.logger = logger
|
||||
|
||||
o.onStageCompleted = function(self, stage)
|
||||
local stageNumber = tostring(stage.stageNumber)
|
||||
local anyActive = false
|
||||
for _, stage in pairs(StagesByIndex[stageNumber] or {}) do
|
||||
@@ -24,7 +25,7 @@ function GlobalStageManager:NewAndStart(database, stageConfig)
|
||||
|
||||
end
|
||||
|
||||
local logger = Spearhead.LoggerTemplate:new("StageManager", stageConfig.logLevel)
|
||||
|
||||
|
||||
for _, stageName in pairs(database:getStagezoneNames()) do
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ do --init STAGE DIRECTOR
|
||||
o.db.blueAirbasegroups = {}
|
||||
o.db.airbaseIds = {}
|
||||
o.db.farps = {}
|
||||
o.activeStage = 0
|
||||
o.activeStage = -99
|
||||
o.preActivated = false
|
||||
o.stageConfig = stageConfig or {}
|
||||
o.stageDrawingId = stageDrawingId + 1
|
||||
@@ -138,7 +138,6 @@ do --init STAGE DIRECTOR
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
o.IsComplete = function(self)
|
||||
for i, mission in pairs(self.db.missions) do
|
||||
local state = mission:GetState()
|
||||
@@ -149,6 +148,19 @@ do --init STAGE DIRECTOR
|
||||
return true
|
||||
end
|
||||
|
||||
local CheckContinuousAsync = function(self, time)
|
||||
self.logger:info("Checking stage completion for stage: " .. self.zoneName)
|
||||
if self.activeStage == self.stageNumber then
|
||||
return nil -- stop looping if this stage is not even active
|
||||
end
|
||||
|
||||
if self:IsComplete() == true then
|
||||
triggerStageCompleteListeners(self)
|
||||
return nil
|
||||
end
|
||||
return time + 60
|
||||
end
|
||||
|
||||
---Activates all SAMS, Airbase units etc all at once.
|
||||
---@param self table
|
||||
o.PreActivate = function(self)
|
||||
@@ -222,6 +234,8 @@ do --init STAGE DIRECTOR
|
||||
end
|
||||
end
|
||||
timer.scheduleFunction(activateMissionsIfApplicableAsync, self, timer.getTime() + 5)
|
||||
|
||||
timer.scheduleFunction(CheckContinuousAsync, self, timer.getTime() + 60)
|
||||
end
|
||||
|
||||
o.ActivateMissionsIfApplicable = function (self)
|
||||
@@ -259,6 +273,10 @@ do --init STAGE DIRECTOR
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if activeCount <= 0 and availableMissions <= 0 then
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
---Cleans up all missions
|
||||
|
||||
@@ -22,16 +22,13 @@ local SetStageDelayed = function(number, time)
|
||||
return nil
|
||||
end
|
||||
|
||||
timer.scheduleFunction(SetStageDelayed, 1, timer.getTime() + 3)
|
||||
timer.scheduleFunction(SetStageDelayed, 0, timer.getTime() + 3)
|
||||
|
||||
Spearhead.LoadingDone()
|
||||
--Check lines of code in directory per file:
|
||||
-- Get-ChildItem . -Include *.lua -Recurse | foreach {""+(Get-Content $_).Count + " => " + $_.name }; && GCI . -Include *.lua* -Recurse | foreach{(GC $_).Count} | measure-object -sum | % Sum
|
||||
-- find . -name '*.lua' | xargs wc -l
|
||||
|
||||
|
||||
|
||||
|
||||
--- ==================== DEBUG ORDER OR ZONE VEC ===========================
|
||||
-- local zone = Spearhead.DcsUtil.getZoneByName("MISSIONSTAGE_99")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user