mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -62,6 +62,8 @@
|
|||||||
-- @field #number runwayrepairtime Time in seconds until runway will be repaired after it was destroyed. Default is 3600 sec (one hour).
|
-- @field #number runwayrepairtime Time in seconds until runway will be repaired after it was destroyed. Default is 3600 sec (one hour).
|
||||||
-- @field #boolean markerParking If `true`, occupied parking spots are marked.
|
-- @field #boolean markerParking If `true`, occupied parking spots are marked.
|
||||||
-- @field #boolean nosubs If `true`, SRS TTS is without subtitles.
|
-- @field #boolean nosubs If `true`, SRS TTS is without subtitles.
|
||||||
|
-- @field #number Nplayers Number of human players. Updated at each StatusUpdate call.
|
||||||
|
-- @field #boolean radioOnlyIfPlayers Activate to limit transmissions only if players are active at the airbase.
|
||||||
-- @extends Core.Fsm#FSM
|
-- @extends Core.Fsm#FSM
|
||||||
|
|
||||||
--- **Ground Control**: Airliner X, Good news, you are clear to taxi to the active.
|
--- **Ground Control**: Airliner X, Good news, you are clear to taxi to the active.
|
||||||
@@ -272,6 +274,7 @@ FLIGHTCONTROL = {
|
|||||||
holdingpatterns = {},
|
holdingpatterns = {},
|
||||||
hpcounter = 0,
|
hpcounter = 0,
|
||||||
nosubs = false,
|
nosubs = false,
|
||||||
|
Nplayers = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Holding point. Contains holding stacks.
|
--- Holding point. Contains holding stacks.
|
||||||
@@ -329,7 +332,7 @@ FLIGHTCONTROL.FlightStatus={
|
|||||||
|
|
||||||
--- FlightControl class version.
|
--- FlightControl class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
FLIGHTCONTROL.version="0.7.5"
|
FLIGHTCONTROL.version="0.7.7"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@@ -417,6 +420,9 @@ function FLIGHTCONTROL:New(AirbaseName, Frequency, Modulation, PathToSRS, Port,
|
|||||||
-- Init msrs queue.
|
-- Init msrs queue.
|
||||||
self.msrsqueue=MSRSQUEUE:New(self.alias)
|
self.msrsqueue=MSRSQUEUE:New(self.alias)
|
||||||
|
|
||||||
|
-- Set that transmission is only if alive players on the server.
|
||||||
|
self:SetTransmitOnlyWithPlayers(true)
|
||||||
|
|
||||||
-- Init msrs bases
|
-- Init msrs bases
|
||||||
local path = PathToSRS or MSRS.path
|
local path = PathToSRS or MSRS.path
|
||||||
local port = Port or MSRS.port or 5002
|
local port = Port or MSRS.port or 5002
|
||||||
@@ -571,6 +577,31 @@ function FLIGHTCONTROL:SetVerbosity(VerbosityLevel)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Limit radio transmissions only if human players are registered at the airbase.
|
||||||
|
-- This can be used to reduce TTS messages on heavy missions.
|
||||||
|
-- @param #FLIGHTCONTROL self
|
||||||
|
-- @param #boolean Switch If `true` or `nil` no transmission if there are no players. Use `false` enable TTS with no players.
|
||||||
|
-- @return #FLIGHTCONTROL self
|
||||||
|
function FLIGHTCONTROL:SetRadioOnlyIfPlayers(Switch)
|
||||||
|
if Switch==nil or Switch==true then
|
||||||
|
self.radioOnlyIfPlayers=true
|
||||||
|
else
|
||||||
|
self.radioOnlyIfPlayers=false
|
||||||
|
end
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Set whether to only transmit TTS messages if there are players on the server.
|
||||||
|
-- @param #FLIGHTCONTROL self
|
||||||
|
-- @param #boolean Switch If `true`, only send TTS messages if there are alive Players. If `false` or `nil`, transmission are done also if no players are on the server.
|
||||||
|
-- @return #FLIGHTCONTROL self
|
||||||
|
function FLIGHTCONTROL:SetTransmitOnlyWithPlayers(Switch)
|
||||||
|
self.msrsqueue:SetTransmitOnlyWithPlayers(Switch)
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Set subtitles to appear on SRS TTS messages.
|
--- Set subtitles to appear on SRS TTS messages.
|
||||||
-- @param #FLIGHTCONTROL self
|
-- @param #FLIGHTCONTROL self
|
||||||
-- @return #FLIGHTCONTROL self
|
-- @return #FLIGHTCONTROL self
|
||||||
@@ -4082,6 +4113,15 @@ function FLIGHTCONTROL:_CheckFlights()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Count number of players
|
||||||
|
self.Nplayers=0
|
||||||
|
for _,_flight in pairs(self.flights) do
|
||||||
|
local flight=_flight --Ops.FlightGroup#FLIGHTGROUP
|
||||||
|
if not flight.isAI then
|
||||||
|
self.Nplayers=self.Nplayers+1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Check speeding.
|
-- Check speeding.
|
||||||
if self.speedLimitTaxi then
|
if self.speedLimitTaxi then
|
||||||
|
|
||||||
@@ -4314,6 +4354,11 @@ end
|
|||||||
-- @param #number Delay Delay in seconds before the text is transmitted. Default 0 sec.
|
-- @param #number Delay Delay in seconds before the text is transmitted. Default 0 sec.
|
||||||
function FLIGHTCONTROL:TransmissionTower(Text, Flight, Delay)
|
function FLIGHTCONTROL:TransmissionTower(Text, Flight, Delay)
|
||||||
|
|
||||||
|
if self.radioOnlyIfPlayers==true and self.Nplayers==0 then
|
||||||
|
self:T(self.lid.."No players ==> skipping TOWER radio transmission")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- Spoken text.
|
-- Spoken text.
|
||||||
local text=self:_GetTextForSpeech(Text)
|
local text=self:_GetTextForSpeech(Text)
|
||||||
|
|
||||||
@@ -4345,6 +4390,12 @@ end
|
|||||||
-- @param #number Delay Delay in seconds before the text is transmitted. Default 0 sec.
|
-- @param #number Delay Delay in seconds before the text is transmitted. Default 0 sec.
|
||||||
function FLIGHTCONTROL:TransmissionPilot(Text, Flight, Delay)
|
function FLIGHTCONTROL:TransmissionPilot(Text, Flight, Delay)
|
||||||
|
|
||||||
|
if self.radioOnlyIfPlayers==true and self.Nplayers==0 then
|
||||||
|
self:T(self.lid.."No players ==> skipping PILOT radio transmission")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Get player data.
|
-- Get player data.
|
||||||
local playerData=Flight:_GetPlayerData()
|
local playerData=Flight:_GetPlayerData()
|
||||||
|
|
||||||
|
|||||||
@@ -2804,6 +2804,11 @@ function FLIGHTGROUP:_CheckGroupDone(delay, waittime)
|
|||||||
self:T(self.lid.."Engaging! Group NOT done...")
|
self:T(self.lid.."Engaging! Group NOT done...")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
-- Check if group is going for fuel.
|
||||||
|
if self:IsGoing4Fuel() then
|
||||||
|
self:T(self.lid.."Going for FUEL! Group NOT done...")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- Number of tasks remaining.
|
-- Number of tasks remaining.
|
||||||
local nTasks=self:CountRemainingTasks()
|
local nTasks=self:CountRemainingTasks()
|
||||||
@@ -3420,6 +3425,9 @@ function FLIGHTGROUP:onafterRefuel(From, Event, To, Coordinate)
|
|||||||
|
|
||||||
self:Route({wp0, wp9}, 1)
|
self:Route({wp0, wp9}, 1)
|
||||||
|
|
||||||
|
-- Set RTB on Bingo option. Currently DCS does not execute the refueling task if RTB_ON_BINGO is set to "NO RTB ON BINGO"
|
||||||
|
self.group:SetOption(AI.Option.Air.id.RTB_ON_BINGO, true)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- On after "Refueled" event.
|
--- On after "Refueled" event.
|
||||||
@@ -3433,6 +3441,9 @@ function FLIGHTGROUP:onafterRefueled(From, Event, To)
|
|||||||
local text=string.format("Flight group finished refuelling")
|
local text=string.format("Flight group finished refuelling")
|
||||||
self:T(self.lid..text)
|
self:T(self.lid..text)
|
||||||
|
|
||||||
|
-- Set RTB on Bingo option to "NO RTB ON BINGO"
|
||||||
|
self.group:SetOption(AI.Option.Air.id.RTB_ON_BINGO, false)
|
||||||
|
|
||||||
-- Check if flight is done.
|
-- Check if flight is done.
|
||||||
self:_CheckGroupDone(1)
|
self:_CheckGroupDone(1)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user