Skip to content

Class

PlacementValidation3D

Generated GDScript class reference for GridPlacement.PlacementValidation3D.

Status
Draft
Version
v6.0
Updated
Development docs generated from GDScript source

This is unreleased documentation in active development. APIs, class names, and behavior may change before the final release.

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 RefCounted

Members

NameKindSummary
GRID_BOUNDFieldTyped rejection reasons for one placement attempt. A footprint tile has no supporting wall within [const WALL_SUPPORT_RADIUS]. A roof cap tile sits outside [const ROOF_SPAN_RADIUS] of any roof slope. The anchor cell sits outside the GridMap bounds. A footprint cell has no accepting COLUMN provider directly underneath it ([member PlacementSnapProfile3D.require_column_support]). GridMap components are only addressable inside +/-2^20; cells at or past the bound (including the INT_MAX MISS sentinel) fail closed here so no GridMap call ever sees them.
SPAN_OVERLAP_EPSILONFieldMinimum span penetration (meters) that counts as an EDGE overlap. Touching end-to-end (zero-area contact) stays legal; true overlaps penetrate by decimeters, so a millimeter guard only absorbs float dust.
reasonsPropertyStructured result of one validation attempt. Bitmask of [enum Reason] flags.
issuesPropertyHuman-readable aggregate issue strings, layered on [member reasons].
cell_issuesPropertyCELL-only projection: footprint cell -> blocking issue strings.
footprint_cellsPropertyFootprint cells the CELL policy checked.
has_grid_surfacePropertyTrue once the column survey recorded [member grid_min_surface] and [member grid_max_surface] (0.0 when a bound had no ground).
grid_min_surfaceProperty
grid_max_surfaceProperty
support_modeProperty[enum ObjectPlacementSettings3D.SurfaceSupportMode], or -1 before the support stage ran.
support_authorityPropertyWhich policy decided support: &"gridmap", &"gridmap_fallback", &"physics", &"physics_required_unavailable", or empty before the support stage ran.
supportPropertyPhysics support evaluation, or null when physics was not sampled.
conflict_idPropertyFirst conflicting world record id, empty without a world conflict.
conflict_cellsProperty
snap_partner_dirsPropertyNeighbor directions holding a compatible snap partner.
unsupported_cellsPropertyFootprint cells lacking the attachment/wall/roof support they need.
cleared_decorPropertyLive clearable-decor roots the commit removes before instantiating.
evidencePropertyRead-only Dictionary projection of the typed evidence for diagnostics and proof tooling. Keys appear only for evidence that was recorded.
has_physics_anchorMethod
is_validMethod
has_reasonMethod
rejectMethod
reject_atMethod
add_cell_issueMethod
cell_issue_mapMethod
gridPropertyRead-only context for one validation attempt.
settingsProperty
world_3dPropertyPhysics world used only when surface support mode opts into physics.
world_registryProperty
preview_yaw_stepsProperty
mountsPropertyCommitted GRID mounts the attempt is checked against.
excluded_nodePropertyA live node treated as ABSENT by every host lookup, without mutating [member mounts]. Lets a caller ask the counterfactual a removal needs: "would this CORNER still be hosted if [param mounts] had no [member excluded_node]?". Null for ordinary validation, where nothing is excluded and every committed mount counts. (#1529)
validate_cellMethod
resultProperty
cellsProperty
profileProperty
occupy_columnsProperty
surveyProperty
min_surfacePropertyGridMap surface range of one CELL footprint, read by the support stage.
max_surfaceProperty
missing_groundProperty
surveyProperty
floating_columnsProperty
keyProperty
occupantProperty
existingProperty
surfaceProperty
top_rowProperty
mountProperty
rootProperty
support_modeProperty
use_grid_authorityProperty
requiredProperty
samplesProperty
supportProperty
settingsProperty
requires_groundProperty
surfaceProperty
conflict_cellsProperty
first_conflictProperty
conflictProperty
snap_issueProperty
lackingProperty
partner_dirsProperty
lacking_supportProperty
lacking_spanProperty
lacking_columnProperty
validate_cell_mapMethod
validate_edgeMethod
resultProperty
edge_keyProperty
span_issueProperty
support_issueProperty
profileProperty
span_support_issueProperty
cell_keyProperty
edge_requires_supportMethod
profileProperty
edge_has_hostsMethod
cell_has_hostsMethod