DragManager
AUTO-GENERATED FILE – DO NOT EDIT MANUALLY
Self-contained drag manager for tile-based drag operations.
Source File: /addons/grid_building/systems/building/components/drag_manager.gd
Extends: GBSystemsComponent
Properties
- Property:
drag_data: [DragPathData](./drag-path-data/) = null
Private Properties
Property:
_targeting_state: [GridTargetingState](./grid-targeting-state/)(private)Property:
_building_system: [BuildingSystem](./building-system/)(private)Property:
_logger: [GBLogger](./gb-logger/)(private)Property:
_actions: [GBActions](./gb-actions/)(private)Property:
_last_signal_physics_frame: int = -1(private)Prevents multiple signal emissions in same physics frame. Tracks the last physics frame where targeting_new_tile was emitted to gate rapid signals. See: CHANGES/2025-10-02-drag-building-race-condition.md
Constants
- Constant:
DEFAULT_NAME = "DragManager"
Public Methods
set_test_mode
| |
Public API for tests to manually control drag lifecycle. Disables input processing and allows manual drag control.
reset_physics_frame_gate
| |
Public API for tests: Reset the physics frame gate to allow next build. This simulates advancing to a new physics frame without actually waiting. Tests can call this between movements to clear the per-frame gate.
start_drag
| |
Public API: Start drag operation and return drag data. [return] DragPathData instance, or null if drag cannot start
stop_drag
| |
Public API: Stop drag operation.
format_drag_state
| |
Flags: static
DRY diagnostic helper: Format drag state for debugging
drag_data The DragPathData instance to format
[return] Formatted string with drag state information
update_drag_state
| |
Public API: Update drag state and check for tile changes.
Core drag update logic extracted for testability.
Called automatically by _physics_process() during normal gameplay.
Tests can call this directly to simulate drag updates without physics timing.
delta Time elapsed since last update in seconds
resolve_gb_dependencies
| |
is_dragging
| |
Private Methods
_init
| |
Flags: private
_ready
| |
Flags: private
_input
| |
Flags: private
Reads confirm_build input action to start/stop drag operations. Uses _input() instead of _unhandled_input() to read raw input state regardless of handling.
_physics_process
| |
Flags: private
Synchronizes drag detection with physics frame updates to prevent race conditions. Changed from _process() to _physics_process() to ensure drag events align with collision detection updates, preventing multiple builds in same physics frame. See: CHANGES/2025-10-02-drag-building-race-condition.md
_start_drag
| |
Flags: private
Internal: Start drag operation and return drag data. [return] DragPathData instance, or null if drag cannot start
_stop_drag
| |
Flags: private
_can_continue_dragging
| |
Flags: private
Grid Building v5.0.8 | Generated 24/05/2026