katheterkompass/ziel_blase.gd

42 lines
1.2 KiB
GDScript

extends Panel
@onready var snap_marker: Node2D = $SnapMarker
var expected: String = "bubble"
func _ready() -> void:
self.modulate.a = 0.0
func _can_drop_data(_at_position: Vector2, data: Variant) -> bool:
return data is Dictionary and data.has("organ")
func _drop_data(_at_position: Vector2, data: Variant) -> void:
print("_drop_data aufgerufen mit data =", data)
if data is Dictionary and data.has("node") and data.has("texture"):
var dragged: TextureRect = data["node"]
var organ_name = data.get("organ", "")
var main = get_tree().get_root().get_node("Main")
if organ_name == expected:
dragged.global_position = snap_marker.global_position - dragged.size * 0.5
dragged.texture = data["texture"]
dragged.mouse_filter = Control.MOUSE_FILTER_STOP
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
dragged.was_dropped = true
print("✅ Organ korrekt gesnappt:", organ_name)
if dragged.has_method("start_zoom_and_animation"):
dragged.start_zoom_and_animation()
else:
print("❌ Falsches Organ gesnappt:", dragged.name)
AudioManager.stop_all_audio_players()
main.play_wrong_place_sound()
if not dragged.was_dropped:
dragged._reset_drag()