katheterkompass/ziel_gehirn.gd

44 lines
1.2 KiB
GDScript

extends Panel
@onready var snap_marker: Node2D = $SnapMarker
var expected: String = "brain" # Oder "bubble"
func _ready() -> void:
modulate.a = 0.0 # Unsichtbar machen
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:
if not (data is Dictionary and data.has("node") and data.has("texture")):
return
var dragged = data["node"] as TextureRect
var organ_name = data["organ"]
var main = get_tree().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()
main.advance_organ_order()
else:
print("❌ Falsches Organ gedroppt:", organ_name)
AudioManager.stop_all_audio_players()
main.play_wrong_place_sound()
if not dragged.was_dropped:
dragged._reset_drag()