44 lines
1.2 KiB
GDScript
44 lines
1.2 KiB
GDScript
extends Panel
|
|
|
|
@onready var snap_marker: Node2D = $SnapMarker
|
|
var expected: String = "intestine"
|
|
|
|
func _ready() -> void:
|
|
modulate.a = 0.0
|
|
|
|
func _can_drop_data(_at_position: Vector2, data: Variant) -> bool:
|
|
print("Can drop check! Position:", _at_position, "Data:", data)
|
|
|
|
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["organ"]
|
|
var main = get_tree().get_root().get_node("Main")
|
|
|
|
if organ_name == expected:
|
|
print("✅ Richtiges Organ:", organ_name)
|
|
|
|
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
|
|
|
|
if dragged.has_method("start_zoom_and_animation"):
|
|
dragged.start_zoom_and_animation()
|
|
|
|
main.advance_organ_order()
|
|
|
|
else:
|
|
print("❌ Falsches Organ:", organ_name)
|
|
AudioManager.stop_all_audio_players()
|
|
main.play_wrong_place_sound()
|
|
|
|
if not dragged.was_dropped:
|
|
dragged._reset_drag()
|