mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-21 21:17:30 +00:00
FG/FC v0.2.4
This commit is contained in:
@@ -250,12 +250,16 @@ end
|
|||||||
|
|
||||||
--- Adds a Airbase based on the Airbase Name in the DATABASE.
|
--- Adds a Airbase based on the Airbase Name in the DATABASE.
|
||||||
-- @param #DATABASE self
|
-- @param #DATABASE self
|
||||||
-- @param #string AirbaseName The name of the airbase
|
-- @param #string AirbaseName The name of the airbase.
|
||||||
|
-- @return Wrapper.Airbase#AIRBASE The AIRBASE object.
|
||||||
function DATABASE:AddAirbase( AirbaseName )
|
function DATABASE:AddAirbase( AirbaseName )
|
||||||
|
|
||||||
if not self.AIRBASES[AirbaseName] then
|
if not self.AIRBASES[AirbaseName] then
|
||||||
self.AIRBASES[AirbaseName] = AIRBASE:Register( AirbaseName )
|
self.AIRBASES[AirbaseName] = AIRBASE:Register( AirbaseName )
|
||||||
|
self:I(string.format("Adding airbase %s with %d parking spots", tostring(self.AIRBASES[AirbaseName].AirbaseName), tonumber(#self.AIRBASES[AirbaseName].parking)))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
return self.AIRBASES[AirbaseName]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@@ -903,7 +907,7 @@ function DATABASE:_RegisterAirbases()
|
|||||||
local DCSAirbaseName = DCSAirbase:getName()
|
local DCSAirbaseName = DCSAirbase:getName()
|
||||||
|
|
||||||
self:T( { "Register Airbase:", DCSAirbaseName, DCSAirbase:getID() } )
|
self:T( { "Register Airbase:", DCSAirbaseName, DCSAirbase:getID() } )
|
||||||
self:AddAirbase( DCSAirbaseName )
|
local airbase=self:AddAirbase( DCSAirbaseName )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ FLIGHTCONTROL = {
|
|||||||
|
|
||||||
--- FlightControl class version.
|
--- FlightControl class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
FLIGHTCONTROL.version="0.1.6"
|
FLIGHTCONTROL.version="0.2.4"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@@ -1193,6 +1193,11 @@ end
|
|||||||
-- @return #string Name of element or nil.
|
-- @return #string Name of element or nil.
|
||||||
function FLIGHTCONTROL:IsParkingReserved(spot)
|
function FLIGHTCONTROL:IsParkingReserved(spot)
|
||||||
|
|
||||||
|
local park=self.parking[spot.TerminalID] --Wrapper.Airbase#AIRBASE.ParkingSpot
|
||||||
|
if park.Reserved then
|
||||||
|
return tostring(park.Reserved)
|
||||||
|
end
|
||||||
|
|
||||||
-- Init all elements as NOT parking anywhere.
|
-- Init all elements as NOT parking anywhere.
|
||||||
for _,_flight in pairs(self.flights) do
|
for _,_flight in pairs(self.flights) do
|
||||||
local flight=_flight --Ops.FlightGroup#FLIGHTGROUP
|
local flight=_flight --Ops.FlightGroup#FLIGHTGROUP
|
||||||
@@ -1215,7 +1220,7 @@ end
|
|||||||
-- @param #number terminaltype (Optional) Check only this terminal type.
|
-- @param #number terminaltype (Optional) Check only this terminal type.
|
||||||
-- @param #boolean free (Optional) If true, check only free spots.
|
-- @param #boolean free (Optional) If true, check only free spots.
|
||||||
-- @return Wrapper.Airbase#AIRBASE.ParkingSpot Closest parking spot.
|
-- @return Wrapper.Airbase#AIRBASE.ParkingSpot Closest parking spot.
|
||||||
function FLIGHTCONTROL:GetClosestParkingSpot(coord, terminaltype, free)
|
function FLIGHTCONTROL:GetClosestParkingSpot(coordinate, terminaltype, free)
|
||||||
|
|
||||||
local distmin=math.huge
|
local distmin=math.huge
|
||||||
local spotmin=nil
|
local spotmin=nil
|
||||||
@@ -1227,7 +1232,7 @@ function FLIGHTCONTROL:GetClosestParkingSpot(coord, terminaltype, free)
|
|||||||
if terminaltype==nil or terminaltype==spot.TerminalType then
|
if terminaltype==nil or terminaltype==spot.TerminalType then
|
||||||
|
|
||||||
-- Get distance from coordinate to spot.
|
-- Get distance from coordinate to spot.
|
||||||
local dist=coord:Get2DDistance(spot.Coordinate)
|
local dist=coordinate:Get2DDistance(spot.Coordinate)
|
||||||
|
|
||||||
-- Check if distance is smaller.
|
-- Check if distance is smaller.
|
||||||
if dist<distmin then
|
if dist<distmin then
|
||||||
@@ -1591,14 +1596,15 @@ end
|
|||||||
-- @param Ops.FlightGroup#FLIGHTGROUP flight The flight to be removed.
|
-- @param Ops.FlightGroup#FLIGHTGROUP flight The flight to be removed.
|
||||||
function FLIGHTCONTROL:_RemoveFlight(flight)
|
function FLIGHTCONTROL:_RemoveFlight(flight)
|
||||||
|
|
||||||
|
self:_RemoveFlightFromQueue(self.Qinbound, flight, "inbound")
|
||||||
self:_RemoveFlightFromQueue(self.Qholding, flight, "holding")
|
self:_RemoveFlightFromQueue(self.Qholding, flight, "holding")
|
||||||
self:_RemoveFlightFromQueue(self.Qlanding, flight, "landing")
|
self:_RemoveFlightFromQueue(self.Qlanding, flight, "landing")
|
||||||
self:_RemoveFlightFromQueue(self.Qtaxiinb, flight, "taxiINB")
|
self:_RemoveFlightFromQueue(self.Qtaxiinb, flight, "taxiINB")
|
||||||
|
self:_RemoveFlightFromQueue(self.Qarrived, flight, "arrived")
|
||||||
self:_RemoveFlightFromQueue(self.Qparking, flight, "parking")
|
self:_RemoveFlightFromQueue(self.Qparking, flight, "parking")
|
||||||
self:_RemoveFlightFromQueue(self.Qtaxiout, flight, "taxiOUT")
|
self:_RemoveFlightFromQueue(self.Qtaxiout, flight, "taxiOUT")
|
||||||
self:_RemoveFlightFromQueue(self.Qreadyto, flight, "readyTO")
|
self:_RemoveFlightFromQueue(self.Qreadyto, flight, "readyTO")
|
||||||
self:_RemoveFlightFromQueue(self.Qtakeoff, flight, "takeoff")
|
self:_RemoveFlightFromQueue(self.Qtakeoff, flight, "takeoff")
|
||||||
self:_RemoveFlightFromQueue(self.Qarrived, flight, "arrived")
|
|
||||||
self:_RemoveFlightFromQueue(self.flights, flight, "flights")
|
self:_RemoveFlightFromQueue(self.flights, flight, "flights")
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -1700,11 +1706,11 @@ function FLIGHTCONTROL:_CheckParking()
|
|||||||
if spot.MarkerID then
|
if spot.MarkerID then
|
||||||
spot.Coordinate:RemoveMark(spot.MarkerID)
|
spot.Coordinate:RemoveMark(spot.MarkerID)
|
||||||
end
|
end
|
||||||
spot.MarkerID=spot.Coordinate:MarkToCoalition(string.format("Parking reserved for %s", tostring(spot.Reserved)), self.airbase:GetCoalition())
|
spot.MarkerID=spot.Coordinate:MarkToCoalition(string.format("Parking reserved for %s", tostring(spot.Reserved)), self:GetCoalition())
|
||||||
end
|
end
|
||||||
|
|
||||||
-- First remove all dead flights.
|
-- First remove all dead flights.
|
||||||
for i=#self.flights,1,-1 do
|
for i=1,#self.flights do
|
||||||
local flight=self.flights[i] --Ops.FlightGroup#FLIGHTGROUP
|
local flight=self.flights[i] --Ops.FlightGroup#FLIGHTGROUP
|
||||||
for _,_element in pairs(flight.elements) do
|
for _,_element in pairs(flight.elements) do
|
||||||
local element=_element --Ops.FlightGroup#FLIGHTGROUP.Element
|
local element=_element --Ops.FlightGroup#FLIGHTGROUP.Element
|
||||||
@@ -1712,7 +1718,7 @@ function FLIGHTCONTROL:_CheckParking()
|
|||||||
if spot.MarkerID then
|
if spot.MarkerID then
|
||||||
spot.Coordinate:RemoveMark(spot.MarkerID)
|
spot.Coordinate:RemoveMark(spot.MarkerID)
|
||||||
end
|
end
|
||||||
spot.MarkerID=spot.Coordinate:MarkToCoalition(string.format("Parking spot occupied by %s", tostring(element.name)), self.airbase:GetCoalition())
|
spot.MarkerID=spot.Coordinate:MarkToCoalition(string.format("Parking spot occupied by %s", tostring(element.name)), self:GetCoalition())
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1780,72 +1786,6 @@ function FLIGHTCONTROL:_CheckAirbase()
|
|||||||
return su,setstatic
|
return su,setstatic
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Scan airbase zone and find new flights.
|
|
||||||
-- @param #FLIGHTCONTROL self
|
|
||||||
-- @param Core.Set#SET_UNIT unitset Set of units.
|
|
||||||
function FLIGHTCONTROL:_CheckACstatus(unitset)
|
|
||||||
|
|
||||||
-- Make a table with all groups currently in the CCA zone.
|
|
||||||
local insideZone={}
|
|
||||||
|
|
||||||
for _,_unit in pairs(unitset:GetSetObjects()) do
|
|
||||||
local unit=_unit --Wrapper.Unit#UNIT
|
|
||||||
|
|
||||||
-- Necessary conditions to be met:
|
|
||||||
local aircraft=unit:IsAir()
|
|
||||||
local inzone=unit:IsInZone(self.zoneAirbase)
|
|
||||||
local friendly=self:GetCoalition()==unit:GetCoalition()
|
|
||||||
|
|
||||||
-- Check if this an aircraft and that it is inside the airbase zone and friendly.
|
|
||||||
if aircraft and inzone then
|
|
||||||
|
|
||||||
local group=unit:GetGroup()
|
|
||||||
local groupname=group:GetName()
|
|
||||||
|
|
||||||
-- Add group to table.
|
|
||||||
if insideZone[groupname]==nil then
|
|
||||||
insideZone[groupname]=groupname
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Find new flights that are inside the airbase zone.
|
|
||||||
for groupname,_ in pairs(insideZone) do
|
|
||||||
local flight=_DATABASE:GetFlightGroup(groupname)
|
|
||||||
|
|
||||||
if flight then
|
|
||||||
|
|
||||||
for _,_element in pairs(flight.elements) do
|
|
||||||
local element=_element --Ops.FlightGroup#FLIGHTGROUP.Element
|
|
||||||
|
|
||||||
local unit=element.unit
|
|
||||||
|
|
||||||
if unit and unit:IsAlive() then
|
|
||||||
|
|
||||||
if unit:InAir() then
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
if element.status==FLIGHTGROUP.ElementStatus.PARKING then
|
|
||||||
if element.parking then
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- Routing Functions
|
-- Routing Functions
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -1906,14 +1846,15 @@ function FLIGHTCONTROL:_LandAI(flight, parking)
|
|||||||
Template.route.points=wp
|
Template.route.points=wp
|
||||||
|
|
||||||
for i,unit in pairs(Template.units) do
|
for i,unit in pairs(Template.units) do
|
||||||
local spot=parking[i] --Ops.FlightControl#FLIGHTCONTROL.ParkingSpot
|
local spot=parking[i] --Wrapper.Airbase#AIRBASE.ParkingSpot
|
||||||
|
|
||||||
local element=flight:GetElementByName(unit.name)
|
local element=flight:GetElementByName(unit.name)
|
||||||
if element then
|
if element then
|
||||||
element.parking=spot
|
--element.parking=spot
|
||||||
unit.parking_landing=spot.TerminalID
|
unit.parking_landing=spot.TerminalID
|
||||||
local text=string.format("FF Reserving parking spot %d for unit %s", spot.TerminalID, tostring(unit.name))
|
local text=string.format("FF Reserving parking spot %d for unit %s", spot.TerminalID, tostring(unit.name))
|
||||||
self:I(self.lid..text)
|
self:I(self.lid..text)
|
||||||
|
self.parking[spot.TerminalID].Reserved=element.name
|
||||||
else
|
else
|
||||||
env.info("FF error could not get element to assign parking!")
|
env.info("FF error could not get element to assign parking!")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ FLIGHTGROUP.TaskType={
|
|||||||
|
|
||||||
--- FLIGHTGROUP class version.
|
--- FLIGHTGROUP class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
FLIGHTGROUP.version="0.2.3"
|
FLIGHTGROUP.version="0.2.4"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@@ -1264,7 +1264,8 @@ function FLIGHTGROUP:onafterElementSpawned(From, Event, To, Element)
|
|||||||
self:_UpdateStatus(Element, FLIGHTGROUP.ElementStatus.SPAWNED)
|
self:_UpdateStatus(Element, FLIGHTGROUP.ElementStatus.SPAWNED)
|
||||||
|
|
||||||
if Element.unit:InAir() then
|
if Element.unit:InAir() then
|
||||||
self:ElementAirborne(Element)
|
-- Trigger ElementAirborne event. Add a little delay because spawn is also delayed!
|
||||||
|
self:__ElementAirborne(0.11, Element)
|
||||||
else
|
else
|
||||||
|
|
||||||
-- Get parking spot.
|
-- Get parking spot.
|
||||||
@@ -1272,10 +1273,11 @@ function FLIGHTGROUP:onafterElementSpawned(From, Event, To, Element)
|
|||||||
|
|
||||||
if spot then
|
if spot then
|
||||||
|
|
||||||
|
-- Set
|
||||||
Element.parking=spot
|
Element.parking=spot
|
||||||
|
|
||||||
|
-- Trigger ElementParking event. Add a little delay because spawn is also delayed!
|
||||||
self:ElementParking(Element)
|
self:__ElementParking(0.11, Element)
|
||||||
else
|
else
|
||||||
self:E(self.lid..string.format("Element spawned not in air but not on any parking spot."))
|
self:E(self.lid..string.format("Element spawned not in air but not on any parking spot."))
|
||||||
end
|
end
|
||||||
@@ -1289,7 +1291,7 @@ end
|
|||||||
-- @param #string To To state.
|
-- @param #string To To state.
|
||||||
-- @param #FLIGHTGROUP.Element Element The flight group element.
|
-- @param #FLIGHTGROUP.Element Element The flight group element.
|
||||||
function FLIGHTGROUP:onafterElementParking(From, Event, To, Element)
|
function FLIGHTGROUP:onafterElementParking(From, Event, To, Element)
|
||||||
self:T(self.lid..string.format("Element parking %s at spot %s.", Element.name, tostring(Element.parking.TerminalID)))
|
self:I(self.lid..string.format("Element parking %s at spot %s", Element.name, tostring(Element.parking.TerminalID)))
|
||||||
|
|
||||||
|
|
||||||
-- Set element status.
|
-- Set element status.
|
||||||
@@ -1303,13 +1305,15 @@ end
|
|||||||
-- @param #string To To state.
|
-- @param #string To To state.
|
||||||
-- @param #FLIGHTGROUP.Element Element The flight group element.
|
-- @param #FLIGHTGROUP.Element Element The flight group element.
|
||||||
function FLIGHTGROUP:onafterElementTaxiing(From, Event, To, Element)
|
function FLIGHTGROUP:onafterElementTaxiing(From, Event, To, Element)
|
||||||
local TerminalID="N/A"
|
|
||||||
if Element.parking then
|
local TerminalID="N/A"
|
||||||
if Element.parking.MarkerID then
|
-- Remove marker.
|
||||||
Element.parking.Coordinate:RemoveMark(Element.parking.MarkerID)
|
if self.flightcontrol and Element.parking then
|
||||||
end
|
|
||||||
Element.parking.Reserved=nil
|
|
||||||
TerminalID=tostring(Element.parking.TerminalID)
|
TerminalID=tostring(Element.parking.TerminalID)
|
||||||
|
local parking=self.flightcontrol.parking[Element.parking.TerminalID] --Wrapper.Airbase#AIRBASE.ParkingSpot
|
||||||
|
if parking and parking.MarkerID then
|
||||||
|
parking.Coordinate:RemoveMark(parking.MarkerID)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self:I(self.lid..string.format("Element taxiing %s. Parking spot %s is now free", Element.name, TerminalID))
|
self:I(self.lid..string.format("Element taxiing %s. Parking spot %s is now free", Element.name, TerminalID))
|
||||||
@@ -1372,7 +1376,23 @@ end
|
|||||||
-- @param #string To To state.
|
-- @param #string To To state.
|
||||||
-- @param #FLIGHTGROUP.Element Element The flight group element.
|
-- @param #FLIGHTGROUP.Element Element The flight group element.
|
||||||
function FLIGHTGROUP:onafterElementArrived(From, Event, To, Element)
|
function FLIGHTGROUP:onafterElementArrived(From, Event, To, Element)
|
||||||
self:T2(self.lid..string.format("Element arrived %s.", Element.name))
|
|
||||||
|
-- Get parking spot
|
||||||
|
local parking=self:GetParkingSpot(Element, 10, self.flightcontrol and self.flightcontrol.airbase or nil)
|
||||||
|
|
||||||
|
if parking then
|
||||||
|
if self.flightcontrol then
|
||||||
|
local spot=self.flightcontrol.parking[parking.TerminalID] --Wrapper.Airbase#AIRBASE.ParkingSpot
|
||||||
|
self:I(self.lid..string.format("Element arrived %s at %s on parking spot %s reserved for %s", Element.name, parking.AirbaseName, parking.TerminalID, tostring(spot.Reserved)))
|
||||||
|
if spot.Reserved then
|
||||||
|
if spot.Reserved==Element.name then
|
||||||
|
spot.Reserved=nil
|
||||||
|
else
|
||||||
|
self:E(self.lid..string.format("WARNING: Parking spot was not reserved for this element!"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Set element status.
|
-- Set element status.
|
||||||
self:_UpdateStatus(Element, FLIGHTGROUP.ElementStatus.ARRIVED)
|
self:_UpdateStatus(Element, FLIGHTGROUP.ElementStatus.ARRIVED)
|
||||||
@@ -3404,14 +3424,15 @@ end
|
|||||||
-- @param #FLIGHTGROUP self
|
-- @param #FLIGHTGROUP self
|
||||||
-- @param #FLIGHTGROUP.Element element Element of the flight group.
|
-- @param #FLIGHTGROUP.Element element Element of the flight group.
|
||||||
-- @param #number maxdist Distance threshold in meters. Default 5 m.
|
-- @param #number maxdist Distance threshold in meters. Default 5 m.
|
||||||
|
-- @param Wrapper.Airbase#AIRBASE airbase (Optional) The airbase to check for parking. Default is closest airbase to the element.
|
||||||
-- @return Wrapper.Airbase#AIRBASE.ParkingSpot Parking spot or nil if no spot is within distance threshold.
|
-- @return Wrapper.Airbase#AIRBASE.ParkingSpot Parking spot or nil if no spot is within distance threshold.
|
||||||
function FLIGHTGROUP:GetParkingSpot(element, maxdist)
|
function FLIGHTGROUP:GetParkingSpot(element, maxdist, airbase)
|
||||||
|
|
||||||
local coord=element.unit:GetCoordinate()
|
local coord=element.unit:GetCoordinate()
|
||||||
|
|
||||||
local ab=coord:GetClosestAirbase(nil, self:GetCoalition())
|
airbase=airbase or coord:GetClosestAirbase(nil, self:GetCoalition())
|
||||||
|
|
||||||
local _,_,dist,spot=coord:GetClosestParkingSpot(ab)
|
local _,_,dist,spot=coord:GetClosestParkingSpot(airbase)
|
||||||
|
|
||||||
if dist<=maxdist and not element.unit:InAir() then
|
if dist<=maxdist and not element.unit:InAir() then
|
||||||
return spot
|
return spot
|
||||||
@@ -3597,6 +3618,14 @@ function FLIGHTGROUP:GetParking(airbase)
|
|||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Check flightcontrol data.
|
||||||
|
if self.flightcontrol and self.flightcontrol.airbasename==airbase:GetName() then
|
||||||
|
local problem=self.flightcontrol:IsParkingReserved(parkingspot)
|
||||||
|
if problem then
|
||||||
|
free=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Check if spot is free
|
-- Check if spot is free
|
||||||
if free then
|
if free then
|
||||||
|
|||||||
@@ -15,7 +15,10 @@
|
|||||||
--- @type AIRBASE
|
--- @type AIRBASE
|
||||||
-- @field #string ClassName Name of the class, i.e. "AIRBASE".
|
-- @field #string ClassName Name of the class, i.e. "AIRBASE".
|
||||||
-- @field #table CategoryName Names of airbase categories.
|
-- @field #table CategoryName Names of airbase categories.
|
||||||
|
-- @field #string AirbaseName Name of the airbase.
|
||||||
|
-- @field Core.Zone#ZONE_RADIUS Zone around the airbase.
|
||||||
-- @field #number activerwyno Active runway number (forced).
|
-- @field #number activerwyno Active runway number (forced).
|
||||||
|
-- @field #table parking Table of parking spots.
|
||||||
-- @extends Wrapper.Positionable#POSITIONABLE
|
-- @extends Wrapper.Positionable#POSITIONABLE
|
||||||
|
|
||||||
--- Wrapper class to handle the DCS Airbase objects:
|
--- Wrapper class to handle the DCS Airbase objects:
|
||||||
@@ -57,7 +60,10 @@ AIRBASE = {
|
|||||||
[Airbase.Category.HELIPAD] = "Helipad",
|
[Airbase.Category.HELIPAD] = "Helipad",
|
||||||
[Airbase.Category.SHIP] = "Ship",
|
[Airbase.Category.SHIP] = "Ship",
|
||||||
},
|
},
|
||||||
|
AirbaseName=nil,
|
||||||
|
AirbaseZone=nil,
|
||||||
activerwyno=nil,
|
activerwyno=nil,
|
||||||
|
parking={},
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Enumeration to identify the airbases in the Caucasus region.
|
--- Enumeration to identify the airbases in the Caucasus region.
|
||||||
@@ -346,10 +352,10 @@ AIRBASE.TerminalType = {
|
|||||||
-- @param #string AirbaseName The name of the airbase.
|
-- @param #string AirbaseName The name of the airbase.
|
||||||
-- @return Wrapper.Airbase#AIRBASE
|
-- @return Wrapper.Airbase#AIRBASE
|
||||||
function AIRBASE:Register( AirbaseName )
|
function AIRBASE:Register( AirbaseName )
|
||||||
|
local self = BASE:Inherit( self, POSITIONABLE:New( AirbaseName ) ) --#AIRBASE
|
||||||
local self = BASE:Inherit( self, POSITIONABLE:New( AirbaseName ) )
|
|
||||||
self.AirbaseName = AirbaseName
|
self.AirbaseName = AirbaseName
|
||||||
self.AirbaseZone = ZONE_RADIUS:New( AirbaseName, self:GetVec2(), 2500 )
|
self.AirbaseZone = ZONE_RADIUS:New( AirbaseName, self:GetVec2(), 2500 )
|
||||||
|
self.parking=self:GetParkingSpotsTable()
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user