Files
fps_project_1/scripts/scene_changer.gd
2025-03-28 16:48:27 -05:00

38 lines
864 B
GDScript

extends Area3D
class_name Portal
var level_info = {}
var timer_active = false
var active = true
var index : int
const SCENE_SPAWN_OFFSET = Vector3(0,-150,0)
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_body_entered(body: Node3D) -> void:
if body.is_in_group("player"):
if active and timer_active:
active = false
var scene = load(level_info["level_path"]).instantiate()
if scene.sky_type != null:
SignalBus.emit_signal("update_sky",scene.sky_type)
get_tree().current_scene.add_child(scene)
scene.global_position = global_position + SCENE_SPAWN_OFFSET
func _on_start_activation_timeout() -> void:
timer_active = true