DragManager

Internal: Start drag operation and...

sort Weight: 10

Internal: Start drag operation and return drag data. [return] DragPathData instance, or null if drag cannot start

Version: v5.0.0

STABLE

Inherits: GBSystemsComponent
Source: drag_manager.gd
Parsing: AST-based for maximum accuracy with symbol typing


Constants

DEFAULT_NAME

Value: "DragManager"


Variables

_targeting_state:


_building_system:


_logger:


_actions:


drag_data:


_last_signal_physics_frame:

See: CHANGES/2025-10-02-drag-building-race-condition.md


Methods

_init

Signature: _init(p_name: String = DEFAULT_NAME) -> void

Returns: void

Parameters:

  • p_name: String (optional, default: DEFAULT_NAME)

_ready

Signature: _ready() -> void

Returns: void


set_test_mode

Signature: set_test_mode(enabled: bool) -> void

Disables input processing and allows manual drag control.

Returns: void

Parameters:

  • enabled: bool

reset_physics_frame_gate

Signature: reset_physics_frame_gate() -> void

Tests can call this between movements to clear the per-frame gate.

Returns: void


start_drag

Signature: start_drag() -> DragPathData

[return] DragPathData instance, or null if drag cannot start

Returns: DragPathData


stop_drag

Signature: stop_drag() -> void

Public API: Stop drag operation.

Returns: void


format_drag_state

Signature: static format_drag_state(drag_data: DragPathData) -> String

[return] Formatted string with drag state information

Returns: String

Static: true

Parameters:

  • drag_data: DragPathData

_input

Signature: _input(event: InputEvent) -> void

Uses _input() instead of _unhandled_input() to read raw input state regardless of handling.

Returns: void

Parameters:

  • event: InputEvent

update_drag_state

Signature: update_drag_state(delta: float) -> void

[param delta] Time elapsed since last update in seconds

Returns: void

Parameters:

  • delta: float

_physics_process

Signature: _physics_process(delta: float) -> void

See: CHANGES/2025-10-02-drag-building-race-condition.md

Returns: void

Parameters:

  • delta: float

resolve_gb_dependencies

Signature: resolve_gb_dependencies(p_container: GBCompositionContainer) -> void

Delegate to public update method

Returns: void

Parameters:

  • p_container: GBCompositionContainer

is_dragging

Signature: is_dragging() -> bool

Assert dependencies are properly injected after dependency resolution

Returns: bool


_start_drag

Signature: _start_drag() -> DragPathData

[return] DragPathData instance, or null if drag cannot start

Returns: DragPathData


_stop_drag

Signature: _stop_drag() -> void

Reset physics frame gate for new drag session

Returns: void


_can_continue_dragging

Signature: _can_continue_dragging() -> bool

Reset physics frame gate

Returns: bool