Vixen
dd8b0a81
csharp
public static class TerrainStrings

Every word the terrain and foliage toolsets show, declared once.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Two families and one lone id, because most of these ids are computed. Eight commands exist once per digit in each of the two modes, one per sculpt tool, one per paint tool and one per category — a StringId property can only declare an id that is written out, so until StringFamily existed both modes built their labels at the call site.

⚠ The computed halves are built from the same lists the registration walks — TerrainMode.Tools, PaintTools, Categories, SlotCount and FoliageMode.Tools — so a tool added to one of those lists gets a declared label rather than an undeclared one, and the family throws while the mode registers if it does not.

⚠ One id here was in neither half of CheckStrings' census. FoliageTypeRemoveUnavailable was written as Unavailable = new("…", "…") in an object initialiser, which carries neither the type name the loose-id patterns anchor on nor a new StringId the construction patterns match — so it was neither declared nor counted. The analyzer sees it, which is how migrating this assembly found it.

Fields and properties (4)

  • public static StringFamily TerrainCommands

    Every command the terrain mode registers, by its command id.

  • public static StringFamily FoliageCommands

    Every command the foliage mode registers, by its command id.

  • public static StringId FoliageTypeRemoveUnavailable

    Why removing a foliage type is greyed out.

  • public static IReadOnlyList<StringId> All

    What a translator's template for these two toolsets holds.

Used by (3)

  • FoliageModeVixen.Editor.Terrain
  • TerrainModeVixen.Editor.Terrain
  • TerrainModuleVixen.Editor.Terrain