DragManager
Internal: Start drag operation and...
Internal: Start drag operation and return drag data. [return] DragPathData instance, or null if drag cannot start
Version: v5.0.0
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