using QuizPleaseTest.Boot.Flow; using QuizPleaseTest.Boot.Settings; using QuizPleaseTest.Boot.States; using QuizPleaseTest.Boot.UI; using QuizPleaseTest.Common.Services; using QuizPleaseTest.Common.StateMachine; using UnityEngine; using VContainer; using VContainer.Unity; namespace QuizPleaseTest.Boot.Composition { public class GameLifetimeScope : LifetimeScope { [field: SerializeField] public BootSettings BootSettings { get; private set; } [field: SerializeField] public SplashUIView SplashView { get; private set; } [field: SerializeField] public LoadingUIView LoadingView { get; private set; } [field: SerializeField] public MenuUIView MenuView { get; private set; } protected override void Configure(IContainerBuilder builder) { builder.RegisterInstance(BootSettings); builder.RegisterComponent(SplashView); builder.RegisterComponent(LoadingView); builder.RegisterComponent(MenuView); builder.Register(Lifetime.Singleton) .As() .As(); builder.Register(Lifetime.Singleton) .As>() .AsSelf(); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.Register(Lifetime.Singleton); builder.RegisterEntryPoint(); } } }