tree coverage percentage fixed

This commit is contained in:
Grimsace
2026-02-26 14:52:19 -06:00
parent 505d9ebbdd
commit 0c56ce9b81
4 changed files with 122 additions and 72 deletions
+14 -2
View File
@@ -120,8 +120,8 @@ func LoadSettings() (*Settings, error) {
LakeSizeUpper: 5,
LakeEdgeRoughness: 50,
LakeShape: "circle",
MinTreeSize: 5,
MaxTreeSize: 20,
MinTreeSize: 1.6,
MaxTreeSize: 6.6,
TreeCoverage: 20,
TreeClumpiness: 50,
Seed: time.Now().UnixNano(),
@@ -199,6 +199,18 @@ func LoadSettings() (*Settings, error) {
settings.MinRoadAngle = 18
}
// Tree sizes are percentages of average image dimension.
// Migrate older pixel-based values when they exceed the valid percentage range.
if settings.MinTreeSize > maxTreeSizePercent || settings.MaxTreeSize > maxTreeSizePercent {
avgDim := averageImageDimension(settings.Width, settings.Height)
if avgDim < 1 {
avgDim = 1
}
settings.MinTreeSize = (settings.MinTreeSize / avgDim) * 100.0
settings.MaxTreeSize = (settings.MaxTreeSize / avgDim) * 100.0
}
settings.MinTreeSize, settings.MaxTreeSize = normalizeTreeSizePercentRange(settings.MinTreeSize, settings.MaxTreeSize)
// Road widths are percentages of average image dimension.
// Migrate older pixel-based values when they exceed the valid percentage range.
if settings.MinRoadWidth > maxRoadWidthPercent || settings.MaxRoadWidth > maxRoadWidthPercent {