38 lines
680 B
GDScript
38 lines
680 B
GDScript
class_name Interactable
|
|
extends Node2D
|
|
|
|
signal interacted
|
|
|
|
var checked_teleport
|
|
var telecam_speed_mult = 4
|
|
var enabled = true
|
|
var cooldown = 2
|
|
var is_interactable = false
|
|
|
|
func disable():
|
|
enabled = false
|
|
$Sprite2D.modulate = Color.DARK_ORANGE
|
|
|
|
func enable():
|
|
enabled = true
|
|
$Sprite2D.modulate = Color.WHITE
|
|
|
|
func _process(delta: float) -> void:
|
|
if not (is_interactable and Input.is_action_just_released("interact")):
|
|
return
|
|
|
|
interacted.emit()
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
pass
|
|
|
|
func _on_approach(body) -> void:
|
|
if body!=%Player2D:
|
|
return
|
|
is_interactable = true
|
|
|
|
func _on_abandon(body) -> void:
|
|
if body!=%Player2D:
|
|
return
|
|
is_interactable = false
|