Skip to content

Class

PlacementValidationContext

Generated GDScript class reference for GridPlacement.PlacementValidationContext.

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.

Context object carrying all necessary data for placement validation. Supports both object-based (via indicators) and terrain-based (via cells) validation.

Source: addons/grid_placement/placement/placement_rules/placement_validation_context.gd

Syntax

class PlacementValidationContext extends RefCounted

Members

NameKindSummary
action_typePropertyThe type of action being validated.
cellPropertyThe cell being validated.
cell_3dPropertyThe 3D cell being validated. Set only by [method for_terrain_3d]; the 2D [member cell] stays at its default so 2D-only rules never observe a 3D paint through a 2D coordinate.
terrain_namePropertyThe terrain name (if in PAINT_TILE mode).
placeablePropertyThe placeable resource (if in PLACE_OBJECT mode).
preview_cellsPropertyAll cells currently being placed/previewed (for adjacency checks in a brush). Also known as batch cells.
preview_cells_3dProperty3D batch cells for multi-cell 3D terrain validation. Set only by [method for_terrain_3d].
indicatorPropertyThe indicator being validated (if in PLACE_OBJECT mode).
target_mapPropertyThe target TileMapLayer.
target_map_3dPropertyThe target GridMap for 3D terrain validation. Set only by [method for_terrain_3d].
is_3dPropertyTrue when this context describes a 3D terrain paint. The validation pipeline runs only rules that opt into 3D (see [method TilePaintRule.supports_3d_terrain]) so 2D-only rules never observe 3D coordinates they cannot interpret.
targeting_statePropertyReference to the targeting state for occupancy and collision queries.
world_facts_provider_2dPropertyOptional game-owned provider for placement-relevant world/physics facts. Grid Placement consumes this abstraction but does not own the backend (Godot Physics, Avian 2D, custom simulation, etc.).
shared_cachePropertyPer-batch scratch cache shared across every cell context in one multi-cell validation pass (line/rect/outline/flood). Rules memoize expensive, cell-independent resolutions here (e.g. a terrain's collision polygons) so a batch resolves them once instead of once per cell. Empty for single-cell validation. Lifetime = one batch; never global static state.
for_terrainMethod
ctxProperty
for_terrain_3dMethod
ctxProperty
for_objectMethod
ctxProperty