Refine civilian building placement and multibrushes

This commit is contained in:
Ashley Newson
2025-02-09 02:35:30 +00:00
committed by Gustas Kažukauskas
parent cc632660eb
commit 98fe3c98ab
12 changed files with 47 additions and 133 deletions

View File

@@ -338,7 +338,8 @@ namespace OpenRA.Mods.Common.MapGenerator
List<ActorPlan> actorPlans,
CellLayer<Replaceability> replace,
IReadOnlyList<MultiBrush> availableBrushes,
MersenneTwister random)
MersenneTwister random,
bool alwaysPreferLargerBrushes = false)
{
var brushesByAreaDict = new Dictionary<int, List<MultiBrush>>();
foreach (var brush in availableBrushes)
@@ -438,7 +439,7 @@ namespace OpenRA.Mods.Common.MapGenerator
var brushWeights = brushes.Select(o => o.Weight).ToArray();
var brushWeightForArea = brushWeights.Sum();
var remainingQuota =
brushArea == 1
(brushArea == 1 || alwaysPreferLargerBrushes)
? int.MaxValue
: (int)(((long)replaceMposes.Count * brushWeightForArea + brushTotalWeight - 1) / brushTotalWeight);
RefreshIndices();