A backend/programmatic placement request. This is the headless entry point for consumers like Thistletide that need to submit an explicit placement command and receive a stable, typed, persistence-safe [PlacementLifecycleResult] without driving the placement UI or inspecting Godot nodes. The command is intentionally generic: Grid Placement never learns about pawns, GOAP, Bevy, or any gameplay policy. The caller attaches whatever correlation tokens it needs via [member correlation_context] — that dictionary is carried verbatim on the committed lifecycle result.
Source: addons/grid_placement/placement/placement_command.gd
Syntax
class PlacementCommand extends ResourceMembers
| Name | Kind | Summary |
|---|---|---|
operation | Property | The lifecycle operation to perform. Maps directly to a [PlacementLifecycleResult] operation constant (StringName). |
placeable | Property | The placeable definition to attempt to commit. |
target | Property | For SMOOTH placement: the world-space target position. For GRID placement: the target cell (as [Vector2i]). |
rotation | Property | Optional rotation/orientation in radians (Z-axis for 2D/3D). |
correlation_context | Property | Opaque caller metadata (Thistletide attaches simulation_run_id, pawn_id, goal_id, plan_id, action_attempt_id, task_id, construction_site_id, etc.). This is NOT inspected by Grid Placement — it is surfaced verbatim on the committed [PlacementLifecycleResult.correlation_context]. |
session | Property | The owning session. When null the host resolves the active/default session. |
commit | Method | |
cmd | Property | |
cancel | Method | |
cmd | Property | |
remove | Method | |
cmd | Property |