Compare commits

...

2 Commits

Author SHA1 Message Date
736060d6ca Load level 2023-09-02 20:03:20 -07:00
cff32e0fb9 Placeholder music 2023-09-02 18:33:44 -07:00
28 changed files with 766 additions and 17 deletions

BIN
Audio/BGM/02 MovinOn.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://cp787gdbhccb1"
path="res://.godot/imported/02 MovinOn.mp3-9ee085070ee763b5e5fda860f33a13f2.mp3str"
[deps]
source_file="res://Audio/BGM/02 MovinOn.mp3"
dest_files=["res://.godot/imported/02 MovinOn.mp3-9ee085070ee763b5e5fda860f33a13f2.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@@ -5,5 +5,6 @@
</PropertyGroup>
<ItemGroup>
<Folder Include="Scenes\" />
<Folder Include="Textures\Models\" />
</ItemGroup>
</Project>

97
Scenes/ExitPortal.tscn Normal file
View File

@@ -0,0 +1,97 @@
[gd_scene load_steps=5 format=3 uid="uid://jgf7k1r35km1"]
[ext_resource type="PackedScene" uid="uid://0tegxun85rq" path="res://Textures/Models/exitprotal.gltf" id="1_jebs8"]
[sub_resource type="Animation" id="Animation_t7yyb"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Cylinder:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Circle:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Circle_001:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_y78yk"]
resource_name = "Spin"
length = 45.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Cylinder:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 45),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 6.28319, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Circle:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 45),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, -6.28319, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Circle_001:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 45),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 6.28319, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fkf2e"]
_data = {
"RESET": SubResource("Animation_t7yyb"),
"Spin": SubResource("Animation_y78yk")
}
[node name="Exit Portal" instance=ExtResource("1_jebs8")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="3"]
autoplay = "Spin"
libraries = {
"": SubResource("AnimationLibrary_fkf2e")
}

View File

@@ -1,17 +1,45 @@
[gd_scene load_steps=2 format=3 uid="uid://dqv03pua4j8ga"]
[gd_scene load_steps=8 format=3 uid="uid://dqv03pua4j8ga"]
[ext_resource type="Script" path="res://Scripts/Level1.cs" id="1_owv8t"]
[ext_resource type="PackedScene" uid="uid://c0lv8ovqkl3a6" path="res://Levels/Models/STAGE 1.blend" id="1_pwpof"]
[ext_resource type="PackedScene" uid="uid://b38hcomu4tpm5" path="res://Scenes/TestCharacter.tscn" id="3_vd8bl"]
[ext_resource type="PackedScene" uid="uid://si4byubqnng4" path="res://Scenes/TestBullet.tscn" id="4_usx8k"]
[ext_resource type="PackedScene" uid="uid://bq40xbqibrk1y" path="res://Scenes/ShotgunBullet.tscn" id="5_yyoa6"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="6_gegi6"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_kv6vl"]
radius = 0.957319
[node name="Level1" type="Node3D"]
script = ExtResource("1_owv8t")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 21.2932, 13.0512)
projection = 1
fov = 30.0
size = 8.0
size = 9.0
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.931845, -0.0850834, 0.35274, -0.0909281, 0.995857, 1.46654e-08, -0.351279, -0.032074, -0.935721, -3.58319, 22.5795, 0.163277)
visible = false
transform = Transform3D(-0.929007, 0.136193, 0.34409, 0.369825, 0.375014, 0.850056, -0.0132668, 0.91696, -0.398758, -3.58319, 11.9025, 0.163277)
[node name="STAGE 1" parent="." instance=ExtResource("1_pwpof")]
[node name="Character" parent="." instance=ExtResource("3_vd8bl")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, -0.495054, 0, 5.4546)
collision_layer = 17
collision_mask = 17
_fireProjectile = ExtResource("4_usx8k")
_altFireProjectile = ExtResource("5_yyoa6")
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("6_gegi6")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_kv6vl")
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

View File

@@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://dmi76rb317oou" path="res://Levels/Models/STAGE 2.blend" id="1_5pcmj"]
[node name="Level2" type="Node3D"]
[node name="Level2" type="Node3D" groups=["Level"]]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)

View File

@@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://dwd2hlxhkcfpp" path="res://Levels/Models/STAGE 3.blend" id="1_blsh8"]
[node name="Level3" type="Node3D"]
[node name="Level3" type="Node3D" groups=["Level"]]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)

View File

@@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://c33ymduovqqw" path="res://Levels/Models/STAGE 4.blend" id="1_qu6ym"]
[node name="Level4" type="Node3D"]
[node name="Level4" type="Node3D" groups=["Level"]]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)

View File

@@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://cthfld06b4dng" path="res://Levels/Models/STAGE 5.blend" id="1_fagdb"]
[node name="Level5" type="Node3D"]
[node name="Level5" type="Node3D" groups=["Level"]]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)

View File

@@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://bc3wjl3ibs5q7" path="res://Levels/Models/STAGE 6.blend" id="1_q1cka"]
[node name="Level6" type="Node3D"]
[node name="Level6" type="Node3D" groups=["Level"]]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)

View File

@@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://biurk21cl5wxw" path="res://Levels/Models/STAGE 7.blend" id="1_dc67b"]
[node name="Level7" type="Node3D"]
[node name="Level7" type="Node3D" groups=["Level"]]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)

View File

@@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://dibismvgu8151" path="res://Levels/Models/STAGE 8.blend" id="1_wd00s"]
[node name="Level8" type="Node3D"]
[node name="Level8" type="Node3D" groups=["Level"]]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)

View File

