diff --git a/player_2d.gd b/player_2d.gd index eaf5742..c485432 100644 --- a/player_2d.gd +++ b/player_2d.gd @@ -20,16 +20,13 @@ func refresh_jump(new_jumps): jumps = new_jumps else: jumps = 1 - refresh_teleport() - -func refresh_teleport(): - teleport_cooldown = 0 - get_tree().call_group("TELEPORTERS","enable") func on_teleport(): refresh_jump(1) teleport_cooldown = 1 $Camera2D.position_smoothing_enabled = true + await get_tree().create_timer(1).timeout + teleport_cooldown = 0 func _process(delta: float) -> void: if Input.is_action_just_pressed("jump"): diff --git a/player_2d.tscn b/player_2d.tscn index c5ab5cc..946bdfc 100644 --- a/player_2d.tscn +++ b/player_2d.tscn @@ -18,7 +18,7 @@ scale = Vector2(100, 100) texture = ExtResource("3_p3026") [node name="Camera2D" type="Camera2D" parent="." unique_id=962368438] -zoom = Vector2(1.65, 1.65) +zoom = Vector2(1.75, 1.75) process_callback = 0 position_smoothing_enabled = true position_smoothing_speed = 3.0 diff --git a/teleporter.gd b/teleporter.gd index bc1796d..ba99878 100644 --- a/teleporter.gd +++ b/teleporter.gd @@ -3,6 +3,8 @@ extends Node2D @export var paired_teleporter: String var checked_teleport var telecam_speed_mult = 4 +var enabled = true +var cooldown = 2 func _ready() -> void: add_to_group("TELEPORTERS") @@ -12,9 +14,11 @@ 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: @@ -24,11 +28,15 @@ func _physics_process(delta: float) -> void: pass func _on_contact(body) -> void: - #print("PASSED OVER TELEPORTER") - get_tree().call_group("TELEPORTERS","disable") + #get_tree().call_group("TELEPORTERS","disable") for teleporter in get_tree().get_nodes_in_group("TELEPORTERS"): if teleporter != self: - if teleporter.paired_teleporter == paired_teleporter and %Player2D.teleport_cooldown == 0: + if teleporter.paired_teleporter == paired_teleporter and enabled: %Player2D.get_node("Camera2D").position_smoothing_enabled = false + if %Player2D.teleport_cooldown > 0: + return body.set_position(teleporter.get_position()) %Player2D.on_teleport() + disable() + await get_tree().create_timer(cooldown).timeout + enable()