This commit is contained in:
Frank
2020-01-31 12:02:13 +01:00
parent 4bb96a7730
commit 5fda8c1c1b
3 changed files with 58 additions and 10 deletions
+2
View File
@@ -78,6 +78,8 @@ __Moose.Include( 'Scripts/Moose/Ops/CarrierAirWing.lua' )
__Moose.Include( 'Scripts/Moose/Ops/Squadron.lua' )
__Moose.Include( 'Scripts/Moose/Ops/FlightGroup.lua' )
__Moose.Include( 'Scripts/Moose/Ops/ATIS.lua' )
__Moose.Include( 'Scripts/Moose/Ops/TankerGroup.lua' )
__Moose.Include( 'Scripts/Moose/Ops/AwacsGroup.lua' )
__Moose.Include( 'Scripts/Moose/AI/AI_Balancer.lua' )
__Moose.Include( 'Scripts/Moose/AI/AI_Air.lua' )
@@ -2831,6 +2831,27 @@ function FLIGHTGROUP:IsStartAir()
return nil
end
--- Check if this group is "late activated".
-- @param #FLIGHTGROUP self
-- @return #boolean Hot start?
function FLIGHTGROUP:IsLateActivated()
local wp=self.group:GetTemplate()
local template=_DATABASE:GetGroupTemplate(self.groupname)
if template then
if template.lateActivation==true then
return true
else
return false
end
end
return nil
end
--- Check if task description is unique.
-- @param #FLIGHTGROUP self
-- @param #string description Task destription
+35 -10
View File
@@ -47,8 +47,8 @@ TANKERGROUP = {
Debug = false,
lid = nil,
tankerzones = nil,
missionqueue = {},
clientqueue = {},
Qmissions = {},
Qclients = {},
currentmission = nil,
missioncounter = nil,
}
@@ -104,6 +104,16 @@ function TANKERGROUP:New(groupname)
self.missioncounter=0
self.lid=string.format("TANKERGROUP %s | ", groupname)
BASE:TraceOn()
BASE:TraceLevel(3)
BASE:TraceClass(self.ClassName)
env.info("FF NEW Tanker!")
self:TankerStatus()
return self
end
@@ -114,7 +124,7 @@ end
--- Add mission for tanker.
-- @param #TANKERGROUP self
-- @return #TANKERGROUP self
function TANKERGROUP:AddMission(Zone)
function TANKERGROUP:AddMission(Zone, Altitude, Distance, Speed)
self.missioncounter=self.missioncounter+1
@@ -126,8 +136,10 @@ function TANKERGROUP:AddMission(Zone)
mission.distance=UTILS.NMToMeters(Distance or 25)
mission.name="Aerial Refueling"
mission.speed=UTILS.KnotsToMps(Speed or 280)
mission.heading=270
mission.tid=nil
table.insert(self.Qmissions, mission)
end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -141,17 +153,30 @@ end
-- @param #string To To state.
function TANKERGROUP:onafterTankerStatus(From, Event, To)
env.info("FF Tanker status!")
-- FSM state.
local fsmstate=self:GetState()
local mission=self:_GetNextMission()
-- First check if group is alive?
if self.group and self.group:IsAlive()==true then
if mission then
self:MissionStart(mission)
local mission=self:_GetNextMission()
if mission then
self:MissionStart(mission)
end
end
local mymission=self.currentmission and self.currentmission.name or "N/A"
local text=string.format("Tanker Status %s: Mission=%s (%d)", fsmstate, mymission, #self.Qmissions)
self:I(self.lid..text)
self:__TankerStatus(30)
end
--- On after "MissionStart" event.
@@ -179,7 +204,7 @@ function TANKERGROUP:onafterMissionStart(From, Event, To, Mission)
end
self:RouteTo()
self:RouteTo(Mission)
end
@@ -192,13 +217,13 @@ end
-- @return #TANKERGROUP.Mission Next mission or *nil*.
function TANKERGROUP:_GetNextMission()
if #self.missionqueue==0 then
if #self.Qmissions==0 then
return nil
end
--TODO: Sort wrt start time and priority.
local mission=self.missionqueue[1]
local mission=self.Qmissions[1]
return mission
end