Files
Kalulu/sources/utils/swipe_detector.gd
T
2025-04-04 09:47:39 +02:00

36 lines
865 B
GDScript

extends Button
class_name SwipeDetector
signal swipe(start_position: Vector2, end_position: Vector2)
@onready var drag_preview: = $DragPreview
var current_preview: TextureRect
var start_position: Vector2
func _ready() -> void :
set_drag_forwarding(
# _get_drag_data
func(at_position: Vector2) -> Dictionary:
current_preview = drag_preview.duplicate()
current_preview.show()
set_drag_preview(current_preview)
start_position = global_position + at_position
return {},
# _can_drop_data
func(_at_position: Vector2, _data: Variant) -> bool:
return false,
# _drop_data
func(_at_position: Vector2, _data: Variant) -> void:
pass
)
func _on_drag_preview_tree_exiting() -> void:
if current_preview:
swipe.emit(start_position, current_preview.global_position)
func _on_drag_preview_tree_exited() -> void:
current_preview = null