Author structures and starting placements
When to use
Author a structure and starting placement when it should already be available to a board or appear as part of its initial state. A structure definition describes logical occupancy; its visual asset and structure library connection determine how a renderer presents it.
Before you start
Start with a valid board and setup from Edit board assets and setups. Choose a structure asset from the same Square, Hex, or Triangle topology family as the board.
Procedure
1. Define the structure
- Create the topology-specific structure asset under Assets > Create > Lost Lily > Grid Toolkit. Give it a stable definition ID, footprint, supported orientations, and occupancy layers.
- Select Validate Structure. Resolve topology, footprint, layer, and ID errors before adding the structure to a setup.
2. Connect its visual and library
- When the structure should be visible, create a prefab, sprite, label, or composite GridStructureVisualAuthoringAsset under Assets > Create > Lost Lily > Grid Toolkit > Visualization and assign it to the structure's Visual Authoring field.
- Add the structure to a GridStructureLibraryAsset, then assign that library to the board setup.
- For retained visualization, assign the same library to GridStructureLibraryNodeBuilder and include that builder in the renderer's structure builders.
3. Add the starting placement
- Under the setup's Placements, add the structure definition ID, a unique instance ID, an anchor, and an orientation. Initial extensions are optional starting state owned by that instance.
- Use the setup preview to inspect its footprint. Select Validate Setup after every placement change.
- Build the board through GridBoardAuthoring.
Result
The authored state starts at revision 0 with the requested structure instance and resolved
occupancy. Initial placement is initialization rather than an action, so it does not publish a
committed event batch. A configured renderer displays the assigned visual.
Troubleshooting
| Symptom | Check |
|---|---|
| The structure cannot be resolved | Keep its definition ID unique and add the asset to the setup's assigned library. |
| The footprint is rejected | Use the same topology family as the board and validate its anchor and orientation. |
| The structure exists but is invisible | Assign a visual asset and use the same library in GridStructureLibraryNodeBuilder. |
| The starting quantity or project data is absent | Add the required initial extension to the placement rather than the reusable definition. |