Skip to content

Class

PlacementServiceGroup

Generated GDScript class reference for GridPlacement.PlacementServiceGroup.

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.

Runtime service composition derived from [GridPlacementSettings]. Holds nullable domain services — the factory reads the game's settings to decide which services to instantiate. A terrain-only game omits [member manipulation_service]; a platformer omits [member terrain_service]. The group is [RefCounted] (not a [Resource]) because service composition is a runtime decision derived from existing settings, not editor-authored data. The settings already express domain decisions (e.g. [code]settings.manipulation == null[/code] means no manipulation). Lifecycle: [codeblock] var group := PlacementServiceGroupFactory.create_from_bundle(session.grid_placement_bundle, session) host.configure(session, group) # ... runtime ... group.dispose() [/codeblock]

Source: addons/grid_placement/services/placement_service_group.gd

Syntax

class PlacementServiceGroup extends RefCounted

Members

NameKindSummary
terrain_serviceProperty6.0.0-211: terrain slot typed by capability contract. Concrete instance is 2D or 3D depending on factory injection.
manipulation_serviceProperty6.0.0-211: manipulation slot typed by capability contract.
grid_targeting_serviceProperty6.0.0-211: targeting slot typed by capability contract.
brush_serviceProperty6.0.0-210/211: brush slot typed by capability contract. Factory refuses to attach a brush whose supported_dimensions() does not include the active dimension; 3D groups simply leave this null.
brush_coordinatorPropertyTyped 2D view of [member brush_service]: the host's 2D brush paths need [BrushCoordinator]-only methods. Null when no service is set or the service is a 3D-only implementation.
refund_servicePropertyScene-free refund service. Null when manipulation not configured.
drag_servicePropertyScene-free drag service. Always available (zero cost when unused).
object_placement_servicePropertyScene-free object placement service. Owns the build/place flow without requiring a scene node — wraps [PlacementBuildOrchestrator] directly. Created when [GridPlacementSettings.building] is non-null for a 2D group. The internal 3D path uses its separate [ObjectPlacementService3D].
target_highlighterPropertyScene-free hover highlighter. Tints the hovered target by mode and Manipulatable state (movable/demolishable/info colors). Created for 2D groups only: it modulates CanvasItems, so the 3D path (which owns its separate target_highlight_3d) leaves this null.
register_terrainMethod
register_manipulationMethod
register_targetingMethod
register_brushMethod
get_object_placement_service_for_sessionMethod
sessionPropertyThe session this group was configured from.
configureMethod
swap_active_statesMethod
disposeMethod
remove_sessionMethod
get_runtime_issuesMethod