Skip to content

Class

HostDispatchResult

Generated GDScript class reference for GridPlacement.HostDispatchResult.

Status
Current
Version
v6.3.0
Source updated
2026-10-29
Generated on
2026-10-29

6.3. These pages document the 6.3 release, where placeable is now entry (what changed) and PlacementOwner is deprecated (migration). Still on 6.2? Your version's guides ship inside the plugin itself, under addons/grid_placement/guides/; the 6.2 URLs on this site now redirect to this series.

Typed host-level contract for GridPlacementHost dispatch results. Wraps heterogeneous downstream service result objects (PlacementReport, TerrainDemolishData, ValidationResults, ManipulationData, etc.) behind a stable host-owned API so that tests and debugging code do not depend on raw service-specific types. Use is_successful and get_issues() for the host-level outcome; use inner_result only for diagnostics.

Source: addons/grid_placement/systems/host/host_dispatch_result.gd

Syntax

class HostDispatchResult extends RefCounted

Members

NameKindSummary
lifecycle_resultPropertyCanonical placement-domain lifecycle result for a terminal dispatch. An empty sentinel carries a compatibility token, not a terminal attempt.
inner_resultPropertyThe original downstream service result (PlacementReport, TerrainDemolishData, etc.). Prefer the typed host API for test assertions; use this only for detailed diagnostics.
is_successfulPropertyWhether the dispatch completed without errors.
failure_summaryPropertyHuman-readable failure summary when the dispatch failed. Aggregated from the inner result's issue/message properties.
action_typePropertyThe action kind that was dispatched (PLACE, DEMOLISH, MOVE, etc.).
is_emptyPropertyWhether this result represents a no-op (no dispatch occurred). True when the host aborted before reaching any service method.
no_dispatch_reasonPropertyReason the host produced a no-dispatch sentinel. This is not a lifecycle reason: no terminal placement attempt was created. The named causes are the ones the host can observe on its own input seam; a confirm that none of them explains stays INPUT_RESOLVED_NONE rather than being guessed into one of them. The gesture was resolved, but nothing was selected to act on. This is the most common swallowed click: a PLACE-mode confirm with no scene entry and no terrain in the palette. The confirm arrived while no placement, MOVE, or DEMOLISH mode was active (OFF or INFO), so the intent mapper dropped it by design. The confirm press landed on a GUI control. The positioner sees it in _input before the GUI consumes it, so the host's _unhandled_input never runs for it; the positioner reports it through GridPlacementHost.record_ui_consumed_gesture().
NO_DISPATCH_REASON_NAMESField
emptyMethod
lifecycleProperty
rProperty
no_dispatch_reason_nameMethod
get_lifecycle_resultMethod
get_issuesMethod
get_surface_ofMethod
get_snapped_yMethod
get_snapped_cellMethod
from_reportMethod
from_demolish_dataMethod
missingProperty
okProperty
msgProperty
lifecycleProperty
from_validation_resultsMethod
missingProperty
issuesProperty
msgProperty
lifecycleProperty
from_manipulation_dataMethod
missingProperty
okProperty
msgProperty
lifecycleProperty
pi_childrenProperty
piProperty