96 lines
3.9 KiB
C#
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);
|
|
}
|
|
}
|
|
} |