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_session(session) host.configure(session, group) # ... runtime ... group.dispose() [/codeblock]
Source: addons/grid_placement/services/placement_service_group.gd
Syntax
class PlacementServiceGroup extends RefCountedMembers
| Name | Kind | Summary |
|---|---|---|
terrain_service | Property | 6.0.0-211: terrain slot typed by capability contract. Concrete instance is 2D or 3D depending on factory injection. |
manipulation_service | Property | 6.0.0-211: manipulation slot typed by capability contract. |
grid_targeting_service | Property | 6.0.0-211: targeting slot typed by capability contract. |
brush_service | Property | 6.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_coordinator | Property | Back-compat: property alias for callers still reading the old field name (grid_placement_host and friends access `.brush_coordinator` directly, so this must be a property, not just a helper method). |
refund_service | Property | Scene-free refund service. Null when manipulation not configured. |
drag_service | Property | Scene-free drag service. Always available (zero cost when unused). |
register_terrain | Method | |
register_manipulation | Method | |
register_targeting | Method | |
register_brush | Method | |
session | Property | The session this group was configured from. |
configure | Method | |
states | Property | |
settings | Property | |
actions | Property | |
logger | Property | |
targeting_settings | Property | |
mode_state | Property | |
logger_ref | Property | |
path_manager | Property | |
manip_settings | Property | |
contexts | Property | |
indicator_ctx | Property | |
swap_active_states | Method | |
dispose | Method | |
get_runtime_issues | Method | |
issues | Property |
Source
addons/grid_placement/services/placement_service_group.gd
Plugin docs root:gdscript/plugins/grid_placement_dev/docs