RADIOQUEUE
- Fix for issue #1321

USERFLAG
- Added delay parameter

CLEANUP
- Fixes iniunit nil #1324

WAREHOUSE v1.0.2
- Fixes #1322
This commit is contained in:
Frank
2020-05-16 13:09:04 +02:00
parent 7d8e27c83e
commit c30ca2b18a
6 changed files with 72 additions and 6 deletions

View File

@@ -446,6 +446,47 @@ do -- COORDINATE
return gotunits, gotstatics, gotscenery, Units, Statics, Scenery
end
--- Scan/find UNITS within a certain radius around the coordinate using the world.searchObjects() DCS API function.
-- @param #COORDINATE self
-- @param #number radius (Optional) Scan radius in meters. Default 100 m.
-- @return Core.Set#SET_UNIT Set of units.
function COORDINATE:ScanUnits(radius)
local _,_,_,units=self:ScanObjects(radius, true, false, false)
local set=SET_UNIT:New()
for _,unit in pairs(units) do
set:AddUnit(unit)
end
return set
end
--- Find the closest unit to the COORDINATE within a certain radius.
-- @param #COORDINATE self
-- @param #number radius Scan radius in meters. Default 100 m.
-- @return Wrapper.Unit#UNIT The closest unit or #nil if no unit is inside the given radius.
function COORDINATE:FindClosestUnit(radius)
local units=self:ScanUnits(radius)
local umin=nil --Wrapper.Unit#UNIT
local dmin=math.huge
for _,_unit in pairs(units.Set) do
local unit=_unit --Wrapper.Unit#UNIT
local coordinate=unit:GetCoordinate()
local d=self:Get2DDistance(coordinate)
if d<dmin then
dmin=d
umin=unit
end
end
return umin
end
--- Calculate the distance from a reference @{#COORDINATE}.
-- @param #COORDINATE self