Files
A-Fairytale-Gone-Bad-Briar-…/Assets/Scripts/Game/Scopes/GameLifetimeScope.cs

96 lines
3.9 KiB
C#

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<EventCoordinator>().AsSelf();
builder.RegisterEntryPoint<GameBootstrapper>();
builder.Register<AddressableManager>(Lifetime.Singleton);
builder.Register<AudioManager>(Lifetime.Singleton);
builder.Register<DestructionService>(Lifetime.Singleton);
builder.Register<GameService>(Lifetime.Singleton);
builder.Register<HintManager>(Lifetime.Singleton);
builder.Register<InteractManager>(Lifetime.Singleton);
builder.Register<LevelManager>(Lifetime.Singleton);
builder.Register<PlayerManager>(Lifetime.Singleton);
builder.Register<PuzzleService>(Lifetime.Singleton);
builder.Register<SaveManager>(Lifetime.Singleton);
builder.Register<SettingsService>(Lifetime.Singleton);
builder.Register<SteamManager>(Lifetime.Singleton);
builder.Register<TutorialService>(Lifetime.Singleton);
builder.Register<UIManager>(Lifetime.Singleton);
}
}
}