redid wall generation completely.

This commit is contained in:
grimsace
2026-03-23 10:03:22 -05:00
parent 302a9aaf74
commit bae89fa586
9 changed files with 606 additions and 797 deletions
+22 -9
View File
@@ -12,6 +12,7 @@ import (
"image/png"
"io"
"log"
"math"
"os"
"path/filepath"
"strconv"
@@ -322,6 +323,12 @@ func main() {
return GenerateTrees(treeBase, waterMask, placementMask, buildingMask, settings.MinTreeSize, settings.MaxTreeSize, settings.TreeCoverage, settings.TreeClumpiness, seedProvider.Next())
}); ok {
treeMask = out
if wallMask != nil {
drawWallMask(treeBase, wallMask)
}
if turretMask != nil {
drawTurretMask(treeBase, turretMask)
}
finalImage = treeBase
} else {
log.Println("GenerateTrees timed out after 1 minute; continuing.")
@@ -789,16 +796,16 @@ func main() {
markPresetDirty()
}))
gateSpacingSlider := newNumericInputSlider(0, 100, settings.GateSpacing, "%.0f%%", "Gate Spacing")
gateSpacingSlider.entry.OnChanged = func(s string) {
gateSpacingSlider.validate(s, func(hasError bool) {
errorStates["gateSpacing"] = hasError
gateCountSlider := newNumericInputSliderWithStep(1, 20, float64(settings.GateCount), 1, "%.0f", "Gate Count")
gateCountSlider.entry.OnChanged = func(s string) {
gateCountSlider.validate(s, func(hasError bool) {
errorStates["gateCount"] = hasError
updateGenerateBtnState()
})
}
gateSpacingSlider.value.AddListener(binding.NewDataListener(func() {
val, _ := gateSpacingSlider.value.Get()
settings.GateSpacing = val
gateCountSlider.value.AddListener(binding.NewDataListener(func() {
val, _ := gateCountSlider.value.Get()
settings.GateCount = int(math.Round(val))
markPresetDirty()
}))
@@ -1111,6 +1118,12 @@ func main() {
return GenerateTrees(treeBase, waterMask, placementMask, buildingMask, settings.MinTreeSize, settings.MaxTreeSize, settings.TreeCoverage, settings.TreeClumpiness, seedProvider.Next())
}); ok {
treeMask = out
if wallMask != nil {
drawWallMask(treeBase, wallMask)
}
if turretMask != nil {
drawTurretMask(treeBase, turretMask)
}
finalImage = treeBase
} else {
log.Println("GenerateTrees timed out after 1 minute; continuing.")
@@ -1240,7 +1253,7 @@ func main() {
numWallsSlider,
cityCoverageSlider,
wallCurvynessSlider,
gateSpacingSlider,
gateCountSlider,
showTurretsCheck,
turretControls,
))
@@ -1553,7 +1566,7 @@ func main() {
numWallsSlider.value.Set(float64(settings.NumWalls))
cityCoverageSlider.value.Set(settings.CityCoverage)
wallCurvynessSlider.value.Set(settings.WallCurvyness)
gateSpacingSlider.value.Set(settings.GateSpacing)
gateCountSlider.value.Set(float64(settings.GateCount))
showTurretsCheck.SetChecked(settings.ShowTurrets)
turretSizeSlider.value.Set(settings.TurretSize)
turretShapeSelect.SetSelected(settings.TurretShape)