From aaabf5220ee7987ce5038e2c699c62a8c34a4b27 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 27 Jan 2020 00:09:35 +0100 Subject: [PATCH] FG/FC v0.2.4 --- Moose Development/Moose/Core/Database.lua | 8 +- Moose Development/Moose/Ops/FlightControl.lua | 91 ++++--------------- Moose Development/Moose/Ops/FlightGroup.lua | 59 +++++++++--- Moose Development/Moose/Wrapper/Airbase.lua | 10 +- 4 files changed, 74 insertions(+), 94 deletions(-) diff --git a/Moose Development/Moose/Core/Database.lua b/Moose Development/Moose/Core/Database.lua index 1931afc27..6aaf3c64d 100644 --- a/Moose Development/Moose/Core/Database.lua +++ b/Moose Development/Moose/Core/Database.lua @@ -250,12 +250,16 @@ end --- Adds a Airbase based on the Airbase Name in the DATABASE. -- @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 ) if not self.AIRBASES[AirbaseName] then 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 + + return self.AIRBASES[AirbaseName] end @@ -903,7 +907,7 @@ function DATABASE:_RegisterAirbases() local DCSAirbaseName = DCSAirbase:getName() self:T( { "Register Airbase:", DCSAirbaseName, DCSAirbase:getID() } ) - self:AddAirbase( DCSAirbaseName ) + local airbase=self:AddAirbase( DCSAirbaseName ) end end diff --git a/Moose Development/Moose/Ops/FlightControl.lua b/Moose Development/Moose/Ops/FlightControl.lua index 1dfbd5030..17a014b85 100644 --- a/Moose Development/Moose/Ops/FlightControl.lua +++ b/Moose Development/Moose/Ops/FlightControl.lua @@ -119,7 +119,7 @@ FLIGHTCONTROL = { --- FlightControl class version. -- @field #string version -FLIGHTCONTROL.version="0.1.6" +FLIGHTCONTROL.version="0.2.4" ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- TODO list @@ -1193,6 +1193,11 @@ end -- @return #string Name of element or nil. 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. for _,_flight in pairs(self.flights) do local flight=_flight --Ops.FlightGroup#FLIGHTGROUP @@ -1215,7 +1220,7 @@ end -- @param #number terminaltype (Optional) Check only this terminal type. -- @param #boolean free (Optional) If true, check only free spots. -- @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 spotmin=nil @@ -1227,7 +1232,7 @@ function FLIGHTCONTROL:GetClosestParkingSpot(coord, terminaltype, free) if terminaltype==nil or terminaltype==spot.TerminalType then -- Get distance from coordinate to spot. - local dist=coord:Get2DDistance(spot.Coordinate) + local dist=coordinate:Get2DDistance(spot.Coordinate) -- Check if distance is smaller. if dist