Update FlightGroup.lua

This commit is contained in:
Frank
2019-08-21 21:16:06 +02:00
parent 2d4520995a
commit d9d246e194
+16 -13
View File
@@ -252,6 +252,7 @@ function FLIGHTGROUP:New(groupname)
end end
end end
self.taskcurrent=0
self.taskcounter=0 self.taskcounter=0
-- Autostart. -- Autostart.
@@ -428,7 +429,7 @@ function FLIGHTGROUP:onafterFlightStatus(From, Event, To)
self:I(text) self:I(text)
-- Check no current task. -- Check no current task.
if not self.taskcurrent then if self.taskcurrent<=0 then
-- Get task from queue. -- Get task from queue.
local task=self:GetTask() local task=self:GetTask()
@@ -755,22 +756,25 @@ function FLIGHTGROUP:onafterTaskExecute(From, Event, To, Task)
self:I(self.sid..text) self:I(self.sid..text)
-- Set current task. -- Set current task.
self.taskcurrent=Task self.taskcurrent=Task.id
-- Clear all tasks. -- Clear all tasks.
self.flightgroup:ClearTasks() self.flightgroup:ClearTasks()
local Coord=self.flightgroup:GetCoordinate()
-- Task done. -- Task done.
local TaskDone=self.flightgroup:TaskFunction("FLIGHTGROUP._TaskDone", self, self.taskcurrent) local TaskDone=self.flightgroup:TaskFunction("FLIGHTGROUP._TaskDone", self, Task)
local TaskOrbit=self.flightgroup:TaskOrbit(Coord, 10000)
-- Combo task. -- Combo task.
local TaskCombo=self.flightgroup:TaskCombo({self.taskcurrent.dcstask, TaskDone}) local TaskCombo=self.flightgroup:TaskCombo({Task.dcstask, TaskDone, TaskOrbit})
-- Set task for group. -- Set task for group.
self.flightgroup:SetTask(TaskCombo, 1) self.flightgroup:SetTask(TaskCombo, 1)
-- Task status executing. -- Task status executing.
self.taskcurrent.status=FLIGHTGROUP.TaskStatus.EXECUTING Task.status=FLIGHTGROUP.TaskStatus.EXECUTING
end end
@@ -781,23 +785,21 @@ end
-- @param #string Event Event. -- @param #string Event Event.
-- @param #string To To state. -- @param #string To To state.
-- @param #FLIGHTGROUP.Task Task The task. -- @param #FLIGHTGROUP.Task Task The task.
function FLIGHTGROUP:onafterTaskPause(From, Event, To) function FLIGHTGROUP:onafterTaskPause(From, Event, To, Task)
if self.taskcurrent then if self.taskcurrent>0 then
-- Clear all tasks. -- Clear all tasks.
self.flightgroup:ClearTasks() self.flightgroup:ClearTasks()
-- Task status executing. -- Task status executing.
self.taskcurrent.status=FLIGHTGROUP.TaskStatus.PAUSED Task.status=FLIGHTGROUP.TaskStatus.PAUSED
end end
end end
--- On after TaskDone event. --- On after TaskDone event.
-- @param #FLIGHTGROUP self -- @param #FLIGHTGROUP self
-- @param #string From From state. -- @param #string From From state.
@@ -811,6 +813,7 @@ function FLIGHTGROUP:onafterTaskDone(From, Event, To, Task)
MESSAGE:New(text, 10, "DEBUG"):ToAllIf(self.Debug) MESSAGE:New(text, 10, "DEBUG"):ToAllIf(self.Debug)
self:I(self.sid..text) self:I(self.sid..text)
self.taskcurrent=0
Task.status=FLIGHTGROUP.TaskStatus.ACCOMPLISHED Task.status=FLIGHTGROUP.TaskStatus.ACCOMPLISHED
end end
@@ -882,16 +885,16 @@ end
--@param Wrapper.Group#GROUP group Group that reached the holding zone. --@param Wrapper.Group#GROUP group Group that reached the holding zone.
--@param #FLIGHTGROUP.Mission --@param #FLIGHTGROUP.Mission
--@param #FLIGHTGROUP flightgroup Flight group. --@param #FLIGHTGROUP flightgroup Flight group.
--@param #table task Task. --@param #FLIGHTGROUP.Task task Task.
function FLIGHTGROUP._TaskDone(group, flightgroup, task) function FLIGHTGROUP._TaskDone(group, flightgroup, task)
-- Debug message. -- Debug message.
local text=string.format("Task Done") local text=string.format("Task Done %s", task.description)
flightgroup:I(flightgroup.sid..text) flightgroup:I(flightgroup.sid..text)
-- Set current task to nil so that the next in line can be executed. -- Set current task to nil so that the next in line can be executed.
if flightgroup then if flightgroup then
flightgroup.taskcurrent=nil flightgroup:TaskDone(task)
end end
end end