2.12 loading the next level

This commit is contained in:
david 2025-02-09 11:06:56 +01:00
parent 1438dc7784
commit ba3dbff06c
6 changed files with 168 additions and 6 deletions

View file

@ -4,4 +4,8 @@ static class DeferredCalls {
public static void ReloadCurrentScene(this Node node) {
node.GetTree().CallDeferred("reload_current_scene");
}
public static void ChangeSceneToFile(this Node node, string nextLevel) {
node.GetTree().CallDeferred("change_scene_to_file", nextLevel);
}
}

View file

@ -32,9 +32,10 @@ public partial class Player : RigidBody3D
private void OnPlayerCollision(Node body)
{
if (body.GetGroups().Contains("Goal"))
if (body.GetGroups().Contains("Goal") && body is LandingPad)
{
CompleteLevel();
LandingPad landingPad = (LandingPad)body;
CompleteLevel(landingPad.nextLevel);
}
if (body.GetGroups().Contains("Hazard"))
{
@ -47,7 +48,7 @@ public partial class Player : RigidBody3D
DeferredCalls.ReloadCurrentScene(this);
}
private void CompleteLevel(){
GetTree().Quit();
private void CompleteLevel(string nextLevel){
DeferredCalls.ChangeSceneToFile(this, nextLevel);
}
}

View file

@ -0,0 +1,8 @@
using Godot;
using System;
public partial class LandingPad : CsgBox3D
{
[Export(PropertyHint.File, "*.tscn")]
public string nextLevel;
}

View file

@ -1,5 +1,6 @@
[gd_scene load_steps=8 format=3 uid="uid://dfhg7e2uhkh5t"]
[gd_scene load_steps=9 format=3 uid="uid://dfhg7e2uhkh5t"]
[ext_resource type="Script" path="res://scenes/levels/LandingPad.cs" id="1_6hf30"]
[ext_resource type="PackedScene" uid="uid://cuduv6fwqtocs" path="res://scenes/characters/player.tscn" id="1_8cxtr"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_51aor"]
@ -24,7 +25,7 @@ albedo_color = Color(0.269949, 0.472736, 0.828875, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cjryw"]
albedo_color = Color(0.270588, 0.662745, 0.321569, 1)
[node name="Level1" type="Node3D"]
[node name="Level" type="Node3D"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_mlv3m")
@ -50,6 +51,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0)
use_collision = true
size = Vector3(2, 0.4, 2)
material = SubResource("StandardMaterial3D_cjryw")
script = ExtResource("1_6hf30")
nextLevel = "res://scenes/levels/level_2.tscn"
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 5, 10)

View file

@ -0,0 +1,70 @@
[gd_scene load_steps=10 format=3 uid="uid://de65xxlydp5ee"]
[ext_resource type="Script" path="res://scenes/levels/LandingPad.cs" id="1_xk07w"]
[ext_resource type="PackedScene" uid="uid://cuduv6fwqtocs" path="res://scenes/characters/player.tscn" id="2_1eb7h"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_51aor"]
sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
[sub_resource type="Sky" id="Sky_qesig"]
sky_material = SubResource("ProceduralSkyMaterial_51aor")
[sub_resource type="Environment" id="Environment_mlv3m"]
background_mode = 2
sky = SubResource("Sky_qesig")
tonemap_mode = 2
glow_enabled = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pdpk6"]
albedo_color = Color(0.52, 0.203233, 0.078, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_isbkj"]
albedo_color = Color(1, 0.34902, 1, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5641g"]
albedo_color = Color(0.269949, 0.472736, 0.828875, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cjryw"]
albedo_color = Color(0.270588, 0.662745, 0.321569, 1)
[node name="Level" type="Node3D"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_mlv3m")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0)
shadow_enabled = true
[node name="Floor" type="CSGBox3D" parent="." groups=["Hazard"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4, 0)
use_collision = true
size = Vector3(30, 8, 5)
material = SubResource("StandardMaterial3D_pdpk6")
[node name="Obstacle" type="CSGBox3D" parent="." groups=["Hazard"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
use_collision = true
size = Vector3(3, 2, 3)
material = SubResource("StandardMaterial3D_isbkj")
[node name="LaunchPad" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 0)
use_collision = true
size = Vector3(2, 0.4, 2)
material = SubResource("StandardMaterial3D_5641g")
[node name="LandingPad" type="CSGBox3D" parent="." groups=["Goal"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0)
use_collision = true
size = Vector3(2, 0.4, 2)
material = SubResource("StandardMaterial3D_cjryw")
script = ExtResource("1_xk07w")
nextLevel = "res://scenes/levels/level_3.tscn"
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 5, 10)
[node name="Player" parent="." instance=ExtResource("2_1eb7h")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 1.22214, 0)

View file

@ -0,0 +1,76 @@
[gd_scene load_steps=10 format=3 uid="uid://d28am3qcuyvgl"]
[ext_resource type="Script" path="res://scenes/levels/LandingPad.cs" id="1_2xhoj"]
[ext_resource type="PackedScene" uid="uid://cuduv6fwqtocs" path="res://scenes/characters/player.tscn" id="2_nqrhm"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_51aor"]
sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
[sub_resource type="Sky" id="Sky_qesig"]
sky_material = SubResource("ProceduralSkyMaterial_51aor")
[sub_resource type="Environment" id="Environment_mlv3m"]
background_mode = 2
sky = SubResource("Sky_qesig")
tonemap_mode = 2
glow_enabled = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pdpk6"]
albedo_color = Color(0.52, 0.203233, 0.078, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_isbkj"]
albedo_color = Color(1, 0.34902, 1, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5641g"]
albedo_color = Color(0.269949, 0.472736, 0.828875, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cjryw"]
albedo_color = Color(0.270588, 0.662745, 0.321569, 1)
[node name="Level" type="Node3D"]
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_mlv3m")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0)
shadow_enabled = true
[node name="Floor" type="CSGBox3D" parent="." groups=["Hazard"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4, 0)
use_collision = true
size = Vector3(30, 8, 5)
material = SubResource("StandardMaterial3D_pdpk6")
[node name="Obstacle" type="CSGBox3D" parent="." groups=["Hazard"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
use_collision = true
size = Vector3(10, 2, 3)
material = SubResource("StandardMaterial3D_isbkj")
[node name="Obstacle2" type="CSGBox3D" parent="." groups=["Hazard"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9, 0)
use_collision = true
size = Vector3(10, 2, 3)
material = SubResource("StandardMaterial3D_isbkj")
[node name="LaunchPad" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 0)
use_collision = true
size = Vector3(2, 0.4, 2)
material = SubResource("StandardMaterial3D_5641g")
[node name="LandingPad" type="CSGBox3D" parent="." groups=["Goal"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0)
use_collision = true
size = Vector3(2, 0.4, 2)
material = SubResource("StandardMaterial3D_cjryw")
script = ExtResource("1_2xhoj")
nextLevel = "res://scenes/levels/level_1.tscn"
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 5, 10)
[node name="Player" parent="." instance=ExtResource("2_nqrhm")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 1.22214, 0)