48 lines
1.0 KiB
GDScript
48 lines
1.0 KiB
GDScript
extends Node2D
|
|
|
|
@export var paired_teleporter: String
|
|
var checked_teleport
|
|
var telecam_speed_mult = 4
|
|
var enabled = true
|
|
var cooldown = 2
|
|
|
|
func _ready() -> void:
|
|
modulate = Color.PURPLE
|
|
add_to_group("TELEPORTERS")
|
|
|
|
func check_for_pair() -> String:
|
|
return paired_teleporter
|
|
|
|
func disable():
|
|
enabled = false
|
|
$Sprite2D.modulate = Color.DARK_ORANGE
|
|
|
|
func enable():
|
|
enabled = true
|
|
$Sprite2D.modulate = Color.WHITE
|
|
|
|
func _process(delta: float) -> void:
|
|
pass
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
pass
|
|
|
|
func _on_contact(body) -> void:
|
|
if not enabled:
|
|
return
|
|
|
|
#get_tree().call_group("TELEPORTERS","disable")
|
|
for teleporter in get_tree().get_nodes_in_group("TELEPORTERS"):
|
|
if teleporter == self:
|
|
continue
|
|
|
|
if teleporter.paired_teleporter == paired_teleporter:
|
|
%Player2D.get_node("Camera2D").position_smoothing_enabled = false
|
|
if %Player2D.teleport_cooldown > 0:
|
|
return
|
|
body.set_position(teleporter.global_position)
|
|
%Player2D.on_teleport()
|
|
disable()
|
|
await get_tree().create_timer(cooldown).timeout
|
|
enable()
|