mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-12 16:57:50 +00:00
FG TG
This commit is contained in:
@@ -78,6 +78,8 @@ __Moose.Include( 'Scripts/Moose/Ops/CarrierAirWing.lua' )
|
|||||||
__Moose.Include( 'Scripts/Moose/Ops/Squadron.lua' )
|
__Moose.Include( 'Scripts/Moose/Ops/Squadron.lua' )
|
||||||
__Moose.Include( 'Scripts/Moose/Ops/FlightGroup.lua' )
|
__Moose.Include( 'Scripts/Moose/Ops/FlightGroup.lua' )
|
||||||
__Moose.Include( 'Scripts/Moose/Ops/ATIS.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_Balancer.lua' )
|
||||||
__Moose.Include( 'Scripts/Moose/AI/AI_Air.lua' )
|
__Moose.Include( 'Scripts/Moose/AI/AI_Air.lua' )
|
||||||
|
|||||||
@@ -2831,6 +2831,27 @@ function FLIGHTGROUP:IsStartAir()
|
|||||||
return nil
|
return nil
|
||||||
end
|
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.
|
--- Check if task description is unique.
|
||||||
-- @param #FLIGHTGROUP self
|
-- @param #FLIGHTGROUP self
|
||||||
-- @param #string description Task destription
|
-- @param #string description Task destription
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ TANKERGROUP = {
|
|||||||
Debug = false,
|
Debug = false,
|
||||||
lid = nil,
|
lid = nil,
|
||||||
tankerzones = nil,
|
tankerzones = nil,
|
||||||
missionqueue = {},
|
Qmissions = {},
|
||||||
clientqueue = {},
|
Qclients = {},
|
||||||
currentmission = nil,
|
currentmission = nil,
|
||||||
missioncounter = nil,
|
missioncounter = nil,
|
||||||
}
|
}
|
||||||
@@ -104,6 +104,16 @@ function TANKERGROUP:New(groupname)
|
|||||||
|
|
||||||
self.missioncounter=0
|
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
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -114,7 +124,7 @@ end
|
|||||||
--- Add mission for tanker.
|
--- Add mission for tanker.
|
||||||
-- @param #TANKERGROUP self
|
-- @param #TANKERGROUP self
|
||||||
-- @return #TANKERGROUP self
|
-- @return #TANKERGROUP self
|
||||||
function TANKERGROUP:AddMission(Zone)
|
function TANKERGROUP:AddMission(Zone, Altitude, Distance, Speed)
|
||||||
|
|
||||||
self.missioncounter=self.missioncounter+1
|
self.missioncounter=self.missioncounter+1
|
||||||
|
|
||||||
@@ -126,8 +136,10 @@ function TANKERGROUP:AddMission(Zone)
|
|||||||
mission.distance=UTILS.NMToMeters(Distance or 25)
|
mission.distance=UTILS.NMToMeters(Distance or 25)
|
||||||
mission.name="Aerial Refueling"
|
mission.name="Aerial Refueling"
|
||||||
mission.speed=UTILS.KnotsToMps(Speed or 280)
|
mission.speed=UTILS.KnotsToMps(Speed or 280)
|
||||||
|
mission.heading=270
|
||||||
mission.tid=nil
|
mission.tid=nil
|
||||||
|
|
||||||
|
table.insert(self.Qmissions, mission)
|
||||||
end
|
end
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -141,17 +153,30 @@ end
|
|||||||
-- @param #string To To state.
|
-- @param #string To To state.
|
||||||
function TANKERGROUP:onafterTankerStatus(From, Event, To)
|
function TANKERGROUP:onafterTankerStatus(From, Event, To)
|
||||||
|
|
||||||
|
env.info("FF Tanker status!")
|
||||||
|
|
||||||
-- FSM state.
|
-- FSM state.
|
||||||
local fsmstate=self:GetState()
|
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
|
local mission=self:_GetNextMission()
|
||||||
|
|
||||||
self:MissionStart(mission)
|
if mission then
|
||||||
|
|
||||||
|
self:MissionStart(mission)
|
||||||
|
|
||||||
|
end
|
||||||
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
|
end
|
||||||
|
|
||||||
--- On after "MissionStart" event.
|
--- On after "MissionStart" event.
|
||||||
@@ -179,7 +204,7 @@ function TANKERGROUP:onafterMissionStart(From, Event, To, Mission)
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
self:RouteTo()
|
self:RouteTo(Mission)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -192,13 +217,13 @@ end
|
|||||||
-- @return #TANKERGROUP.Mission Next mission or *nil*.
|
-- @return #TANKERGROUP.Mission Next mission or *nil*.
|
||||||
function TANKERGROUP:_GetNextMission()
|
function TANKERGROUP:_GetNextMission()
|
||||||
|
|
||||||
if #self.missionqueue==0 then
|
if #self.Qmissions==0 then
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
--TODO: Sort wrt start time and priority.
|
--TODO: Sort wrt start time and priority.
|
||||||
|
|
||||||
local mission=self.missionqueue[1]
|
local mission=self.Qmissions[1]
|
||||||
|
|
||||||
return mission
|
return mission
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user