using BriarQueen.Framework.Assets; using BriarQueen.Framework.Coordinators.Events; using BriarQueen.Framework.Managers; using BriarQueen.Framework.Managers.Achievements.Steam; using BriarQueen.Framework.Managers.Audio; using BriarQueen.Framework.Managers.Hints; using BriarQueen.Framework.Managers.Input; using BriarQueen.Framework.Managers.Interaction; using BriarQueen.Framework.Managers.IO; using BriarQueen.Framework.Managers.Levels; using BriarQueen.Framework.Managers.Player; using BriarQueen.Framework.Managers.UI; using BriarQueen.Framework.Registries; using BriarQueen.Framework.Services.Destruction; using BriarQueen.Framework.Services.Game; using BriarQueen.Framework.Services.Puzzles; using BriarQueen.Framework.Services.Settings; using BriarQueen.Framework.Services.Tutorials; using BriarQueen.Game.Cinematics; using BriarQueen.Game.Misc; using UnityEngine; using UnityEngine.Audio; using UnityEngine.EventSystems; using UnityEngine.InputSystem.UI; using VContainer; using VContainer.Unity; namespace BriarQueen.Game.Scopes { public class GameLifetimeScope : LifetimeScope { [Header("Components")] [SerializeField] private AudioMixer _audioMixer; [SerializeField] private SplashScreens _splashScreens; [SerializeField] private UICursorService _cursorService; [SerializeField] private InputSystemUIInputModule _uiInputModule; [SerializeField] private EventSystem _eventSystem; [Header("Registries")] [SerializeField] private ItemRegistry _itemRegistry; [SerializeField] private AssetRegistry _assetRegistry; [SerializeField] private AudioRegistry _audioRegistry; [SerializeField] private AchievementRegistry _achievementRegistry; [SerializeField] private CodexRegistry _codexRegistry; [Header("Systems")] [SerializeField] private InputManager _inputManager; [SerializeField] private DebugManager _debugManager; protected override void Configure(IContainerBuilder builder) { if (_inputManager != null) builder.RegisterComponent(_inputManager); if (_debugManager != null) builder.RegisterComponent(_debugManager); if (_splashScreens != null) builder.RegisterComponent(_splashScreens); if (_cursorService != null) builder.RegisterComponent(_cursorService); if (_uiInputModule != null) builder.RegisterComponent(_uiInputModule); if (_eventSystem != null) builder.RegisterComponent(_eventSystem); builder.RegisterInstance(_audioMixer); builder.RegisterInstance(_itemRegistry); builder.RegisterInstance(_assetRegistry); builder.RegisterInstance(_audioRegistry); builder.RegisterInstance(_achievementRegistry); builder.RegisterInstance(_codexRegistry); builder.RegisterEntryPoint().AsSelf(); builder.RegisterEntryPoint(); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); } } }