@@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://bs8iqbayeqqm" path="res://Levels/Models/STAGE 9.blend" id="1_ley6w"]
[node name="Level9" type="Node3D"]
[node name="Level9" type="Node3D" groups=["Level"]]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.378925, 11.1744, 5.15227)

View File

@@ -20,7 +20,7 @@ script = ExtResource("1_hddqi")
[node name="Area3D" type="Area3D" parent="Pivot"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75657e-15, 0, 0)
collision_layer = 0
collision_layer = 16
collision_mask = 4
[node name="CollisionShape3D" type="CollisionShape3D" parent="Pivot/Area3D"]

17
Scripts/BGMPlayer.cs Normal file
View File

@@ -0,0 +1,17 @@
using Godot;
public partial class BGMPlayer : AudioStreamPlayer
{
public void SetBGMFromFilepath(string path)
{
var audioStream = ResourceLoader.Load<AudioStream>(path);
if (Stream != audioStream)
Stream = audioStream;
}
public void PlayBGM()
{
if (!Playing)
Play();
}
}

11
Scripts/Level1.cs Normal file
View File

@@ -0,0 +1,11 @@
using Godot;
public partial class Level1 : Node3D
{
private void OnExitEntered(Node3D node)
{
GD.Print("Exit reached");
var main = GetTree().Root.GetNode<Main>("/root/Main");
main.LoadNextLevel(0);
}
}

View File

@@ -1,8 +1,42 @@
using Godot;
using Godot.Collections;
using System.Linq;
public partial class Main : Node
{
[Export]
public Array<PackedScene> Levels;
public void LoadLevel(int indexToLoad)
{
var sceneToLoad = Levels.ElementAt(indexToLoad);
CallDeferred(nameof(DeferredGoToScene), sceneToLoad);
}
public void LoadNextLevel(int currentSceneIndex)
{
if (currentSceneIndex < Levels.Count())
{
var currentScene = Levels.ToList().ElementAt(currentSceneIndex);
var nextScene = currentSceneIndex + 1;
CallDeferred(nameof(DeferredGoToScene), Levels.ElementAt(nextScene), currentScene);
}
}
private void DeferredGoToScene(PackedScene sceneToAdd)
{
GD.Print(sceneToAdd.ResourcePath);
var nextScene = GD.Load<PackedScene>(sceneToAdd.ResourcePath);
var newScene = nextScene.Instantiate();
GetTree().Root.AddChild(newScene);
}
private void DeferredGoToScene(PackedScene sceneToAdd, PackedScene sceneToRemove)
{
GD.Print(sceneToAdd.ResourcePath);
GetTree().GetFirstNodeInGroup("Level").QueueFree();
var nextScene = GD.Load<PackedScene>(sceneToAdd.ResourcePath);
var newScene = nextScene.Instantiate();
GetTree().Root.AddChild(newScene);
}
}

View File

@@ -13,6 +13,9 @@ public partial class MainMenu : Node2D
GetParent().GetNode<TextureRect>("MainMenu/UIAnimations/LoreSplash").Show();
_player = GetTree().Root.GetNode<AnimationPlayer>("/root/Main/MainMenu/UIAnimations/AnimationPlayer");
_player.Queue("IntroLore");
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
bgmPlayer.SetBGMFromFilepath("Audio/BGM/02 MovinOn.mp3");
bgmPlayer.PlayBGM();
}
private void OnStartButtonPressed()
@@ -26,9 +29,8 @@ public partial class MainMenu : Node2D
{
if (animationName == "FirstLevel")
{
var main = GetTree().Root.GetNode<Main>("Main");
var firstLevel = main.Levels.First().Instantiate();
AddChild(firstLevel);
var main = GetTree().Root.GetNode<Main>("/root/Main");
main.LoadLevel(0);
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,32 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://0tegxun85rq"
path="res://.godot/imported/exitprotal.gltf-590eb9612971dd3e3e6943948ff086a9.scn"
[deps]
source_file="res://Textures/Models/exitprotal.gltf"
dest_files=["res://.godot/imported/exitprotal.gltf-590eb9612971dd3e3e6943948ff086a9.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ginttpl52vf7"
path.s3tc="res://.godot/imported/exitprotal_1 (1).png-ffa4c95ce1f1de0897917990c7c938f3.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={}
[deps]
source_file="res://Textures/Models/exitprotal_1 (1).png"
dest_files=["res://.godot/imported/exitprotal_1 (1).png-ffa4c95ce1f1de0897917990c7c938f3.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cwcask7sl7uvo"
path.s3tc="res://.godot/imported/exitprotal_2.png-20e2edeed5a3dd03db3fcc7f9eba3de0.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={}
[deps]
source_file="res://Textures/Models/exitprotal_2.png"
dest_files=["res://.godot/imported/exitprotal_2.png-20e2edeed5a3dd03db3fcc7f9eba3de0.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dja0dicdmp2li"
path.s3tc="res://.godot/imported/exitprotal_portal.png-cdcef1fd9cfe16937912698221f837d5.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={}
[deps]
source_file="res://Textures/Models/exitprotal_portal.png"
dest_files=["res://.godot/imported/exitprotal_portal.png-cdcef1fd9cfe16937912698221f837d5.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@@ -198,6 +198,7 @@ mouse_filter = 2
color = Color(0, 0, 0, 1)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
speed_scale = 64.0
libraries = {
"": SubResource("AnimationLibrary_iabf8")
}

View File

@@ -15,6 +15,10 @@ run/main_scene="res://Scenes/Main.tscn"
config/features=PackedStringArray("4.1", "C#", "Forward Plus")
run/physics_ticks_per_second=60
[autoload]
BgmPlayer="*res://Scripts/BGMPlayer.cs"
[display]
window/size/viewport_width=1920