Add D2K random map generator

Adds a random map generator tailored for the Dune 2000 mod,
D2kMapGenerator.

This map generator has some limitations compared to the RA/CnC
map generator (ExperimentalMapGenerator):

- Symmetry is far less accurate for non-trivial rotations.
- No circular map shapes.
- Unplayable regions are not obstructed and no symmetry corrections
  are applied. This is partly due to mod limitations (e.g., no
  decorative actors), but I've also considered it less important.
- Somewhat higher map generation failure rates, due to more extreme
  play-space requirements.

In order to support the map generator, some additional features are
added to common map generation utilties:

- A "FromTemplates" MultiBrush collection shorthand.
- Path partitioning logic in Terraformer, use to split paths into
  multiple TilingPaths with different segment types.
This commit is contained in:
Ashley Newson
2025-07-09 21:27:17 +01:00
committed by Gustas Kažukauskas
parent 484784bd4d
commit 5f407211ac
9 changed files with 1554 additions and 17 deletions

View File

@@ -26,6 +26,36 @@ ScrollPanel@LABEL_DROPDOWN_TEMPLATE:
Width: PARENT_WIDTH - 20
Height: 25
ScrollPanel@LABEL_DROPDOWN_WITH_TOOLTIP_TEMPLATE:
Width: DROPDOWN_WIDTH
Children:
ScrollItem@HEADER:
Background: scrollheader
Width: PARENT_WIDTH - 27
Height: 13
X: 2
Y: 0
Visible: false
Children:
Label@LABEL:
Font: TinyBold
Width: PARENT_WIDTH
Height: 13
Align: Center
ScrollItem@TEMPLATE:
Width: PARENT_WIDTH - 27
Height: 25
X: 2
Y: 0
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: BUTTON_TOOLTIP
Visible: false
Children:
Label@LABEL:
X: 10
Width: PARENT_WIDTH - 20
Height: 25
ScrollPanel@PLAYERACTION_DROPDOWN_TEMPLATE:
Width: DROPDOWN_WIDTH
Children: