1
0
forked from 0ad/0ad

Make ClumpPlacer determine the correct fraction of failed attempts to place points

Comments by: @smiley, @elexis
Patch by: @Inari
Fixes #5092
Differential Revision: https://code.wildfiregames.com/D1414
This was SVN commit r26503.
This commit is contained in:
Stan 2022-02-27 21:49:32 +00:00
parent 1ff3b45a1e
commit a04ad0beb2

View File

@ -75,12 +75,14 @@ ClumpPlacer.prototype.place = function(constraint)
}
let failed = 0;
let count = 0;
for (let stepAngle = 0; stepAngle < intPerim; ++stepAngle)
{
let position = this.centerPosition.clone();
let radiusUnitVector = new Vector2D(0, 1).rotate(-2 * Math.PI * stepAngle / perim);
let maxRadiusSteps = Math.ceil(radius * (1 + (1 - this.coherence) * noise[stepAngle]));
count += maxRadiusSteps;
for (let stepRadius = 0; stepRadius < maxRadiusSteps; ++stepRadius)
{
let tilePos = position.clone().floor();
@ -100,5 +102,5 @@ ClumpPlacer.prototype.place = function(constraint)
}
}
return failed > this.size * this.failFraction ? undefined : points;
return failed > count * this.failFraction ? undefined : points;
};