wip: drag and drop fixes

This commit is contained in:
tiger tiger tiger 2026-01-18 16:49:40 +01:00
parent 46f7463267
commit a992ef476d
1 changed files with 9 additions and 4 deletions

View File

@ -321,10 +321,15 @@ func give_lore_feedback():
complete = true
# Mark area that was hovered over as currently selected
func handle_hover(draggable: Draggable) -> void:
func handle_hover(_draggable: Draggable) -> void:
# If we're hovering with the mouse without clicking, that updates our selection
if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT): return
var candidate := _nearest_hovered(_sort_by_proximity_and_depth(notes))
if not candidate:
candidate = _nearest_hovered(_sort_by_proximity_and_depth(cards))
selection = candidate
func _sort_by_proximity_and_depth(draggables: Array) -> Array[Draggable]:
@ -334,7 +339,7 @@ func _sort_by_proximity_and_depth(draggables: Array) -> Array[Draggable]:
var depth := len(result) * 2
for item in result:
depth -= 1
item.z_index = depth
item.z_index = depth if item.mouse_over else 0 # only care about the ones we are currently touching
return result
@ -382,7 +387,7 @@ func _input(event) -> void:
get_viewport().set_input_as_handled()
if event is InputEventMouseMotion and not event.is_action_pressed("mouse_left"):
if selection and event is InputEventMouseMotion and not event.is_action_pressed("mouse_left"):
var candidate := _nearest_hovered(_sort_by_proximity_and_depth(notes))
if not candidate:
candidate = _nearest_hovered(_sort_by_proximity_and_depth(cards))