Improvements to save and loading

Improvements to Chinthe animation logic
Fix broken Godot Tool system and just use a more manual approach to setting map nodes
Remove ItemDatabase from individual room scenes
This commit is contained in:
2025-10-24 01:33:18 -07:00
parent f5360adbf1
commit 286c221530
93 changed files with 497 additions and 678 deletions

View File

@@ -7,8 +7,7 @@ namespace Zennysoft.Game.Ma;
public interface IMainMenu : IControl
{
event MainMenu.NewGameEventHandler NewGame;
event MainMenu.LoadGameEventHandler LoadGame;
event MainMenu.StartGameEventHandler StartGame;
event MainMenu.EnemyViewerEventHandler EnemyViewer;
event MainMenu.GalleryEventHandler Gallery;
event MainMenu.QuitEventHandler Quit;
@@ -21,9 +20,7 @@ public partial class MainMenu : Control, IMainMenu
{
public override void _Notification(int what) => this.Notify(what);
[Node] public IButton NewGameButton { get; set; } = default!;
[Node] public IButton LoadGameButton { get; set; } = default!;
[Node] public IButton StartGameButton { get; set; } = default!;
[Node] public IButton EnemyViewerButton { get; set; } = default!;
@@ -32,9 +29,7 @@ public partial class MainMenu : Control, IMainMenu
[Node] public IButton QuitButton { get; set; } = default!;
[Signal]
public delegate void NewGameEventHandler();
[Signal]
public delegate void LoadGameEventHandler();
public delegate void StartGameEventHandler();
[Signal]
public delegate void EnemyViewerEventHandler();
[Signal]
@@ -44,32 +39,28 @@ public partial class MainMenu : Control, IMainMenu
public void OnReady()
{
NewGameButton.Pressed += OnNewGamePressed;
LoadGameButton.Pressed += OnLoadGamePressed;
StartGameButton.Pressed += OnStartGamePressed;
EnemyViewerButton.Pressed += EnemyViewerButton_Pressed;
GalleryButton.Pressed += GalleryButton_Pressed;
QuitButton.Pressed += OnQuitPressed;
NewGameButton.GrabFocus();
StartGameButton.GrabFocus();
}
public void FadeIn()
{
NewGameButton.GrabFocus();
StartGameButton.GrabFocus();
Show();
}
public void OnExitTree()
{
NewGameButton.Pressed -= OnNewGamePressed;
LoadGameButton.Pressed -= OnLoadGamePressed;
StartGameButton.Pressed -= OnStartGamePressed;
EnemyViewerButton.Pressed -= EnemyViewerButton_Pressed;
GalleryButton.Pressed -= GalleryButton_Pressed;
QuitButton.Pressed -= OnQuitPressed;
}
public void OnNewGamePressed() => EmitSignal(SignalName.NewGame);
public void OnLoadGamePressed() => EmitSignal(SignalName.LoadGame);
public void OnStartGamePressed() => EmitSignal(SignalName.StartGame);
private void GalleryButton_Pressed() => EmitSignal(SignalName.Gallery);

View File

@@ -39,25 +39,15 @@ size_flags_horizontal = 0
size_flags_vertical = 0
mouse_filter = 0
[node name="NewGameButton" type="Button" parent="MarginContainer/VBoxContainer"]
[node name="StartGameButton" type="Button" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
focus_neighbor_bottom = NodePath("../LoadGameButton")
theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1)
text = "New Game"
[node name="LoadGameButton" type="Button" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
focus_neighbor_top = NodePath("../NewGameButton")
focus_neighbor_bottom = NodePath("../EnemyViewerButton")
theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1)
text = "Load Game"
text = "Start Game"
[node name="EnemyViewerButton" type="Button" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
focus_neighbor_top = NodePath("../LoadGameButton")
focus_neighbor_bottom = NodePath("../GalleryButton")
theme_override_colors/font_focus_color = Color(0.976471, 0.827451, 0, 1)
text = "Enemy Viewer"