stash work

This commit is contained in:
Michal Pikulski
2025-10-16 16:18:04 +02:00
parent c7906a9968
commit d2c6c5df38
19 changed files with 353 additions and 277 deletions

View File

@@ -16,25 +16,9 @@ public class GameManager : MonoBehaviour
private static bool _isQuitting = false;
/// <summary>
/// Singleton instance of the GameManager.
/// Singleton instance of the GameManager. No longer creates an instance if one doesn't exist.
/// </summary>
public static GameManager Instance
{
get
{
if (_instance == null && Application.isPlaying && !_isQuitting)
{
_instance = FindAnyObjectByType<GameManager>();
if (_instance == null)
{
var go = new GameObject("GameManager");
_instance = go.AddComponent<GameManager>();
// DontDestroyOnLoad(go);
}
}
return _instance;
}
}
public static GameManager Instance => _instance;
[Header("Settings Status")]
[SerializeField] private bool _settingsLoaded = false;
@@ -77,11 +61,6 @@ public class GameManager : MonoBehaviour
// DontDestroyOnLoad(gameObject);
}
private void Start()
{
// PauseMenu subscription moved to InitializePostBoot
}
private void InitializePostBoot()
{
// Find and subscribe to PauseMenu events

View File

@@ -15,23 +15,10 @@ namespace Core
private static ItemManager _instance;
private static bool _isQuitting;
public static ItemManager Instance
{
get
{
if (_instance == null && Application.isPlaying && !_isQuitting)
{
_instance = FindAnyObjectByType<ItemManager>();
if (_instance == null)
{
var go = new GameObject("ItemManager");
_instance = go.AddComponent<ItemManager>();
// DontDestroyOnLoad(go);
}
}
return _instance;
}
}
/// <summary>
/// Singleton instance of the ItemManager. No longer creates an instance if one doesn't exist.
/// </summary>
public static ItemManager Instance => _instance;
private readonly HashSet<Pickup> _pickups = new HashSet<Pickup>();
private readonly HashSet<ItemSlot> _itemSlots = new HashSet<ItemSlot>();
@@ -68,11 +55,6 @@ namespace Core
// Register for post-boot initialization
BootCompletionService.RegisterInitAction(InitializePostBoot);
}
void Start()
{
// SceneManagerService subscription moved to InitializePostBoot
}
private void InitializePostBoot()
{

View File

@@ -18,23 +18,11 @@ namespace AppleHills.Core
private static QuickAccess _instance;
private static bool _isQuitting = false;
public static QuickAccess Instance
{
get
{
if (_instance == null && Application.isPlaying && !_isQuitting)
{
_instance = FindAnyObjectByType<QuickAccess>();
if (_instance == null)
{
var go = new GameObject("QuickAccess");
_instance = go.AddComponent<QuickAccess>();
}
}
return _instance;
}
}
/// <summary>
/// Singleton instance of QuickAccess. No longer creates an instance if one doesn't exist.
/// </summary>
public static QuickAccess Instance => _instance;
void OnApplicationQuit()
{
_isQuitting = true;
@@ -146,6 +134,8 @@ namespace AppleHills.Core
private void Awake()
{
_instance = this;
if (!_initialized)
{
// Subscribe to scene changes

View File

@@ -16,26 +16,11 @@ namespace Core
private LoadingScreenController _loadingScreen;
private static SceneManagerService _instance;
private static bool _isQuitting = false;
/// <summary>
/// Singleton instance of the SceneManagerService.
/// Singleton instance of the SceneManagerService. No longer creates an instance if one doesn't exist.
/// </summary>
public static SceneManagerService Instance
{
get
{
if (_instance == null && Application.isPlaying && !_isQuitting)
{
_instance = FindAnyObjectByType<SceneManagerService>();
if (_instance == null)
{
var go = new GameObject("SceneManagerService");
_instance = go.AddComponent<SceneManagerService>();
// DontDestroyOnLoad(go);
}
}
return _instance;
}
}
public static SceneManagerService Instance => _instance;
// Events for scene lifecycle
public event Action<string> SceneLoadStarted;
@@ -99,11 +84,6 @@ namespace Core
}
}
void Start()
{
// LoadingScreen setup moved to InitializePostBoot
}
private void InitializePostBoot()
{
// Set up loading screen reference and events after boot is complete

View File

@@ -5,6 +5,8 @@ using Input;
using Settings;
using System.Collections;
using Minigames.DivingForPictures;
using Bootstrap;
using Core;
namespace Utility
{
@@ -12,23 +14,11 @@ namespace Utility
{
private static SceneOrientationEnforcer _instance;
private static bool _isQuitting;
public static SceneOrientationEnforcer Instance
{
get
{
if (_instance == null && Application.isPlaying && !_isQuitting)
{
_instance = FindAnyObjectByType<SceneOrientationEnforcer>();
if (_instance == null)
{
var go = new GameObject("SceneOrientationEnforcer");
_instance = go.AddComponent<SceneOrientationEnforcer>();
// DontDestroyOnLoad(go); // Uncomment if you want persistence
}
}
return _instance;
}
}
/// <summary>
/// Singleton instance of the SceneOrientationEnforcer. No longer creates an instance if one doesn't exist.
/// </summary>
public static SceneOrientationEnforcer Instance => _instance;
[Header("Config")]
public SceneOrientationConfig orientationConfig;
@@ -48,10 +38,16 @@ namespace Utility
{
_instance = this;
OnOrientationCorrect += HandleOrientationCorrect;
// Register for post-boot initialization
BootCompletionService.RegisterInitAction(InitializePostBoot);
}
void Start()
private void InitializePostBoot()
{
// Initialize any dependencies that require other services to be ready
Logging.Debug("[SceneOrientationEnforcer] Post-boot initialization complete");
// Subscribe to sceneLoaded event
SceneManager.sceneLoaded += OnSceneLoaded;
// Manually invoke for the first scene (unless it's Main Menu)
@@ -74,6 +70,8 @@ namespace Utility
return Screen.orientation == ScreenOrientation.Portrait || Screen.orientation == ScreenOrientation.PortraitUpsideDown;
case ScreenOrientationRequirement.Landscape:
return Screen.orientation == ScreenOrientation.LandscapeLeft || Screen.orientation == ScreenOrientation.LandscapeRight;
case ScreenOrientationRequirement.NotApplicable:
return true;
default:
return true;
}
@@ -98,7 +96,7 @@ namespace Utility
_isDivingMinigame = IsDivingMinigameScene(scene);
_requiredOrientation = orientationConfig != null ? orientationConfig.GetRequirementForScene(scene.name) : ScreenOrientationRequirement.Portrait;
_requiredOrientation = orientationConfig != null ? orientationConfig.GetRequirementForScene(scene.name) : ScreenOrientationRequirement.NotApplicable;
_orientationCorrect = IsOrientationCorrect();
if (!_orientationCorrect)
@@ -186,7 +184,7 @@ namespace Utility
_orientationCheckCoroutine = null;
}
InputManager.Instance.SetInputMode(InputMode.Game);
InputManager.Instance.SetInputMode(InputMode.GameAndUI);
}
private void CleanupPromptAndCoroutine()

View File

@@ -24,7 +24,7 @@ namespace AppleHills.Core.Settings
if (_instance == null && Application.isPlaying)
{
_instance = FindFirstObjectByType<DeveloperSettingsProvider>();
if (_instance == null)
{
GameObject go = new GameObject("DeveloperSettingsProvider");
@@ -33,7 +33,7 @@ namespace AppleHills.Core.Settings
DontDestroyOnLoad(go);
}
}
return _instance;
}
}