Read-only 3D placement validity policy seam. Runtime placement and development proof tooling consume this evaluator through one shared policy implementation. Everything here is static and side-effect free: callers supply explicit read-only state and receive typed reasons, per-cell evidence, and the resolved support facts used by preview/commit.
Source: addons/grid_placement/systems/building/3d/placement_validation_3d.gd
Syntax
class PlacementValidation3D extends RefCountedMembers
| Name | Kind | Summary |
|---|---|---|
reasons | Property | Typed rejection reasons for one placement attempt. Structured result of one validation attempt. Bitmask of [enum Reason] flags. |
issues | Property | Human-readable aggregate issue strings, layered on [member reasons]. |
evidence | Property | Read-only evidence for preview/commit/diagnostic consumers. |
cell_issues | Property | CELL-only projection: footprint cell -> blocking issue strings. |
is_valid | Method | |
has_reason | Method | |
cell_issue_map | Method | |
grid | Property | Read-only context for one validation attempt. |
settings | Property | |
world_3d | Property | Physics world used only when surface support mode opts into physics. |
occupied | Property | Occupied cells: column key (Vector3i) -> bool/node. |
families | Property | Column key -> family name for adjacent-snap checks. |
world_registry | Property | |
preview_yaw_steps | Property | |
faces | Property | |
face_occupancy | Property | |
face_families | Property | |
edges | Property | |
corners | Property | |
validate_cell | Method | |
result | Property | |
cells | Property | |
profile | Property | |
occupy_columns | Property | |
min_surface | Property | |
max_surface | Property | |
missing_grid_ground | Property | |
cell_key | Property | |
occupied_issue | Property | |
surface | Property | |
support_mode | Property | |
use_grid_authority | Property | |
world_issue | Property | |
samples | Property | |
support | Property | |
has_physics_support | Property | |
ground_issue | Property | |
surface | Property | |
steep_issue | Property | |
conflict_cells | Property | |
first_conflict | Property | |
conflict | Property | |
conflict_issue | Property | |
partner_dirs | Property | |
snap_issue | Property | |
validate_cell_map | Method | |
validate_edge | Method | |
result | Property | |
edge_key | Property | |
profile | Property | |
cell_key | Property | |
family | Property | |
validate_face | Method | |
result | Property | |
face_key | Property | |
height_band | Property | |
occupancy_key | Property | |
profile | Property | |
family | Property | |
validate_corner | Method | |
result | Property | |
key | Property | |
profile | Property | |
settings | Property | |
settings | Property | |
topology | Property | |
candidates | Property | |
host | Property | |
x_neighbor | Property | |
z_neighbor | Property | |
x_cells | Property | |
z_cells | Property | |
x_yaw | Property | |
z_yaw | Property | |
node | Property | |
components | Property | |
instance | Property | |
mount | Property | |
has_compatible_neighbor | Method | |
compatible_neighbor_dirs | Method | |
dirs | Property | |
neighbor | Property | |
neighbor_key | Property | |
issue | Property |