Game state manager and restored inventory

This commit is contained in:
Marco 2025-06-25 15:36:50 +02:00
commit a0ec2f3d74
27 changed files with 1283 additions and 1175 deletions

View file

@ -1,4 +1,6 @@
using Godot;
using Cirno.Scripts.Components.Actors;
using Cirno.Scripts.Utils;
using Godot;
namespace Cirno.Scripts.Components.FSM._3DPlayer;
@ -7,6 +9,7 @@ public partial class Active : BaseState<PlayerState, CharacterBody3D>
public override PlayerState StateId => PlayerState.Active;
private CharacterBody3D _player;
[Export] private InputProvider _inputProvider;
public override void Init(IStateMachine<PlayerState, CharacterBody3D> machine)
{
@ -84,12 +87,28 @@ public partial class Active : BaseState<PlayerState, CharacterBody3D>
{
base.ProcessState(delta);
HandleInputHotkeys();
}
private void HandleInputHotkeys()
{
if (_inputProvider.GetInventoryJustPressed())
{
GameStateManager.SetState(GameState.Inventory);
return;
}
if (_inputProvider.GetPauseJustPressed())
{
GameStateManager.Instance.Pause();
//PauseDeferred();
return;
}
}
private void PauseDeferred()
{
GameManager.Instance.Pause();
GameStateManager.Instance.Pause();
}

View file

@ -1,5 +1,6 @@
using System;
using Cirno.Scripts.Components.Actors;
using Cirno.Scripts.Utils;
using Godot;
namespace Cirno.Scripts.Components.FSM.Player;
@ -180,7 +181,7 @@ public partial class Active : PlayerStateBase
if (_inputProvider.GetInventoryJustPressed())
{
GameManager.Instance.ChangeState(GameState.Inventory);
GameStateManager.SetState(GameState.Inventory);
}
if (_inputProvider.GetPauseJustPressed())
@ -192,7 +193,7 @@ public partial class Active : PlayerStateBase
private void PauseDeferred()
{
GameManager.Instance.Pause();
GameStateManager.Instance.Pause();
}
private void HandleShoot()

View file

@ -1,4 +1,5 @@
using Cirno.Scripts.Components.Actors;
using Cirno.Scripts.Utils;
using Godot;
namespace Cirno.Scripts.Components.FSM.Player.Hacking;
@ -180,7 +181,7 @@ public partial class HackingActive : PlayerStateBase
if (_inputProvider.GetInventoryJustPressed())
{
GameManager.Instance.ChangeState(GameState.Inventory);
GameStateManager.SetState(GameState.Inventory);
}
if (_inputProvider.GetPauseJustPressed())
@ -192,7 +193,7 @@ public partial class HackingActive : PlayerStateBase
private void PauseDeferred()
{
GameManager.Instance.Pause();
GameStateManager.Instance.Pause();
}
private void HandleShoot()