42 lines
924 B
GDScript
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()
|
|
|
|
|
|
|
|
|
|
|
|
|