Scene-free manipulation service. Makes move/rotate/flip/demolish logic directly unit-testable without a scene tree. Handles the full manipulation lifecycle: move copy creation, rule validation, completion/placement, cancellation, rotation/flip/scale transforms, physics-layer management, and demolish. Signal emission and indicator signals (move_indicators_ready) stay on the hosting Node — the service emits them through injected callbacks. Usage: var service := ManipulationService2D.new() service.configure(states, manipulation_settings, actions, indicator_context, logger) var data := service.try_move(some_node)
Source: addons/grid_placement/systems/manipulation/manipulation_service_2d.gd
Syntax
class ManipulationService2D extends ManipulationServiceContractMembers
| Name | Kind | Summary |
|---|---|---|
move_indicators_ready | Signal | |
supported_dimensions | Method | |
configure | Method | |
set_source_tree_exiting_callback | Method | |
get_last_transform_denial | Method | |
set_states | Method | |
try_move | Method | |
try_placement | Method | |
try_demolish | Method | |
cancel | Method | |
rotate | Method | |
flip_horizontal | Method | |
flip_vertical | Method | |
get_targeted | Method | |
set_targeted | Method | |
is_ready | Method |