GAE_CA1/Assets/player/interaction.gd

42 lines
924 B
GDScript

extends Node2D
@export var interaction_area:Area2D
@export var sprite_2d: Sprite2D
signal trigger_interaction(interaction_target:Node2D)
func _process(delta: float) -> void:
# Wir prüfen, ob ÜBERHAUPT ein Bereich überlappt, der in der Gruppe ist
var can_interact = false
var targets = interaction_area.get_overlapping_areas()
for area in targets:
if area.is_in_group("interactebel"):
can_interact = true
break # Wir haben eins gefunden, Suche beenden
# Sprite anzeigen, wenn wir interagieren können, sonst verstecken
if can_interact:
sprite_2d.show()
else:
sprite_2d.hide()
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("interact"):
var targets = interaction_area.get_overlapping_areas()
for area in targets:
if area.is_in_group("interactebel"):
trigger_interaction.emit(area.get_parent())
sprite_2d.show()