Draft — Unreleased:This page is in active development. APIs, class names, and behavior may change before the release is finalized. Use it as a preview of what's coming — not as a stable integration target.
ManipulationParent
- Transform container for preview objects during manipulation. Applies rotation, translation, and scale transforms to preview objects during building/manipulation. All child nodes automatically inherit these transforms through Godot's scene tree. ManipulationParent is the canonical transform parent used by GridPositioner2D and the GridPlacementHost pattern. It is NOT a deprecated orchestrator. The IndicatorManager is parented to ManipulationParent so indicators inherit the preview's rotation, scale, and flip transforms via the scene tree. Top-Down/Platformer: IndicatorManager as child of ManipulationParent (indicators rotate with preview) Isometric: IndicatorManager as child of ManipulationParent (indicators maintain correct orientation) ## Key Methods
apply_rotation(degrees)- Rotate this node and all children
apply_horizontal_flip()- Flip horizontally
apply_vertical_flip()- Flip vertically
reset()- Reset to identity transform ## Transform Behavior
- Manipulation start: Resets to identity
- During manipulation: Accumulates transforms
- Manipulation end/cancel: Resets to identity For detailed parenting decisions, isometric considerations, and architectural patterns: See [b]docs/v5-0-0/guides/isometric_implementation.mdx[/b] For system architecture: See [b]docs/systems/parent_node_architecture.md[/b]
Source: addons/grid_placement/systems/manipulation/manipulation_parent.gd
Syntax
class ManipulationParent extends PlacementNode2DMembers
| Name | Kind | Summary |
|---|---|---|
rotated | Event | Emitted after a rotation transform is applied to this node (and inherited by all children, including the preview sprite). Fires for every rotation path: grid-aware clockwise/counter-clockwise and the fallback [method apply_rotation], from both input-driven and programmatic ([ManipulationService2D]) callers. Consumers may use this to swap a directional/pre-rotated sprite instead of visually spinning the texture -- whether to do so is entirely at the consumer's discretion (see the manipulation guide). [param new_rotation_degrees] This node's resulting [member Node2D.global_rotation_degrees]. [param cardinal] Best-effort nearest cardinal facing via [method PlacementGridRotationUtils.degrees_to_cardinal]; most meaningful for 90-degree grid increments. |
flipped | Event | Emitted after a flip transform is applied to this node (and inherited by all children). A single signal for both axes -- branch on [param axis] rather than connecting two separate signals. Mirrors the repo's signal-consolidation direction (see [signal ManipulationState.action_performed]). [param axis] Which axis was mirrored ([enum PlacementEnums.FlipAxis]). |
set_host | Method | |
reset | Method | |
apply_rotation | Method | |
apply_grid_rotation_clockwise | Method | |
new_rotation_deg | Property | |
apply_grid_rotation_counter_clockwise | Method | |
new_rotation_deg | Property | |
apply_horizontal_flip | Method | |
apply_vertical_flip | Method | |
settings | Property | |
cardinal | Property | |
handle_transform_input | Method | |
failed | Property | |
target_map | Property | |
failed | Property | |
target_map | Property | |
failed | Property | -- FLIP H / V -- |
failed | Property | |
manipulation_data | Property | |
manipulation_settings | Property | |
actions | Property | |
manipulatable_settings | Property | |
states | Property | |
settings | Property | |
resolve_placement_dependencies | Method | |
validation_issues | Property | |
get_runtime_issues | Method | |
issues | Property |
Source
addons/grid_placement/systems/manipulation/manipulation_parent.gd
Plugin docs root:gdscript/plugins/grid_placement_dev/docs