From b6d725920a5dfb1c2a55fc3f13128dcd10bdd390 Mon Sep 17 00:00:00 2001 From: smiki Date: Mon, 25 Aug 2025 23:22:00 +0200 Subject: [PATCH] [ADDED] `ValidateAndRepositionGroundUnits` to OPSGROUP --- Moose Development/Moose/Ops/Legion.lua | 1 + Moose Development/Moose/Ops/OpsGroup.lua | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/Moose Development/Moose/Ops/Legion.lua b/Moose Development/Moose/Ops/Legion.lua index b3c00592f..71b1c0f55 100644 --- a/Moose Development/Moose/Ops/Legion.lua +++ b/Moose Development/Moose/Ops/Legion.lua @@ -1823,6 +1823,7 @@ function LEGION:_CreateFlightGroup(asset) --- opsgroup=ARMYGROUP:New(asset.spawngroupname) + opsgroup:SetValidateAndRepositionGroundUnits(self.ValidateAndRepositionGroundUnits) elseif self:IsFleet() then diff --git a/Moose Development/Moose/Ops/OpsGroup.lua b/Moose Development/Moose/Ops/OpsGroup.lua index 40dccb84e..02ea215f4 100644 --- a/Moose Development/Moose/Ops/OpsGroup.lua +++ b/Moose Development/Moose/Ops/OpsGroup.lua @@ -7847,6 +7847,10 @@ function OPSGROUP:_Spawn(Delay, Template) -- Debug output. self:T2({Template=Template}) + if self:IsArmygroup() and self.ValidateAndRepositionGroundUnits then + UTILS.ValidateAndRepositionGroundUnits(Template.units) + end + -- Spawn new group. self.group=_DATABASE:Spawn(Template) --local countryID=self.group:GetCountry() @@ -13955,6 +13959,15 @@ function OPSGROUP:_GetDetectedTarget() return targetgroup, targetdist end +--- This function uses Disposition and other fallback logic to find better ground positions for ground units. +--- NOTE: This is not a spawn randomizer. +--- It will try to find clear ground locations avoiding trees, water, roads, runways, map scenery, statics and other units in the area and modifies the provided positions table. +--- Maintains the original layout and unit positions as close as possible by searching for the next closest valid position to each unit. +--- Uses UTILS.ValidateAndRepositionGroundUnits. +-- @param #boolean Enabled Enable/disable the feature. +function OPSGROUP:SetValidateAndRepositionGroundUnits(Enabled) + self.ValidateAndRepositionGroundUnits = Enabled +end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------