wgt01
This commit is contained in:
@@ -92,6 +92,14 @@ Keep the terrain/crosser vocabulary **small and deliberate** per tileset.
|
||||
Decimals allowed. BioWare original content used **5 m**; custom sets use **2–3 m**.
|
||||
- **wgt01 uses a raised tier at Z = 1.5 m**, so its `Transition = 1.5` and the
|
||||
raised tiles sit at corner height `1`.
|
||||
- **"Raised" is a height, NOT a terrain type.** Verified vs `tcn01`: every raised
|
||||
corner is still `cobble` with `…Height=1`; only cobble ever carries a non-zero
|
||||
height (water/building stay at 0). Raise/Lower is the toolbar height tool acting on
|
||||
cobble corners — do **not** add a `raised` entry to `[TERRAIN TYPES]`. Making it
|
||||
paintable requires three things together: `HasHeightTransition=1`, a set of
|
||||
**ungrouped transition tiles** covering the cobble:0 ↔ cobble:1 corner patterns
|
||||
(ramps / retaining edges), and the `[PRIMARY RULES]` that let the brush step a
|
||||
corner's height. Any one missing and Raise/Lower is inert.
|
||||
- Walkable ground can only be *raised* in whole steps, never lowered below Z=0.
|
||||
Visual water/void may dip (e.g. canal at Z = −0.3) **only under a non-walkable
|
||||
walkmesh** — never a playable under/over space (matches `KICKOFF.md`).
|
||||
@@ -114,10 +122,34 @@ It needs, in the `.set`:
|
||||
`Floor` (the terrain the **eraser** paints), `HasHeightTransition=1` (turns on
|
||||
Raise/Lower).
|
||||
`[PRIMARY RULES]` only *refine* auto-picking (cascading corner transitions) and are
|
||||
**optional** — stock custom sets ship `Count=0` (verified: `wut01.set`). **Eraser,
|
||||
**optional even for multi-terrain paint** — verified: stock `wut01.set` paints **6
|
||||
terrains** with `[PRIMARY RULES] Count=0`. What actually makes a terrain paintable is
|
||||
having a `[TILE#]` for **every corner pattern the brush can request** (all rotations),
|
||||
each **ungrouped**. Rules just smooth cascading auto-transitions; stock `tcn01` (City,
|
||||
5 terrains + heights) ships **76** for polish, but you can ship `Count=0` and add them
|
||||
later. **Eraser,
|
||||
Raise/Lower, and fill are built-in toolbar actions driven by those `[GENERAL]`
|
||||
fields — they are not palette entries.**
|
||||
|
||||
**The random-fill pool (verified vs `tcn01`, 2026-07-04).** For a given corner
|
||||
pattern the brush picks a **random tile among the ungrouped tiles that match** —
|
||||
**membership in any `[GROUP#]` removes a tile from that pool.** So the ungrouped
|
||||
same-corner tiles *are* the fill: the cobble the `Default` terrain spawns a new area
|
||||
with, the variants the brush scatters, the tile the eraser resets to. Consequences
|
||||
that bite:
|
||||
- Grouping **every** tile empties the `Default` pool → the New Area wizard
|
||||
null-derefs (`Access violation … Write of 00000040`). Keep ≥1 ungrouped tile per
|
||||
paintable corner pattern.
|
||||
- **Every terrain/transition tile must stay UNGROUPED** to take part in painting.
|
||||
`[GROUP#]` is only for click-place **prefabs** (streets, bridges, statues) that the
|
||||
builder should *not* get at random. A "canal edge" you want the brush to auto-lay is
|
||||
a terrain tile (ungrouped), not a feature.
|
||||
- `tcn01`'s 513 tiles collapse to **58 distinct corner-tuples** — the surplus is art
|
||||
variety. A geometry-only set needs roughly **one tile per corner-tuple**, and one
|
||||
model can serve all four rotations of a tuple as four `[TILE#]` entries differing
|
||||
only in `Orientation` (0/90/180/270) and the correspondingly-rotated corners/edges
|
||||
(the engine rotates model **and** walkmesh together).
|
||||
|
||||
**System 2 — the palette (`.itp`): Features & Groups only.** The right-side
|
||||
"Standard" tree click-places **prefabs**: a *feature* (1×1) or a *group* (N×M). A
|
||||
palette entry is placeable **only if it is backed by a `[GROUP#]` in the `.set`** —
|
||||
|
||||
Reference in New Issue
Block a user