From ad3c8766c3ce5d9f7b6177a851989433b179138d Mon Sep 17 00:00:00 2001 From: Dukantic Date: Fri, 17 Jan 2025 21:47:13 +0100 Subject: [PATCH] repo --- project.godot | 1 + scene/scene_manager/scene_manager.gd | 18 ++++++++++++++++++ scene/scene_manager/scene_manager.tscn | 8 ++++++++ scene/walk_zone.tscn | 3 +++ 4 files changed, 30 insertions(+) create mode 100644 scene/scene_manager/scene_manager.gd create mode 100644 scene/scene_manager/scene_manager.tscn create mode 100644 scene/walk_zone.tscn diff --git a/project.godot b/project.godot index 0e2f3a6..27ccb3f 100644 --- a/project.godot +++ b/project.godot @@ -11,5 +11,6 @@ config_version=5 [application] config/name="New Game Project" +run/main_scene="res://scene/scene_manager/scene_manager.tscn" config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" diff --git a/scene/scene_manager/scene_manager.gd b/scene/scene_manager/scene_manager.gd new file mode 100644 index 0000000..022e440 --- /dev/null +++ b/scene/scene_manager/scene_manager.gd @@ -0,0 +1,18 @@ +extends Node + +@export var first_scene :PackedScene = null + +signal change_scene_signal(new_scene: PackedScene) + +var current_scene:Node = null +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + change_scene_signal.connect(change_scene_func) + emit_signal("change_scene_signal", first_scene) + + +func change_scene_func(scene: PackedScene) -> void: + if current_scene != null: + current_scene.queue_free() + current_scene = scene.instantiate() + add_child(current_scene) diff --git a/scene/scene_manager/scene_manager.tscn b/scene/scene_manager/scene_manager.tscn new file mode 100644 index 0000000..f6b3ed1 --- /dev/null +++ b/scene/scene_manager/scene_manager.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=3 format=3 uid="uid://uo5bppg214ci"] + +[ext_resource type="Script" path="res://scene/scene_manager/scene_manager.gd" id="1_qulgr"] +[ext_resource type="PackedScene" uid="uid://brc445tt624lb" path="res://scene/walk_zone.tscn" id="2_elo70"] + +[node name="scene_manager" type="Node"] +script = ExtResource("1_qulgr") +first_scene = ExtResource("2_elo70") diff --git a/scene/walk_zone.tscn b/scene/walk_zone.tscn new file mode 100644 index 0000000..2053dbd --- /dev/null +++ b/scene/walk_zone.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://brc445tt624lb"] + +[node name="walk_zone" type="Node3D"]