using Darkmatter.Core; using Darkmatter.Domain; using Darkmatter.Presentation; using UnityEngine; using VContainer; using VContainer.Unity; namespace Darkmatter.App { public class GameLifetimeScope : LifetimeScope { [SerializeField] private PlatformPool platformPool; [SerializeField] private LeaderBoardDataPool leaderBoardDataPool; [SerializeField] private PlayerSplashPool playerSplashPool; [SerializeField] private PlatformManager manager; [SerializeField] private InputReaderSO inputReader; [SerializeField] private GameSessionSO gameSession; [SerializeField] private Player player; [SerializeField] private AudioController audioController; //UI References [SerializeField] private GameScreenView gameScreenView; [SerializeField] private StartScreenView startScreenView; [SerializeField] private DeathScreenView deathScreenView; [SerializeField] private PauseScreenView pauseScreenView; [SerializeField] private LeaderBoardView leaderBoardView; protected override void Configure(IContainerBuilder builder) { builder.RegisterComponent(platformPool).As>(); builder.RegisterComponent(leaderBoardDataPool).As>(); builder.RegisterComponent(playerSplashPool).As>(); builder.RegisterComponent(manager).As(); builder.RegisterInstance(inputReader).As(); builder.Register(Lifetime.Singleton).As(); builder.RegisterInstance(gameSession).As(); builder.RegisterComponent(player).As(); builder.RegisterComponent(audioController).As().AsSelf(); builder.RegisterEntryPoint(Lifetime.Singleton).WithParameter(startScreenView); builder.Register(Lifetime.Singleton).WithParameter(gameScreenView).As(); builder.Register(Lifetime.Singleton).WithParameter(pauseScreenView).As(); builder.Register(Lifetime.Singleton).WithParameter(deathScreenView).As(); builder.Register(Lifetime.Singleton).WithParameter(leaderBoardView).As(); } } }