Dimension-dispatched 3D counterpart of the 2D [IndicatorManager]. Shows one [RuleCheckIndicator3D] per footprint cell of the active preview, tinted green/red from the per-cell verdicts of [method ObjectPlacementService3D.validate_cell_map]. Mount-aware projection: CELL/terrain feedback lands on the evaluated support surface. EDGE feedback is carried by the tinted placement ghost; FACE/CORNER/TOP feedback remains socket-specific. Indicators never fall back to an unrelated lower slot — an elevated host is evaluated (and highlighted) at its own height. Visual design: CELL/terrain indicators are flat ground-projected quads. EDGE placements do not add a separate marker layer because the ghost tint already communicates the mount verdict. Explicitly 3D-only glue over [ObjectPlacementService3D]; it shares no code with the 2D indicator pipeline on purpose, to keep explicit 2D/3D service boundaries over premature generalization. This node is the 3D rule/validation host; consumers read placement validity through [PlacementReport]/service results, and this node never decides game-world consequences.
Source: addons/grid_placement/placement/manager/indicator_manager_3d.gd
Syntax
class IndicatorManager3D extends Node3DMembers
| Name | Kind | Summary |
|---|---|---|
SURFACE_LIFT | Field | Lift above the resolved surface so quads never z-fight the ground, the grid-line plane, or the ghost's lower faces. Too small a lift reads as depth-precision scan lines where the coplanar surfaces overlap. |
CELL_INSET | Field | Quad inset within the cell so adjacent indicators read as separate cells. |
configure | Method | |
shows_ground_indicators | Method | |
update_for_cell | Method | |
update_for_cells | Method | |
show_cells | Method | |
update_for_face | Method | |
update_for_edge | Method | |
update_for_corner | Method | |
clear | Method | |
get_indicators | Method | |
get_visible_count | Method |