Files
trail-into-darkness/Assets/Code/GameState/PlayModes/PauseMenuPlayMode.cs
2026-03-19 18:12:07 +01:00

48 lines
1.5 KiB
C#

#nullable enable
using Nox.Core;
using Nox.Platform;
using Nox.Game.UI;
using UnityEngine;
namespace Nox.Game {
public class PauseMenuPlayMode : IPlayMode {
private readonly PlatformSettings platformSettings;
private readonly GameDataState gameDataState;
private PauseMenuReferences? pauseMenuReference;
private readonly IMenuView? pauseMenuView;
private readonly InputSystem_Actions inputActions;
public PauseMenuPlayMode(PlatformSettings platformSettings, GameDataState gameDataState, IMenuView pauseMenuView) {
this.platformSettings = platformSettings;
this.gameDataState = gameDataState;
this.pauseMenuView = pauseMenuView;
inputActions = platformSettings.inputSettings.inputActions;
inputActions.UI.Enable();
}
public bool IsGameModeInitialized { get; private set; }
public void EnterPlayMode() {
Debug.Log("Entering PauseMenu Play Mode");
pauseMenuView?.Initialize();
IsGameModeInitialized = true;
}
public void Tick() {
if(inputActions.UI.PauseMenu.WasPerformedThisFrame()) {
pauseMenuView?.Hide();
gameDataState.ChangePlayMode(gameDataState.PreviousPlayMode);
}
pauseMenuView?.Tick();
}
public void LateTick() { }
public void ExitGameMode() {
pauseMenuView?.Hide();
}
public void Dispose() {
inputActions.UI.Disable();
}
}
}