extends KinematicBody # export variables export(bool) var being_touched # const const OPENING_SPEED = 50 # private members var _startingRotY var _isMoving = false var _isOpening = false var _degrees = 0 # Called when the node enters the scene tree for the first time. func _ready(): _startingRotY = global_transform.basis.get_euler().y pass # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): #if Input.is_action_just_pressed("interact"): if being_touched: _isMoving = true _isOpening = !_isOpening being_touched = false if _isMoving: doorMove(delta) pass func doorMove(delta): if _isOpening: if _degrees < 100: _degrees += OPENING_SPEED * delta else: _degrees = 100 _isMoving = false else: if _degrees > 0: _degrees -= OPENING_SPEED * delta else: _degrees = 0 _isMoving = false rotate_y(_degrees * PI/180 - global_transform.basis.get_euler().y + _startingRotY) pass