diff --git a/Moose Development/Moose/Wrapper/Group.lua b/Moose Development/Moose/Wrapper/Group.lua index a15005b3c..96ac5d87f 100644 --- a/Moose Development/Moose/Wrapper/Group.lua +++ b/Moose Development/Moose/Wrapper/Group.lua @@ -1187,13 +1187,12 @@ end -- @return Core.Point#COORDINATE The COORDINATE of the GROUP. function GROUP:GetCoordinate() - local Units = self:GetUnits() or {} for _,_unit in pairs(Units) do local FirstUnit = _unit -- Wrapper.Unit#UNIT - if FirstUnit then + if FirstUnit and FirstUnit:IsAlive() then local FirstUnitCoordinate = FirstUnit:GetCoordinate() @@ -1205,6 +1204,22 @@ function GROUP:GetCoordinate() end end + -- no luck, try the API way + + local DCSGroup = Group.getByName(self.GroupName) + local DCSUnits = DCSGroup:getUnits() or {} + for _,_unit in pairs(DCSUnits) do + if Object.isExist(_unit) then + local position = _unit:getPosition() + local point = position.p ~= nil and position.p or _unit:GetPoint() + if point then + --self:I(point) + local coord = COORDINATE:NewFromVec3(point) + return coord + end + end + end + BASE:E( { "Cannot GetCoordinate", Group = self, Alive = self:IsAlive() } ) end