Refactor minimap

This commit is contained in:
2025-03-07 19:43:27 -08:00
parent fe3c539a62
commit d30fa35546
15 changed files with 62 additions and 62 deletions

View File

@@ -0,0 +1,9 @@
namespace Zennysoft.Game.Ma.Implementation;
public partial class InGameUILogic
{
public static class Input
{
public readonly record struct ShowMinimap;
public readonly record struct HideMinimap;
}
}

View File

@@ -8,5 +8,7 @@ public partial class InGameUILogic
public readonly record struct AnnounceMessageOnMainScreen(string Message);
public readonly record struct AnnounceMessageInInventory(string Message);
public readonly record struct RemoveItemFromInventory(IInventoryItem Item);
public readonly record struct DisplayMinimap();
public readonly record struct HideMinimap();
}
}

View File

@@ -7,9 +7,9 @@ public partial class InGameUILogic
public partial record State
{
[Meta]
public partial record Active : State
public partial record Active : State, IGet<Input.ShowMinimap>
{
public Transition On(in Input.ShowMinimap input) => To<MinimapOpen>();
}
}
}

View File

@@ -0,0 +1,22 @@
using Chickensoft.Introspection;
using Chickensoft.LogicBlocks;
namespace Zennysoft.Game.Ma.Implementation;
public partial class InGameUILogic
{
public partial record State
{
[Meta]
public partial record MinimapOpen : State, IGet<Input.HideMinimap>
{
public MinimapOpen()
{
OnAttach(() => { Get<IGameRepo>().Pause(); Output(new Output.DisplayMinimap()); });
OnDetach(() => { Get<IGameRepo>().Resume(); Output(new Output.HideMinimap()); });
}
public Transition On(in Input.HideMinimap input) => To<Active>();
}
}
}