vrp-gruppe-sechs/quad-splash/target_zone.gd

43 lines
1.2 KiB
GDScript

extends Area3D
var game_manager: Node3D = null
var red_cube_delivered := false
func _ready():
# GameManager finden
game_manager = get_tree().get_first_node_in_group("game_manager")
if not game_manager:
game_manager = get_node_or_null("/root/Main/GameManager")
# Signal verbinden
body_entered.connect(_on_body_entered)
func _on_body_entered(body: Node3D):
# Prüfen ob es der rote Würfel ist
if body.name == "RedCube" or body.is_in_group("red_cube"):
if not red_cube_delivered:
red_cube_delivered = true
print("Roter Würfel abgeliefert!")
# GameManager benachrichtigen
if game_manager and game_manager.has_method("on_red_cube_delivered"):
game_manager.on_red_cube_delivered()
# Visuelles Feedback
show_success_effect()
func show_success_effect():
# Zielzone aufleuchten lassen
var mesh_instance = get_node_or_null("MeshInstance3D")
if not mesh_instance:
return
var material = mesh_instance.get_active_material(0) as StandardMaterial3D
if not material:
return
# Grün aufleuchten
var tween = create_tween()
tween.tween_property(material, "albedo_color", Color.GREEN, 0.3)
tween.tween_property(material, "albedo_color", Color(0, 1, 0, 0.5), 0.3)