34 lines
784 B
GDScript
34 lines
784 B
GDScript
extends RigidBody3D
|
|
|
|
# Referenz zum Griff (der das Pickable-Skript hat)
|
|
@export var door_handle : XRToolsPickable
|
|
|
|
var unlocked : bool = false
|
|
|
|
func _ready():
|
|
# Am Start die Tür einfrieren
|
|
freeze = true
|
|
|
|
if door_handle:
|
|
# Signale verbinden
|
|
door_handle.picked_up.connect(_on_grab)
|
|
door_handle.dropped.connect(_on_release)
|
|
|
|
func unlock():
|
|
print("Tür entriegel!")
|
|
unlocked = true
|
|
|
|
func _on_grab(_pickable):
|
|
# Wenn angefasst: Physik aktivieren
|
|
if unlocked:
|
|
freeze = false
|
|
sleeping = false # Aufwecken, damit sie sofort reagiert
|
|
|
|
func _on_release(_pickable):
|
|
# Wenn losgelassen: Sofort wieder einfrieren
|
|
freeze = true
|
|
|
|
# WICHTIG: Geschwindigkeit nullen, damit sie sofort stoppt und nicht nachrutscht
|
|
linear_velocity = Vector3.ZERO
|
|
angular_velocity = Vector3.ZERO
|