- Changed holding point to holding pattern or stack
- Replaced MESSAGE by TextMessageToFlight
This commit is contained in:
Frank
2022-05-20 20:53:45 +02:00
parent 6279f1920e
commit 15994e7be8
2 changed files with 37 additions and 37 deletions

View File

@@ -45,7 +45,7 @@
-- @field #number Tlanding Time stamp (abs.) when last flight got landing clearance. -- @field #number Tlanding Time stamp (abs.) when last flight got landing clearance.
-- @field #number Nparkingspots Total number of parking spots. -- @field #number Nparkingspots Total number of parking spots.
-- @field Core.Spawn#SPAWN parkingGuard Parking guard spawner. -- @field Core.Spawn#SPAWN parkingGuard Parking guard spawner.
-- @field #table holdingpoints Holding points. -- @field #table holdingpatterns Holding points.
-- @field #number hpcounter Counter for holding zones. -- @field #number hpcounter Counter for holding zones.
-- @field Sound.SRS#MSRS msrsTower Moose SRS wrapper. -- @field Sound.SRS#MSRS msrsTower Moose SRS wrapper.
-- @field Sound.SRS#MSRS msrsPilot Moose SRS wrapper. -- @field Sound.SRS#MSRS msrsPilot Moose SRS wrapper.
@@ -102,17 +102,17 @@ FLIGHTCONTROL = {
Nlanding = nil, Nlanding = nil,
dTlanding = nil, dTlanding = nil,
Nparkingspots = nil, Nparkingspots = nil,
holdingpoints = {}, holdingpatterns = {},
hpcounter = 0, hpcounter = 0,
} }
--- Holding point. Contains holding stacks. --- Holding point. Contains holding stacks.
-- @type FLIGHTCONTROL.HoldingPoint -- @type FLIGHTCONTROL.HoldingPattern
-- @field Core.Zone#ZONE arrivalzone Zone where aircraft should arrive. -- @field Core.Zone#ZONE arrivalzone Zone where aircraft should arrive.
-- @field #number uid Unique ID. -- @field #number uid Unique ID.
-- @field #string name Name of the zone, which is <zonename>-<uid>. -- @field #string name Name of the zone, which is <zonename>-<uid>.
-- @field Core.Point#COORDINATE pos0 First position of racetrack holding point. -- @field Core.Point#COORDINATE pos0 First position of racetrack holding pattern.
-- @field Core.Point#COORDINATE pos1 Second position of racetrack holding point. -- @field Core.Point#COORDINATE pos1 Second position of racetrack holding pattern.
-- @field #number angelsmin Smallest holding altitude in angels. -- @field #number angelsmin Smallest holding altitude in angels.
-- @field #number angelsmax Largest holding alitude in angels. -- @field #number angelsmax Largest holding alitude in angels.
-- @field #table stacks Holding stacks. -- @field #table stacks Holding stacks.
@@ -121,8 +121,8 @@ FLIGHTCONTROL = {
-- @type FLIGHTCONTROL.HoldingStack -- @type FLIGHTCONTROL.HoldingStack
-- @field Ops.FlightGroup#FLIGHTGROUP flightgroup Flight group of this stack. -- @field Ops.FlightGroup#FLIGHTGROUP flightgroup Flight group of this stack.
-- @field #number angels Holding altitude in Angels. -- @field #number angels Holding altitude in Angels.
-- @field Core.Point#COORDINATE pos0 First position of racetrack holding point. -- @field Core.Point#COORDINATE pos0 First position of racetrack holding pattern.
-- @field Core.Point#COORDINATE pos1 Second position of racetrack holding point. -- @field Core.Point#COORDINATE pos1 Second position of racetrack holding pattern.
-- @field #number heading Heading. -- @field #number heading Heading.
--- Player menu data. --- Player menu data.
@@ -417,7 +417,7 @@ function FLIGHTCONTROL:SetActiveRunwayNumber(no)
return self return self
end end
--- Add a holding point. --- Add a holding pattern.
-- This is a zone where the aircraft... -- This is a zone where the aircraft...
-- @param #FLIGHTCONTROL self -- @param #FLIGHTCONTROL self
-- @param Core.Zone#ZONE ArrivalZone Zone where planes arrive. -- @param Core.Zone#ZONE ArrivalZone Zone where planes arrive.
@@ -426,7 +426,7 @@ end
-- @param #number FlightlevelMin Min flight level. Default 5. -- @param #number FlightlevelMin Min flight level. Default 5.
-- @param #number FlightlevelMax Max flight level. Default 15. -- @param #number FlightlevelMax Max flight level. Default 15.
-- @return #FLIGHTCONTROL self -- @return #FLIGHTCONTROL self
function FLIGHTCONTROL:AddHoldingPoint(ArrivalZone, Heading, Length, FlightlevelMin, FlightlevelMax) function FLIGHTCONTROL:AddHoldingPattern(ArrivalZone, Heading, Length, FlightlevelMin, FlightlevelMax)
-- Get ZONE if passed as string. -- Get ZONE if passed as string.
if type(ArrivalZone)=="string" then if type(ArrivalZone)=="string" then
@@ -436,7 +436,7 @@ function FLIGHTCONTROL:AddHoldingPoint(ArrivalZone, Heading, Length, Flightlevel
-- Increase counter. -- Increase counter.
self.hpcounter=self.hpcounter+1 self.hpcounter=self.hpcounter+1
local hp={} --#FLIGHTCONTROL.HoldingPoint local hp={} --#FLIGHTCONTROL.HoldingPattern
hp.arrivalzone=ArrivalZone hp.arrivalzone=ArrivalZone
hp.uid=self.hpcounter hp.uid=self.hpcounter
hp.name=string.format("%s-%d", ArrivalZone:GetName(), hp.uid) hp.name=string.format("%s-%d", ArrivalZone:GetName(), hp.uid)
@@ -459,9 +459,9 @@ function FLIGHTCONTROL:AddHoldingPoint(ArrivalZone, Heading, Length, Flightlevel
end end
-- Add to table. -- Add to table.
table.insert(self.holdingpoints, hp) table.insert(self.holdingpatterns, hp)
-- Mark holding point. -- Mark holding pattern.
hp.pos0:ArrowToAll(hp.pos1, nil, {1,0,0}, 1, {1,1,0}, 0.5, 2, true) hp.pos0:ArrowToAll(hp.pos1, nil, {1,0,0}, 1, {1,1,0}, 0.5, 2, true)
ArrivalZone:DrawZone() ArrivalZone:DrawZone()
@@ -2242,7 +2242,7 @@ function FLIGHTCONTROL:_PlayerRequestInbound(groupname)
self:SetFlightStatus(flight, FLIGHTCONTROL.FlightStatus.INBOUND) self:SetFlightStatus(flight, FLIGHTCONTROL.FlightStatus.INBOUND)
-- Get holding point. -- Get holding point.
local stack=self:_GetHoldingpoint(flight) local stack=self:_GetHoldingStack(flight)
if stack then if stack then
@@ -2642,7 +2642,7 @@ function FLIGHTCONTROL:_PlayerRequestTaxi(groupname)
flight:_UpdateMenu() flight:_UpdateMenu()
else else
MESSAGE:New(string.format("Negative, you must be PARKING to request TAXI!"), 5):ToAll() self:TextMessageToFlight(string.format("Negative, you must be PARKING to request TAXI!"), flight)
end end
else else
@@ -2693,7 +2693,7 @@ function FLIGHTCONTROL:_PlayerAbortTaxi(groupname)
flight:_UpdateMenu() flight:_UpdateMenu()
else else
MESSAGE:New(string.format("Negative, you must be PARKING or TAXIING to abort TAXI!"), 5):ToAll() self:TextMessageToFlight(string.format("Negative, you must be PARKING or TAXIING to abort TAXI!"), flight)
end end
else else
@@ -2771,7 +2771,7 @@ function FLIGHTCONTROL:_PlayerRequestTakeoff(groupname)
flight:_UpdateMenu() flight:_UpdateMenu()
else else
MESSAGE:New(string.format("Negative, you must request TAXI before you can request TAKEOFF!"), 5):ToAll() self:TextMessageToFlight(string.format("Negative, you must request TAXI before you can request TAKEOFF!"), flight)
end end
else else
@@ -2820,7 +2820,7 @@ function FLIGHTCONTROL:_PlayerAbortTakeoff(groupname)
flight:_UpdateMenu() flight:_UpdateMenu()
else else
MESSAGE:New("Negative, You are NOT in the takeoff queue", 5):ToAll() self:TextMessageToFlight("Negative, You are NOT in the takeoff queue", flight)
end end
else else
@@ -3207,7 +3207,7 @@ function FLIGHTCONTROL:_LandAI(flight, parking)
end end
-- Debug message. -- Debug message.
MESSAGE:New(string.format("Respawning group %s", flight.groupname)):ToAll() self:TextMessageToFlight(string.format("Respawning group %s", flight.groupname), flight)
--Respawn the group. --Respawn the group.
flight:Respawn(Template) flight:Respawn(Template)
@@ -3221,14 +3221,14 @@ function FLIGHTCONTROL:_LandAI(flight, parking)
end end
--- Get holding point. --- Get holding stack.
-- @param #FLIGHTCONTROL self -- @param #FLIGHTCONTROL self
-- @param Ops.FlightGroup#FLIGHTGROUP flight Flight group. -- @param Ops.FlightGroup#FLIGHTGROUP flight Flight group.
-- @return #FLIGHTCONTROL.HoldingStack Holding point. -- @return #FLIGHTCONTROL.HoldingStack Holding point.
function FLIGHTCONTROL:_GetHoldingpoint(flight) function FLIGHTCONTROL:_GetHoldingStack(flight)
--[[ --[[
local holdingpoint={} --#FLIGHTCONTROL.HoldingPoint local holdingpattern={} --#FLIGHTCONTROL.HoldingPattern
local runway=self:GetActiveRunway() local runway=self:GetActiveRunway()
@@ -3238,20 +3238,20 @@ function FLIGHTCONTROL:_GetHoldingpoint(flight)
local angels=UTILS.FeetToMeters(math.random(6,10)*1000) local angels=UTILS.FeetToMeters(math.random(6,10)*1000)
holdingpoint.pos0=runway.position:Translate(dx, hdg):SetAltitude(angels) holdingpattern.pos0=runway.position:Translate(dx, hdg):SetAltitude(angels)
holdingpoint.pos1=holdingpoint.pos0:Translate(dz, runway.heading):SetAltitude(angels) holdingpattern.pos1=holdingpattern.pos0:Translate(dz, runway.heading):SetAltitude(angels)
]] ]]
-- Debug message. -- Debug message.
self:T(self.lid..string.format("Getting holding point for flight %s", flight:GetName())) self:T(self.lid..string.format("Getting holding point for flight %s", flight:GetName()))
for i,_hp in pairs(self.holdingpoints) do for i,_hp in pairs(self.holdingpatterns) do
local holdingpoint=_hp --#FLIGHTCONTROL.HoldingPoint local holdingpattern=_hp --#FLIGHTCONTROL.HoldingPattern
self:T(self.lid..string.format("Checking holding point %s", holdingpoint.name)) self:T(self.lid..string.format("Checking holding point %s", holdingpattern.name))
for j,_stack in pairs(holdingpoint.stacks) do for j,_stack in pairs(holdingpattern.stacks) do
local stack=_stack --#FLIGHTCONTROL.HoldingStack local stack=_stack --#FLIGHTCONTROL.HoldingStack
local name=stack.flightgroup and stack.flightgroup:GetName() or "empty" local name=stack.flightgroup and stack.flightgroup:GetName() or "empty"
self:T(self.lid..string.format("Stack %d: %s", j, name)) self:T(self.lid..string.format("Stack %d: %s", j, name))

View File

@@ -2556,22 +2556,22 @@ function FLIGHTGROUP:_LandAtAirbase(airbase, SpeedTo, SpeedHold, SpeedLand)
if fc and self.isAI then if fc and self.isAI then
-- Get holding point from flight control. -- Get holding stack from flight control.
local HoldingPoint=fc:_GetHoldingpoint(self) local stack=fc:_GetHoldingStack(self)
if HoldingPoint then if stack then
HoldingPoint.flightgroup=self stack.flightgroup=self
self.stack=HoldingPoint self.stack=stack
-- Race track points. -- Race track points.
p0=HoldingPoint.pos0 p0=stack.pos0
p1=HoldingPoint.pos1 p1=stack.pos1
-- Debug marks. -- Debug marks.
if true then if false then
p0:MarkToAll(string.format("%s: Holding point P0, alt=%d meters", self:GetName(), p0.y)) p0:MarkToAll(string.format("%s: Holding stack P0, alt=%d meters", self:GetName(), p0.y))
p1:MarkToAll(string.format("%s: Holding point P1, alt=%d meters", self:GetName(), p0.y)) p1:MarkToAll(string.format("%s: Holding stack P1, alt=%d meters", self:GetName(), p0.y))
end end
else else