Set up some loading logic and app/main menu logicblocks
This commit is contained in:
@@ -11,7 +11,7 @@ config_version=5
|
||||
[application]
|
||||
|
||||
config/name="GameJamDungeon"
|
||||
run/main_scene="uid://d1gjaijijd5ot"
|
||||
run/main_scene="uid://cagfc5ridmteu"
|
||||
run/print_header=false
|
||||
config/features=PackedStringArray("4.4", "C#", "GL Compatibility")
|
||||
run/delta_smoothing=false
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using Chickensoft.GodotNodeInterfaces;
|
||||
using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
using static GameJamDungeon.AppLogic.Input;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
@@ -28,14 +29,24 @@ public partial class App : CanvasLayer, IApp
|
||||
|
||||
[Node] public ISubViewport GameWindow { get; set; } = default!;
|
||||
|
||||
[Node] public ISplash Splash { get; set; } = default!;
|
||||
[Node] public IColorRect BlankScreen { get; set; } = default!;
|
||||
[Node] public IAnimationPlayer AnimationPlayer { get; set; } = default!;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
Instantiator = new Instantiator(GetTree());
|
||||
AppRepo = new AppRepo();
|
||||
AppLogic = new AppLogic();
|
||||
AppLogic.Set(AppRepo);
|
||||
AppLogic.Set(new AppLogic.Data());
|
||||
|
||||
Menu.NewGame += OnNewGame;
|
||||
Menu.LoadGame += OnLoadGame;
|
||||
Menu.Quit += OnQuit;
|
||||
|
||||
AnimationPlayer.AnimationFinished += OnAnimationFinished;
|
||||
|
||||
Input.MouseMode = Input.MouseModeEnum.Visible;
|
||||
this.Provide();
|
||||
}
|
||||
@@ -45,21 +56,43 @@ public partial class App : CanvasLayer, IApp
|
||||
AppBinding = AppLogic.Bind();
|
||||
|
||||
AppBinding
|
||||
.Handle((in AppLogic.Output.ShowLoadingScreen _) =>
|
||||
.Handle((in AppLogic.Output.ShowSplashScreen _) =>
|
||||
{
|
||||
Menu.Hide();
|
||||
HideMenus();
|
||||
BlankScreen.Hide();
|
||||
Splash.Show();
|
||||
})
|
||||
.Handle((in AppLogic.Output.HideSplashScreen _) =>
|
||||
{
|
||||
BlankScreen.Show();
|
||||
FadeToBlack();
|
||||
})
|
||||
.Handle((in AppLogic.Output.SetupGameScene _) =>
|
||||
{
|
||||
Menu.Hide();
|
||||
Instantiator.SceneTree.Paused = true;
|
||||
Game = Instantiator.LoadAndInstantiate<Game>(GAME_SCENE_PATH);
|
||||
GameWindow.AddChildEx(Game);
|
||||
Instantiator.SceneTree.Paused = false;
|
||||
})
|
||||
.Handle((in AppLogic.Output.ShowMainMenu _) =>
|
||||
{
|
||||
// Load everything while we're showing a black screen, then fade in.
|
||||
HideMenus();
|
||||
Menu.Show();
|
||||
Game.Show();
|
||||
|
||||
FadeInFromBlack();
|
||||
})
|
||||
.Handle((in AppLogic.Output.FadeToBlack _) => FadeToBlack())
|
||||
.Handle((in AppLogic.Output.HideGame _) => FadeToBlack())
|
||||
.Handle((in AppLogic.Output.ShowGame _) =>
|
||||
{
|
||||
Instantiator.SceneTree.Paused = false;
|
||||
Game.Show();
|
||||
HideMenus();
|
||||
FadeInFromBlack();
|
||||
})
|
||||
.Handle((in AppLogic.Output.StartLoadingSaveFile _) =>
|
||||
{
|
||||
Game.SaveFileLoaded += OnSaveFileLoaded;
|
||||
Game.LoadExistingGame();
|
||||
})
|
||||
.Handle((in AppLogic.Output.ExitGame _) =>
|
||||
{
|
||||
@@ -70,9 +103,51 @@ public partial class App : CanvasLayer, IApp
|
||||
AppLogic.Start();
|
||||
}
|
||||
|
||||
public void OnNewGame() => AppLogic.Input(new AppLogic.Input.NewGame());
|
||||
public void OnNewGame() => AppLogic.Input(new NewGame());
|
||||
|
||||
public void OnQuit() => AppLogic.Input(new AppLogic.Input.QuitGame());
|
||||
private void OnLoadGame() => AppLogic.Input(new LoadGame());
|
||||
|
||||
public void OnQuit() => AppLogic.Input(new QuitGame());
|
||||
|
||||
public void OnSaveFileLoaded()
|
||||
{
|
||||
Game.SaveFileLoaded -= OnSaveFileLoaded;
|
||||
AppLogic.Input(new SaveFileLoaded());
|
||||
}
|
||||
|
||||
public void FadeInFromBlack()
|
||||
{
|
||||
BlankScreen.Show();
|
||||
AnimationPlayer.Play("fade_in");
|
||||
}
|
||||
|
||||
public void FadeToBlack()
|
||||
{
|
||||
BlankScreen.Show();
|
||||
AnimationPlayer.Play("fade_out");
|
||||
}
|
||||
|
||||
public void HideMenus()
|
||||
{
|
||||
Splash.Hide();
|
||||
Menu.Hide();
|
||||
}
|
||||
|
||||
public void OnAnimationFinished(StringName animation)
|
||||
{
|
||||
// There's only two animations :)
|
||||
// We don't care what state we're in — we just tell the current state what's
|
||||
// happened and it will do the right thing.
|
||||
|
||||
if (animation == "fade_in")
|
||||
{
|
||||
AppLogic.Input(new AppLogic.Input.FadeInFinished());
|
||||
BlankScreen.Hide();
|
||||
return;
|
||||
}
|
||||
|
||||
AppLogic.Input(new AppLogic.Input.FadeOutFinished());
|
||||
}
|
||||
|
||||
public void OnExitTree()
|
||||
{
|
||||
|
||||
@@ -1,7 +1,60 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cagfc5ridmteu"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://cagfc5ridmteu"]
|
||||
|
||||
[ext_resource type="Script" path="res://src/app/App.cs" id="1_rt73h"]
|
||||
[ext_resource type="Script" uid="uid://d1f8blk5ucqvq" path="res://src/app/App.cs" id="1_rt73h"]
|
||||
[ext_resource type="PackedScene" uid="uid://rfvnddfqufho" path="res://src/menu/Menu.tscn" id="2_kvwo1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bd0p761qakisw" path="res://src/menu/splash/Splash.tscn" id="3_3st5l"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_1uiag"]
|
||||
resource_name = "fade_in"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BlankScreenControl/BlankScreen:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0.270588, 0, 0, 1), Color(0, 0, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_3st5l"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BlankScreenControl/BlankScreen:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_v0mgf"]
|
||||
resource_name = "fade_out"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BlankScreenControl/BlankScreen:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 0), Color(0, 0, 0.454902, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3st5l"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_3st5l"),
|
||||
&"fade_in": SubResource("Animation_1uiag"),
|
||||
&"fade_out": SubResource("Animation_v0mgf")
|
||||
}
|
||||
|
||||
[node name="App" type="CanvasLayer"]
|
||||
process_mode = 3
|
||||
@@ -26,3 +79,31 @@ render_target_update_mode = 4
|
||||
|
||||
[node name="Menu" parent="." instance=ExtResource("2_kvwo1")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
|
||||
[node name="Splash" parent="." instance=ExtResource("3_3st5l")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="BlankScreenControl" type="Control" parent="."]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="BlankScreen" type="ColorRect" parent="BlankScreenControl"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_3st5l")
|
||||
}
|
||||
|
||||
@@ -12,8 +12,6 @@ public interface IAppRepo : IDisposable
|
||||
|
||||
event Action? MainMenuEntered;
|
||||
|
||||
event Action? ShowLoadingScreen;
|
||||
|
||||
void SkipSplashScreen();
|
||||
|
||||
void OnMainMenuEntered();
|
||||
@@ -23,9 +21,6 @@ public interface IAppRepo : IDisposable
|
||||
void OnExitGame();
|
||||
|
||||
void OnGameOver();
|
||||
|
||||
void OnShowLoadingScreen();
|
||||
|
||||
}
|
||||
|
||||
public class AppRepo : IAppRepo
|
||||
@@ -34,7 +29,6 @@ public class AppRepo : IAppRepo
|
||||
public event Action? MainMenuEntered;
|
||||
public event Action? GameEntered;
|
||||
public event Action? GameExited;
|
||||
public event Action? ShowLoadingScreen;
|
||||
|
||||
private bool _disposedValue;
|
||||
|
||||
@@ -48,8 +42,6 @@ public class AppRepo : IAppRepo
|
||||
|
||||
public void OnGameOver() => GameExited?.Invoke();
|
||||
|
||||
public void OnShowLoadingScreen() => ShowLoadingScreen?.Invoke();
|
||||
|
||||
protected void Dispose(bool disposing)
|
||||
{
|
||||
if (!_disposedValue)
|
||||
@@ -61,7 +53,6 @@ public class AppRepo : IAppRepo
|
||||
MainMenuEntered = null;
|
||||
GameEntered = null;
|
||||
GameExited = null;
|
||||
ShowLoadingScreen = null;
|
||||
}
|
||||
|
||||
_disposedValue = true;
|
||||
|
||||
8
src/app/state/AppLogic.Data.cs
Normal file
8
src/app/state/AppLogic.Data.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace GameJamDungeon;
|
||||
public partial class AppLogic
|
||||
{
|
||||
public record Data
|
||||
{
|
||||
public bool ShouldLoadExistingGame { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,8 +6,11 @@ public partial class AppLogic
|
||||
{
|
||||
public readonly record struct NewGame;
|
||||
|
||||
public readonly record struct LoadGame;
|
||||
|
||||
public readonly record struct LoadGameFinished;
|
||||
|
||||
public readonly record struct FadeInFinished;
|
||||
public readonly record struct FadeOutFinished;
|
||||
|
||||
public readonly record struct QuitGame;
|
||||
@@ -15,5 +18,7 @@ public partial class AppLogic
|
||||
public readonly record struct GameOver;
|
||||
|
||||
public readonly record struct ShowLoadingScreen;
|
||||
|
||||
public readonly record struct SaveFileLoaded;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,5 +27,7 @@ public partial class AppLogic
|
||||
public readonly record struct ExitGame;
|
||||
|
||||
public readonly record struct GameOver;
|
||||
|
||||
public readonly record struct StartLoadingSaveFile;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,5 +9,5 @@ public interface IAppLogic : ILogicBlock<AppLogic.State>;
|
||||
[LogicBlock(typeof(State), Diagram = true)]
|
||||
public partial class AppLogic : LogicBlock<AppLogic.State>, IAppLogic
|
||||
{
|
||||
public override Transition GetInitialState() => To<State.SetupGameScene>();
|
||||
public override Transition GetInitialState() => To<State.SplashScreen>();
|
||||
}
|
||||
|
||||
@@ -1,25 +1,30 @@
|
||||
@startuml AppLogic
|
||||
state "AppLogic State" as GameJamDungeon_AppLogic_State {
|
||||
state "SetupGameScene" as GameJamDungeon_AppLogic_State_SetupGameScene
|
||||
state "InGame" as GameJamDungeon_AppLogic_State_InGame
|
||||
state "LoadingScreen" as GameJamDungeon_AppLogic_State_LoadingScreen
|
||||
state "LeavingMenu" as GameJamDungeon_AppLogic_State_LeavingMenu
|
||||
state "LoadingSaveFile" as GameJamDungeon_AppLogic_State_LoadingSaveFile
|
||||
state "MainMenu" as GameJamDungeon_AppLogic_State_MainMenu
|
||||
state "SplashScreen" as GameJamDungeon_AppLogic_State_SplashScreen
|
||||
}
|
||||
|
||||
GameJamDungeon_AppLogic_State_InGame --> GameJamDungeon_AppLogic_State_MainMenu : GameOver
|
||||
GameJamDungeon_AppLogic_State_LoadingScreen --> GameJamDungeon_AppLogic_State_InGame : LoadGameFinished
|
||||
GameJamDungeon_AppLogic_State_MainMenu --> GameJamDungeon_AppLogic_State_LoadingScreen : NewGame
|
||||
GameJamDungeon_AppLogic_State_LeavingMenu --> GameJamDungeon_AppLogic_State_InGame : FadeOutFinished
|
||||
GameJamDungeon_AppLogic_State_LeavingMenu --> GameJamDungeon_AppLogic_State_LoadingSaveFile : FadeOutFinished
|
||||
GameJamDungeon_AppLogic_State_LoadingSaveFile --> GameJamDungeon_AppLogic_State_InGame : SaveFileLoaded
|
||||
GameJamDungeon_AppLogic_State_MainMenu --> GameJamDungeon_AppLogic_State_LeavingMenu : LoadGame
|
||||
GameJamDungeon_AppLogic_State_MainMenu --> GameJamDungeon_AppLogic_State_LeavingMenu : NewGame
|
||||
GameJamDungeon_AppLogic_State_MainMenu --> GameJamDungeon_AppLogic_State_MainMenu : QuitGame
|
||||
GameJamDungeon_AppLogic_State_SetupGameScene --> GameJamDungeon_AppLogic_State_InGame : LoadGameFinished
|
||||
GameJamDungeon_AppLogic_State_SplashScreen --> GameJamDungeon_AppLogic_State_MainMenu : FadeOutFinished
|
||||
|
||||
GameJamDungeon_AppLogic_State_InGame : OnEnter → ShowGame
|
||||
GameJamDungeon_AppLogic_State_InGame : OnExit → HideGame
|
||||
GameJamDungeon_AppLogic_State_InGame : OnGameOver → RemoveExistingGame
|
||||
GameJamDungeon_AppLogic_State_LoadingScreen : OnEnter → ShowLoadingScreen
|
||||
GameJamDungeon_AppLogic_State_MainMenu : OnEnter → ShowMainMenu
|
||||
GameJamDungeon_AppLogic_State_MainMenu : OnNewGame → SetupGameScene
|
||||
GameJamDungeon_AppLogic_State_LeavingMenu : OnEnter → FadeToBlack
|
||||
GameJamDungeon_AppLogic_State_LoadingSaveFile : OnEnter → StartLoadingSaveFile
|
||||
GameJamDungeon_AppLogic_State_MainMenu : OnEnter → SetupGameScene, ShowMainMenu
|
||||
GameJamDungeon_AppLogic_State_MainMenu : OnQuitGame → ExitGame
|
||||
GameJamDungeon_AppLogic_State_SetupGameScene : OnEnter → SetupGameScene, ShowGame
|
||||
GameJamDungeon_AppLogic_State_SplashScreen : OnEnter → ShowSplashScreen
|
||||
GameJamDungeon_AppLogic_State_SplashScreen : OnSplashScreenSkipped() → HideSplashScreen
|
||||
|
||||
[*] --> GameJamDungeon_AppLogic_State_SetupGameScene
|
||||
[*] --> GameJamDungeon_AppLogic_State_SplashScreen
|
||||
@enduml
|
||||
@@ -30,7 +30,7 @@ public partial class AppLogic
|
||||
return To<MainMenu>();
|
||||
}
|
||||
|
||||
public void OnGameExited() => Input(new Input.GameOver());
|
||||
public void OnGameExited() => Input(new Input.QuitGame());
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/app/state/states/AppLogic.State.LeavingMenu.cs
Normal file
24
src/app/state/states/AppLogic.State.LeavingMenu.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
namespace GameJamDungeon;
|
||||
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.LogicBlocks;
|
||||
|
||||
public partial class AppLogic
|
||||
{
|
||||
public partial record State
|
||||
{
|
||||
[Meta]
|
||||
public partial record LeavingMenu : State, IGet<Input.FadeOutFinished>
|
||||
{
|
||||
public LeavingMenu()
|
||||
{
|
||||
this.OnEnter(() => Output(new Output.FadeToBlack()));
|
||||
}
|
||||
|
||||
public Transition On(in Input.FadeOutFinished input) =>
|
||||
Get<Data>().ShouldLoadExistingGame
|
||||
? To<LoadingSaveFile>()
|
||||
: To<InGame>();
|
||||
}
|
||||
}
|
||||
}
|
||||
20
src/app/state/states/AppLogic.State.LoadingSaveFile.cs
Normal file
20
src/app/state/states/AppLogic.State.LoadingSaveFile.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
namespace GameJamDungeon;
|
||||
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.LogicBlocks;
|
||||
|
||||
public partial class AppLogic
|
||||
{
|
||||
public partial record State
|
||||
{
|
||||
[Meta]
|
||||
public partial record LoadingSaveFile : State, IGet<Input.SaveFileLoaded>
|
||||
{
|
||||
public LoadingSaveFile()
|
||||
{
|
||||
this.OnEnter(() => Output(new Output.StartLoadingSaveFile()));
|
||||
}
|
||||
public Transition On(in Input.SaveFileLoaded input) => To<InGame>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,20 +8,28 @@ public partial class AppLogic
|
||||
public partial record State
|
||||
{
|
||||
[Meta]
|
||||
public partial record MainMenu : State, IGet<Input.NewGame>, IGet<Input.QuitGame>
|
||||
public partial record MainMenu : State, IGet<Input.NewGame>, IGet<Input.LoadGame>, IGet<Input.QuitGame>
|
||||
{
|
||||
public MainMenu()
|
||||
{
|
||||
this.OnEnter(() =>
|
||||
{
|
||||
Get<Data>().ShouldLoadExistingGame = false;
|
||||
Output(new Output.SetupGameScene());
|
||||
Get<IAppRepo>().OnMainMenuEntered();
|
||||
Output(new Output.ShowMainMenu());
|
||||
});
|
||||
}
|
||||
|
||||
public Transition On(in Input.NewGame input)
|
||||
{
|
||||
Output(new Output.SetupGameScene());
|
||||
return To<LoadingScreen>();
|
||||
return To<LeavingMenu>();
|
||||
}
|
||||
|
||||
public Transition On(in Input.LoadGame input)
|
||||
{
|
||||
Get<Data>().ShouldLoadExistingGame = true;
|
||||
return To<LeavingMenu>();
|
||||
}
|
||||
|
||||
public Transition On(in Input.QuitGame input)
|
||||
@@ -1,29 +0,0 @@
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.LogicBlocks;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
public partial class AppLogic
|
||||
{
|
||||
public partial record State
|
||||
{
|
||||
[Meta]
|
||||
public partial record SetupGameScene : State, IGet<Input.LoadGameFinished>
|
||||
{
|
||||
public SetupGameScene()
|
||||
{
|
||||
this.OnEnter(() =>
|
||||
{
|
||||
Output(new Output.SetupGameScene());
|
||||
Output(new Output.ShowGame());
|
||||
Input(new Input.LoadGameFinished());
|
||||
});
|
||||
}
|
||||
|
||||
public Transition On(in Input.LoadGameFinished input)
|
||||
{
|
||||
return To<InGame>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
32
src/app/state/states/AppLogic.State.SplashScreen.cs
Normal file
32
src/app/state/states/AppLogic.State.SplashScreen.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
namespace GameJamDungeon;
|
||||
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.LogicBlocks;
|
||||
|
||||
public partial class AppLogic
|
||||
{
|
||||
public partial record State
|
||||
{
|
||||
[Meta]
|
||||
public partial record SplashScreen : State, IGet<Input.FadeOutFinished>
|
||||
{
|
||||
public SplashScreen()
|
||||
{
|
||||
this.OnEnter(() => Output(new Output.ShowSplashScreen()));
|
||||
|
||||
OnAttach(
|
||||
() => Get<IAppRepo>().SplashScreenSkipped += OnSplashScreenSkipped
|
||||
);
|
||||
|
||||
OnDetach(
|
||||
() => Get<IAppRepo>().SplashScreenSkipped -= OnSplashScreenSkipped
|
||||
);
|
||||
}
|
||||
|
||||
public Transition On(in Input.FadeOutFinished input) => To<MainMenu>();
|
||||
|
||||
public void OnSplashScreenSkipped() =>
|
||||
Output(new Output.HideSplashScreen());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.LogicBlocks;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
public partial class AppLogic
|
||||
{
|
||||
public partial record State
|
||||
{
|
||||
[Meta]
|
||||
public partial record LoadingScreen : State, IGet<Input.LoadGameFinished>
|
||||
{
|
||||
public LoadingScreen()
|
||||
{
|
||||
this.OnEnter(() =>
|
||||
{
|
||||
Output(new Output.ShowLoadingScreen());
|
||||
});
|
||||
}
|
||||
|
||||
public Transition On(in Input.LoadGameFinished input) => To<InGame>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,6 +75,9 @@ public partial class Game : Node3D, IGame
|
||||
public ISaveChunk<GameData> GameChunk { get; set; } = default!;
|
||||
|
||||
ISaveChunk<GameData> IProvide<ISaveChunk<GameData>>.Value() => GameChunk;
|
||||
|
||||
[Signal]
|
||||
public delegate void SaveFileLoadedEventHandler();
|
||||
#endregion
|
||||
|
||||
public RescuedItemDatabase RescuedItems { get; set; } = default!;
|
||||
@@ -186,6 +189,7 @@ public partial class Game : Node3D, IGame
|
||||
.Handle((in GameLogic.Output.StartGame _) =>
|
||||
{
|
||||
InGameUI.Show();
|
||||
GameRepo.Resume();
|
||||
})
|
||||
.Handle((in GameLogic.Output.GoToOverworld _) =>
|
||||
{
|
||||
@@ -254,6 +258,12 @@ public partial class Game : Node3D, IGame
|
||||
SaveFile.Load();
|
||||
}
|
||||
|
||||
public void LoadExistingGame()
|
||||
{
|
||||
SaveFile.Load()
|
||||
.ContinueWith((_) => CallDeferred(nameof(FinishedLoadingSaveFile)));
|
||||
}
|
||||
|
||||
public void TogglePause()
|
||||
{
|
||||
if (GameLogic.Value is Paused)
|
||||
@@ -483,5 +493,8 @@ public partial class Game : Node3D, IGame
|
||||
GameLogic.Input(new GameLogic.Input.PauseMenuTransitioned());
|
||||
}
|
||||
|
||||
public void OnStart() => GameLogic.Input(new GameLogic.Input.StartGame());
|
||||
private void FinishedLoadingSaveFile()
|
||||
{
|
||||
EmitSignal(SignalName.SaveFileLoaded);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,5 +9,5 @@ public interface IGameLogic : ILogicBlock<GameLogic.State>;
|
||||
[LogicBlock(typeof(State), Diagram = true)]
|
||||
public partial class GameLogic : LogicBlock<GameLogic.State>, IGameLogic
|
||||
{
|
||||
public override Transition GetInitialState() => To<State.GameStarted>();
|
||||
public override Transition GetInitialState() => To<State.MenuBackdrop>();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@startuml GameLogic
|
||||
state "GameLogic State" as GameJamDungeon_GameLogic_State {
|
||||
state "GameStarted" as GameJamDungeon_GameLogic_State_GameStarted
|
||||
state "MenuBackdrop" as GameJamDungeon_GameLogic_State_MenuBackdrop
|
||||
state "Playing" as GameJamDungeon_GameLogic_State_Playing {
|
||||
state "AskForTeleport" as GameJamDungeon_GameLogic_State_AskForTeleport
|
||||
state "FloorClearedDecisionState" as GameJamDungeon_GameLogic_State_FloorClearedDecisionState
|
||||
@@ -17,8 +17,8 @@ GameJamDungeon_GameLogic_State_AskForTeleport --> GameJamDungeon_GameLogic_State
|
||||
GameJamDungeon_GameLogic_State_FloorClearedDecisionState --> GameJamDungeon_GameLogic_State_FloorClearedDecisionState : GoToNextFloor
|
||||
GameJamDungeon_GameLogic_State_FloorClearedDecisionState --> GameJamDungeon_GameLogic_State_Playing : HideFloorClearMenu
|
||||
GameJamDungeon_GameLogic_State_FloorClearedDecisionState --> GameJamDungeon_GameLogic_State_Playing : SaveGame
|
||||
GameJamDungeon_GameLogic_State_GameStarted --> GameJamDungeon_GameLogic_State_Playing : Initialize
|
||||
GameJamDungeon_GameLogic_State_InventoryOpened --> GameJamDungeon_GameLogic_State_Playing : CloseInventory
|
||||
GameJamDungeon_GameLogic_State_MenuBackdrop --> GameJamDungeon_GameLogic_State_Playing : StartGame
|
||||
GameJamDungeon_GameLogic_State_MinimapOpen --> GameJamDungeon_GameLogic_State_Playing : MiniMapButtonReleased
|
||||
GameJamDungeon_GameLogic_State_Paused --> GameJamDungeon_GameLogic_State_Resuming : UnpauseGame
|
||||
GameJamDungeon_GameLogic_State_Playing --> GameJamDungeon_GameLogic_State_AskForTeleport : AskForTeleport
|
||||
@@ -32,16 +32,16 @@ GameJamDungeon_GameLogic_State_Resuming --> GameJamDungeon_GameLogic_State_Playi
|
||||
GameJamDungeon_GameLogic_State : OnIsPaused() → SetPauseMode
|
||||
GameJamDungeon_GameLogic_State_FloorClearedDecisionState : OnGoToNextFloor → LoadNextFloor
|
||||
GameJamDungeon_GameLogic_State_FloorClearedDecisionState : OnSaveGame → SaveGame
|
||||
GameJamDungeon_GameLogic_State_GameStarted : OnInitialize → StartGame
|
||||
GameJamDungeon_GameLogic_State_InventoryOpened : OnEnter → OpenInventory
|
||||
GameJamDungeon_GameLogic_State_InventoryOpened : OnExit → HideInventory
|
||||
GameJamDungeon_GameLogic_State_MinimapOpen : OnEnter → ShowMiniMap
|
||||
GameJamDungeon_GameLogic_State_MinimapOpen : OnExit → HideMiniMap
|
||||
GameJamDungeon_GameLogic_State_Paused : OnEnter → ShowPauseMenu
|
||||
GameJamDungeon_GameLogic_State_Paused : OnExit → ExitPauseMenu
|
||||
GameJamDungeon_GameLogic_State_Playing : None → StartGame
|
||||
GameJamDungeon_GameLogic_State_Playing : OnGoToOverworld → GoToOverworld
|
||||
GameJamDungeon_GameLogic_State_Quit : OnEnter → ShowLostScreen
|
||||
GameJamDungeon_GameLogic_State_Resuming : OnExit → HidePauseMenu
|
||||
|
||||
[*] --> GameJamDungeon_GameLogic_State_GameStarted
|
||||
[*] --> GameJamDungeon_GameLogic_State_MenuBackdrop
|
||||
@enduml
|
||||
@@ -41,7 +41,7 @@ public class GameRepo : IGameRepo
|
||||
|
||||
public GameRepo()
|
||||
{
|
||||
_isPaused = new AutoProp<bool>(false);
|
||||
_isPaused = new AutoProp<bool>(true);
|
||||
_playerGlobalTransform = new AutoProp<Transform3D>(Transform3D.Identity);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,10 @@ using System;
|
||||
|
||||
public interface IGame : IProvide<IGameRepo>, IProvide<IGameEventDepot>, IProvide<IGame>, IProvide<IPlayer>, IProvide<ISaveChunk<GameData>>, INode3D
|
||||
{
|
||||
void LoadExistingGame();
|
||||
|
||||
event Game.SaveFileLoadedEventHandler? SaveFileLoaded;
|
||||
|
||||
event Game.StatRaisedAlertEventHandler StatRaisedAlert;
|
||||
|
||||
public RescuedItemDatabase RescuedItems { get; }
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.LogicBlocks;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
public partial class GameLogic
|
||||
{
|
||||
public partial record State
|
||||
{
|
||||
[Meta]
|
||||
public partial record GameStarted : State, IGet<Input.Initialize>
|
||||
{
|
||||
public GameStarted()
|
||||
{
|
||||
this.OnEnter(() => { Get<IGameRepo>().Pause(); });
|
||||
this.OnExit(() => { Get<IGameRepo>().Resume(); });
|
||||
}
|
||||
|
||||
public Transition On(in Input.Initialize input)
|
||||
{
|
||||
Output(new Output.StartGame());
|
||||
return To<Playing>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
src/game/state/states/GameLogic.State.MenuBackdrop.cs
Normal file
23
src/game/state/states/GameLogic.State.MenuBackdrop.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
namespace GameJamDungeon;
|
||||
|
||||
using Chickensoft.Introspection;
|
||||
|
||||
public partial class GameLogic
|
||||
{
|
||||
public partial record State
|
||||
{
|
||||
[Meta]
|
||||
public partial record MenuBackdrop : State, IGet<Input.StartGame>
|
||||
{
|
||||
public MenuBackdrop()
|
||||
{
|
||||
OnAttach(() => Get<IAppRepo>().GameEntered += OnGameEntered);
|
||||
OnDetach(() => Get<IAppRepo>().GameEntered -= OnGameEntered);
|
||||
}
|
||||
|
||||
public void OnGameEntered() => Input(new Input.StartGame());
|
||||
|
||||
public Transition On(in Input.StartGame input) => To<Playing>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.LogicBlocks;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
@@ -17,6 +18,7 @@ public partial class GameLogic
|
||||
{
|
||||
public Playing()
|
||||
{
|
||||
OnAttach(() => Output(new Output.StartGame()));
|
||||
}
|
||||
|
||||
public void OnEnded() => Input(new Input.GameOver());
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
[gd_scene load_steps=15 format=3 uid="uid://bc1sp6xwe0j65"]
|
||||
[gd_scene load_steps=13 format=3 uid="uid://bc1sp6xwe0j65"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_0ecnn"]
|
||||
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_cxmwa"]
|
||||
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_gkkr3"]
|
||||
[ext_resource type="PackedScene" uid="uid://dn5546yqyntfr" path="res://src/map/dungeon/rooms/Set A/10. Item Transfer Room.tscn" id="6_atq1f"]
|
||||
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="8_1l8yt"]
|
||||
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="8_5rblf"]
|
||||
[ext_resource type="Script" uid="uid://fk3jis6rsipv" path="res://src/map/dungeon/code/corridor.gd" id="9_lcc45"]
|
||||
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="12_aw26s"]
|
||||
[ext_resource type="PackedScene" uid="uid://cihbmyo0ltq4m" path="res://src/map/dungeon/rooms/Set A/19. Floor Exit A.tscn" id="12_n02rw"]
|
||||
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="13_kwaga"]
|
||||
@@ -14,6 +12,8 @@
|
||||
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="14_gkkr3"]
|
||||
|
||||
[sub_resource type="NavigationMesh" id="NavigationMesh_xw4dv"]
|
||||
vertices = PackedVector3Array(38, -0.588592, 22.75, 38, -0.588592, 23.75, 39.5, -0.588592, 23.75, 19.75, -0.588592, 25, 17, -0.588592, 25, 17, -0.588592, 26, 16.5, -0.588592, 26.25, 16.75, -0.588592, 30.5, 33.5, -0.588592, -20.75, 33.5, -0.588592, -17.5, 36.5, -0.588592, -17.5, -20.5, -0.588592, -29.5, -17.25, -0.588592, -29.5, -17.25, -0.588592, -32.75, -11.5, -0.588592, -23, -14.5, -0.588592, -23, -14.75, -0.588592, -19.25, 16.75, -0.588592, 13.5, 16.5, -0.588592, 18, 17.25, -0.588592, 18.5, 30.75, -0.588592, 18.5, 37.5, -0.588592, -16.75, 39.5, -0.588592, -39.5, -10.5, -0.588592, -23.5, -0.75, -0.588592, -15, -1.25, -0.588592, -15.5, 4.5, -0.588592, -33.5, 5.5, -0.588592, -32.75, 32.5, -0.588592, -21.5, -28.5, -0.588592, -25.5, -21.25, -0.588592, -25.5, -21.25, -0.588592, -28.75, 16.25, -0.588592, 32.5, 19.75, -0.588592, 39.5, -0.75, -0.588592, 11.5, -22.75, -0.588592, -11.25, -28.75, -0.588592, -11, -39.5, -0.588592, 39.5, -0.75, -0.588592, 32.25, -1.25, -0.588592, -27, -10.5, -0.588592, -27, -22.5, -0.588592, -19, -29.25, -0.588592, -24.75, -39.5, -0.588592, -39.5, -16.5, -0.588592, -33.5, -29.25, -0.588592, -11.5, 16.25, -0.588592, 11.25, 30.75, -0.588592, -11, 27.25, -0.588592, -11, 37.5, -0.588592, 22.5, 26.75, -0.588592, -11.5, 26.75, -0.588592, -15, 5.5, -0.588592, -21.5, 13.75, -0.588592, 13.5, 15, -0.588592, 13.25, 15, -0.588592, 12.75, 0.75, -0.588592, 12.75, 0.75, -0.588592, 13.25, 2.25, -0.588592, 13.5, 2.25, -0.588592, 30.25, 0.75, -0.588592, 30.5, 0.75, -0.588592, 31, 15, -0.588592, 31, 13.75, -0.588592, 30.5, 15, -0.588592, 27.5, 15, -0.588592, 26.25, 14.25, -0.588592, 26, 13.75, -0.588592, 27.75, 6.75, -0.588592, 23.5, 6.5, -0.588592, 20.75, 2.25, -0.588592, 16, 0.75, -0.588592, 16.25, 0.75, -0.588592, 27.5, 2.25, -0.588592, 27.75, 9.5, -0.588592, 23.25, 14.25, -0.588592, 18.25, 15, -0.588592, 18, 15, -0.588592, 16.25, 13.75, -0.588592, 16, 9.25, -0.588592, 20.5, 14.75, -0.588592, 21.5, 14.25, -0.588592, 21.25, 20.5, 6.66141, 24.75, 20.5, 6.66141, 27.25, 23.25, 6.66141, 27.25, 23.25, 6.66141, 24.75, 36.75, 6.66141, 24.75, 36.75, 6.66141, 27.25, 39.25, 6.66141, 27.25, 39.25, 6.66141, 24.75, 21, -0.588592, 25, 21, -0.588592, 27, 23, -0.588592, 27, 23, -0.588592, 25, 25.25, -0.588592, 38.5, 25.25, -0.588592, 39.5, 26.75, -0.588592, 39.5, 27, -0.588592, 38.25, 35.75, -0.588592, 36, 36, -0.588592, 28.25, 35.75, -0.588592, 25.25, 24.25, -0.588592, 38.25, 24, -0.588592, 35.75, 39.25, -0.588592, 35.75, 39.25, -0.588592, 28.25, 29.75, -0.588592, 38.25, 30, -0.588592, 39.25, 35.75, -0.588592, 39.25, 24.25, -0.588592, 25, 24, -0.588592, 28.25, 21, -0.588592, 28.25, 21, -0.588592, 35.75, 20.75, 6.66141, 36.75, 20.75, 6.66141, 39.25, 23.25, 6.66141, 39.25, 23.25, 6.66141, 36.75, 36.75, 6.66141, 36.75, 36.75, 6.66141, 39.25, 39.25, 6.66141, 39.25, 39.25, 6.66141, 36.75, 37, -0.588592, 37, 37, -0.588592, 39, 39, -0.588592, 39, 39, -0.588592, 37)
|
||||
polygons = [PackedInt32Array(2, 1, 0), PackedInt32Array(5, 4, 3), PackedInt32Array(5, 3, 6), PackedInt32Array(6, 3, 7), PackedInt32Array(10, 9, 8), PackedInt32Array(13, 12, 11), PackedInt32Array(16, 15, 14), PackedInt32Array(18, 17, 19), PackedInt32Array(19, 17, 20), PackedInt32Array(10, 8, 21), PackedInt32Array(21, 8, 22), PackedInt32Array(14, 23, 16), PackedInt32Array(16, 23, 25), PackedInt32Array(16, 25, 24), PackedInt32Array(27, 26, 28), PackedInt32Array(28, 26, 22), PackedInt32Array(31, 30, 29), PackedInt32Array(7, 3, 32), PackedInt32Array(32, 3, 33), PackedInt32Array(35, 34, 36), PackedInt32Array(36, 34, 38), PackedInt32Array(36, 38, 37), PackedInt32Array(11, 31, 29), PackedInt32Array(40, 39, 23), PackedInt32Array(23, 39, 25), PackedInt32Array(41, 16, 35), PackedInt32Array(35, 16, 24), PackedInt32Array(22, 8, 28), PackedInt32Array(43, 29, 42), PackedInt32Array(13, 11, 29), PackedInt32Array(13, 29, 44), PackedInt32Array(44, 29, 43), PackedInt32Array(0, 21, 2), PackedInt32Array(2, 21, 22), PackedInt32Array(45, 36, 37), PackedInt32Array(17, 46, 20), PackedInt32Array(20, 46, 48), PackedInt32Array(20, 48, 47), PackedInt32Array(32, 33, 38), PackedInt32Array(38, 33, 37), PackedInt32Array(0, 49, 21), PackedInt32Array(42, 45, 43), PackedInt32Array(43, 45, 37), PackedInt32Array(44, 43, 26), PackedInt32Array(26, 43, 22), PackedInt32Array(50, 48, 46), PackedInt32Array(50, 46, 51), PackedInt32Array(51, 46, 34), PackedInt32Array(51, 34, 24), PackedInt32Array(24, 34, 35), PackedInt32Array(28, 52, 27), PackedInt32Array(54, 53, 55), PackedInt32Array(55, 53, 58), PackedInt32Array(55, 58, 57), PackedInt32Array(55, 57, 56), PackedInt32Array(60, 59, 61), PackedInt32Array(61, 59, 63), PackedInt32Array(61, 63, 62), PackedInt32Array(65, 64, 66), PackedInt32Array(66, 64, 67), PackedInt32Array(73, 72, 68), PackedInt32Array(68, 72, 69), PackedInt32Array(69, 72, 70), PackedInt32Array(70, 72, 71), PackedInt32Array(73, 68, 59), PackedInt32Array(59, 68, 74), PackedInt32Array(59, 74, 67), PackedInt32Array(59, 67, 63), PackedInt32Array(76, 75, 77), PackedInt32Array(77, 75, 78), PackedInt32Array(78, 79, 53), PackedInt32Array(53, 79, 69), PackedInt32Array(53, 69, 70), PackedInt32Array(53, 70, 58), PackedInt32Array(81, 80, 66), PackedInt32Array(78, 75, 81), PackedInt32Array(66, 67, 81), PackedInt32Array(81, 67, 74), PackedInt32Array(81, 74, 79), PackedInt32Array(81, 79, 78), PackedInt32Array(85, 84, 82), PackedInt32Array(82, 84, 83), PackedInt32Array(89, 88, 86), PackedInt32Array(86, 88, 87), PackedInt32Array(93, 92, 90), PackedInt32Array(90, 92, 91), PackedInt32Array(95, 94, 96), PackedInt32Array(96, 94, 97), PackedInt32Array(100, 99, 98), PackedInt32Array(94, 101, 97), PackedInt32Array(97, 101, 102), PackedInt32Array(104, 103, 99), PackedInt32Array(99, 103, 98), PackedInt32Array(106, 105, 107), PackedInt32Array(107, 105, 98), PackedInt32Array(105, 97, 102), PackedInt32Array(109, 108, 102), PackedInt32Array(102, 108, 105), PackedInt32Array(105, 108, 98), PackedInt32Array(98, 108, 100), PackedInt32Array(109, 102, 110), PackedInt32Array(110, 102, 111), PackedInt32Array(115, 114, 112), PackedInt32Array(112, 114, 113), PackedInt32Array(119, 118, 116), PackedInt32Array(116, 118, 117), PackedInt32Array(123, 122, 120), PackedInt32Array(120, 122, 121)]
|
||||
sample_partition_type = 2
|
||||
geometry_parsed_geometry_type = 1
|
||||
geometry_collision_mask = 2147483648
|
||||
@@ -43,222 +43,128 @@ corridor_cost_multiplier = 0.1
|
||||
show_debug_in_editor = false
|
||||
hide_debug_visuals_for_all_generated_rooms = false
|
||||
|
||||
[node name="BasinRoom_0" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("8_5rblf")]
|
||||
[node name="BasinRoom_0" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("8_5rblf")]
|
||||
transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 8, 0, 22)
|
||||
script = ExtResource("8_1l8yt")
|
||||
size_in_voxels = Vector3i(5, 1, 4)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 2
|
||||
|
||||
[node name="Antechamber A_1" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("3_gkkr3")]
|
||||
[node name="Antechamber A_1" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("3_gkkr3")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, 32)
|
||||
script = ExtResource("8_1l8yt")
|
||||
size_in_voxels = Vector3i(5, 1, 4)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 2
|
||||
|
||||
[node name="Floor Exit A_2" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("12_n02rw")]
|
||||
[node name="Floor Exit A_2" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("12_n02rw")]
|
||||
transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 22, 0, -30)
|
||||
script = ExtResource("8_1l8yt")
|
||||
size_in_voxels = Vector3i(5, 1, 9)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 1
|
||||
|
||||
[node name="Item Transfer Room_3" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("6_atq1f")]
|
||||
[node name="Item Transfer Room_3" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("6_atq1f")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -16, 0, -14)
|
||||
script = ExtResource("8_1l8yt")
|
||||
size_in_voxels = Vector3i(3, 1, 4)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 1
|
||||
|
||||
[node name="Corridor_4" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_4" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, 22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_5" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_5" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, 22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_6" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_6" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26, 0, 22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_7" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_7" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, 22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_8" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_8" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_9" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_9" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_10" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_10" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 14)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_11" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_11" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 10)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_12" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_12" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 6)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_13" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_13" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 2)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_14" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_14" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, -2)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_15" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_15" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, -6)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_16" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_16" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, -10)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_17" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_17" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, -14)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_18" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_18" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, -14)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_19" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_19" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_20" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_20" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_21" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_21" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_22" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_22" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_23" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_23" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_24" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_24" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_25" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_25" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_26" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_26" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_27" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_27" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_28" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_28" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -26)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_29" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_29" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -30)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_30" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_30" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, -30)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_31" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_31" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -30)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_32" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_32" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -30)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_33" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_33" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, -30)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_34" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_34" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, -26)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_35" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_35" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 0, -26)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_36" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_36" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 0, -22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_37" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_37" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, -22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_38" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_38" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26, 0, -22)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_39" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_39" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26, 0, -18)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_40" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
[node name="Corridor_40" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("13_ofywd")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26, 0, -14)
|
||||
script = ExtResource("9_lcc45")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="RoomsContainer" type="Node3D" parent="NavigationRegion3D/DungeonGenerator"]
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=21 format=3 uid="uid://dl1scvkp8r5sw"]
|
||||
[gd_scene load_steps=19 format=3 uid="uid://dl1scvkp8r5sw"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="1_ou8lo"]
|
||||
[ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_yeqmp"]
|
||||
@@ -14,8 +14,6 @@
|
||||
[ext_resource type="PackedScene" uid="uid://cihbmyo0ltq4m" path="res://src/map/dungeon/rooms/Set A/19. Floor Exit A.tscn" id="11_0ea7q"]
|
||||
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_kyvxc"]
|
||||
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="12_1j6d5"]
|
||||
[ext_resource type="Script" uid="uid://ce73fuh74l81l" path="res://addons/SimpleDungeons/DungeonRoom3D.gd" id="12_g81xt"]
|
||||
[ext_resource type="Script" uid="uid://fk3jis6rsipv" path="res://src/map/dungeon/code/corridor.gd" id="13_0ea7q"]
|
||||
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="13_q8fb5"]
|
||||
[ext_resource type="PackedScene" uid="uid://cvk007twac22c" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn" id="14_g81xt"]
|
||||
|
||||
@@ -47,467 +45,266 @@ dungeon_size = Vector3i(30, 1, 30)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
generate_on_ready = false
|
||||
|
||||
[node name="Floor Exit A_0" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("11_0ea7q")]
|
||||
[node name="Floor Exit A_0" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("11_0ea7q")]
|
||||
transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, -34, 0, -22)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(5, 1, 9)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 1
|
||||
|
||||
[node name="RansRoom_1" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("10_1j6d5")]
|
||||
[node name="RansRoom_1" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("10_1j6d5")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 8, 0, 10)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(8, 1, 9)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 1
|
||||
|
||||
[node name="BasinRoom_2" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("4_2o7kq")]
|
||||
[node name="BasinRoom_2" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("4_2o7kq")]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -32, 0, -46)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(5, 1, 4)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 2
|
||||
|
||||
[node name="Water Room_3" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("8_06hbf")]
|
||||
[node name="Water Room_3" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("8_06hbf")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 38, 0, 16)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(7, 1, 12)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 2
|
||||
|
||||
[node name="Column Room_4" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("6_o010k")]
|
||||
[node name="Column Room_4" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("6_o010k")]
|
||||
transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, -46, 0, 20)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(12, 1, 7)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 1
|
||||
|
||||
[node name="Balcony Room A_5" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("5_wo0bu")]
|
||||
[node name="Balcony Room A_5" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("5_wo0bu")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 42, 0, -44)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(9, 1, 8)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 1
|
||||
|
||||
[node name="Pit Room A_6" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("9_imrv0")]
|
||||
[node name="Pit Room A_6" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("9_imrv0")]
|
||||
transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 2, 0, -26)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(9, 1, 9)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 2
|
||||
|
||||
[node name="Antechamber A_7" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("3_yeqmp")]
|
||||
[node name="Antechamber A_7" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("3_yeqmp")]
|
||||
transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 52, 0, 50)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(5, 1, 4)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 2
|
||||
|
||||
[node name="Statue Room_8" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("9_ym1ny")]
|
||||
[node name="Statue Room_8" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("9_ym1ny")]
|
||||
transform = Transform3D(1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, -20, 0, 4)
|
||||
script = ExtResource("12_g81xt")
|
||||
size_in_voxels = Vector3i(4, 1, 4)
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
min_count = 1
|
||||
max_count = 2
|
||||
|
||||
[node name="Corridor_9" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_9" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -22)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_10" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_10" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -18)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_11" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_11" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -14)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_12" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_12" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_13" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_13" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_14" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_14" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -46, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_15" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_15" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_16" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_16" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_17" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_17" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_18" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_18" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_19" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_19" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_20" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_20" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_21" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_21" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_22" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_22" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 0, -6)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_23" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_23" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, -6)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_24" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_24" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -6)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_25" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_25" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -2)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_26" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_26" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 2)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_27" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_27" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 6)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_28" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_28" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_29" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_29" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -26)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_30" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_30" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -30)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_31" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_31" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -34)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_32" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_32" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -38)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_33" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_33" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -54, 0, -42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_34" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_34" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 0, -42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_35" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_35" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -46, 0, -42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_36" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_36" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -46, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_37" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_37" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_38" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_38" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42, 0, -50)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_39" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_39" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42, 0, -54)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_40" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_40" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42, 0, -58)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_41" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_41" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38, 0, -58)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_42" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_42" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 0, -58)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_43" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_43" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, -58)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_44" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_44" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26, 0, -58)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_45" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_45" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, -58)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_46" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_46" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, -54)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_47" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_47" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22, 0, -50)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_48" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_48" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 0, -50)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_49" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_49" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, -50)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_50" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_50" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_51" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_51" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_52" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_52" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_53" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_53" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_54" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_54" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_55" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_55" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, -26)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_56" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_56" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, -22)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_57" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_57" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, -18)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_58" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_58" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, -14)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_59" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_59" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_60" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_60" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_61" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_61" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_62" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_62" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_63" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_63" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 38, 0, -10)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_64" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_64" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, -6)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_65" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_65" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, -2)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_66" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_66" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, 2)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_67" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_67" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 0, 6)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_68" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_68" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_69" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_69" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_70" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_70" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_71" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_71" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_72" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_72" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, -46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_73" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_73" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 30)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_74" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_74" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 30)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_75" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_75" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, 30)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_76" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_76" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, 30)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_77" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_77" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, 30)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_78" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_78" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, 34)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_79" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_79" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, 38)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_80" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_80" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22, 0, 42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_81" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_81" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26, 0, 42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_82" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_82" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 0, 42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_83" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_83" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34, 0, 42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_84" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_84" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 38, 0, 42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_85" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_85" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 42, 0, 42)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="Corridor_86" type="Node3D" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
[node name="Corridor_86" parent="NavigationRegion3D/DungeonGenerator" instance=ExtResource("7_qjouh")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 42, 0, 46)
|
||||
script = ExtResource("13_0ea7q")
|
||||
voxel_scale = Vector3(4, 4, 4)
|
||||
|
||||
[node name="RoomsContainer" type="Node3D" parent="NavigationRegion3D/DungeonGenerator"]
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ namespace GameJamDungeon;
|
||||
public interface IMenu : IControl
|
||||
{
|
||||
event Menu.NewGameEventHandler NewGame;
|
||||
event Menu.LoadGameEventHandler LoadGame;
|
||||
event Menu.QuitEventHandler Quit;
|
||||
}
|
||||
|
||||
@@ -17,20 +18,23 @@ public partial class Menu : Control, IMenu
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
[Node]
|
||||
public IButton NewGameButton { get; set; } = default!;
|
||||
[Node] public IButton NewGameButton { get; set; } = default!;
|
||||
|
||||
[Node]
|
||||
public IButton QuitButton { get; set; } = default!;
|
||||
[Node] public IButton LoadGameButton { get; set; } = default!;
|
||||
|
||||
[Node] public IButton QuitButton { get; set; } = default!;
|
||||
|
||||
[Signal]
|
||||
public delegate void NewGameEventHandler();
|
||||
[Signal]
|
||||
public delegate void LoadGameEventHandler();
|
||||
[Signal]
|
||||
public delegate void QuitEventHandler();
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
NewGameButton.Pressed += OnNewGamePressed;
|
||||
LoadGameButton.Pressed += OnLoadGamePressed;
|
||||
QuitButton.Pressed += OnQuitPressed;
|
||||
NewGameButton.GrabFocus();
|
||||
}
|
||||
@@ -38,11 +42,14 @@ public partial class Menu : Control, IMenu
|
||||
public void OnExitTree()
|
||||
{
|
||||
NewGameButton.Pressed -= OnNewGamePressed;
|
||||
LoadGameButton.Pressed -= OnLoadGamePressed;
|
||||
QuitButton.Pressed -= OnQuitPressed;
|
||||
}
|
||||
|
||||
public void OnNewGamePressed() => EmitSignal(SignalName.NewGame);
|
||||
|
||||
public void OnLoadGamePressed() => EmitSignal(SignalName.LoadGame);
|
||||
|
||||
public void OnQuitPressed() => EmitSignal(SignalName.Quit);
|
||||
|
||||
public override void _UnhandledInput(InputEvent @event)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://rfvnddfqufho"]
|
||||
|
||||
[ext_resource type="Script" path="res://src/menu/Menu.cs" id="1_vehpg"]
|
||||
[ext_resource type="Script" uid="uid://14b7o2c6cgry" path="res://src/menu/Menu.cs" id="1_vehpg"]
|
||||
|
||||
[node name="Menu" type="Control"]
|
||||
layout_mode = 3
|
||||
@@ -33,6 +33,11 @@ unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "New Game"
|
||||
|
||||
[node name="LoadGameButton" type="Button" parent="MarginContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Load Game"
|
||||
|
||||
[node name="QuitButton" type="Button" parent="MarginContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
@@ -15,8 +15,7 @@ public partial class Splash : Control, ISplash
|
||||
[Dependency]
|
||||
public IAppRepo AppRepo => this.DependOn<IAppRepo>();
|
||||
|
||||
[Node]
|
||||
public IAnimationPlayer AnimationPlayer { get; set; } = default!;
|
||||
[Node] public IAnimationPlayer AnimationPlayer { get; set; } = default!;
|
||||
|
||||
public void OnReady() =>
|
||||
AnimationPlayer.AnimationFinished += OnAnimationFinished;
|
||||
@@ -26,4 +25,12 @@ public partial class Splash : Control, ISplash
|
||||
|
||||
public void OnAnimationFinished(StringName name)
|
||||
=> AppRepo.SkipSplashScreen();
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
{
|
||||
if (Input.IsActionJustPressed(GameInputs.Attack) || Input.IsActionJustPressed(GameInputs.Pause))
|
||||
{
|
||||
AppRepo.SkipSplashScreen();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
65
src/menu/splash/Splash.tscn
Normal file
65
src/menu/splash/Splash.tscn
Normal file
@@ -0,0 +1,65 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bd0p761qakisw"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cl3shd6l7frmg" path="res://src/menu/splash/Splash.cs" id="1_7ivmr"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7ivmr"]
|
||||
resource_name = "intro"
|
||||
length = 3.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("ColorRect:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 3),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_jiqgw"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("ColorRect:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jiqgw"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_jiqgw"),
|
||||
&"intro": SubResource("Animation_7ivmr")
|
||||
}
|
||||
|
||||
[node name="Splash" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_7ivmr")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_jiqgw")
|
||||
}
|
||||
autoplay = "intro"
|
||||
Reference in New Issue
Block a user