Files
HelixJump/Assets/Scripts/LifeTimeScope/GameLifetimeScope.cs
2025-12-14 22:51:43 +05:45

37 lines
1.5 KiB
C#

using System;
using UnityEngine;
using VContainer;
using VContainer.Unity;
public class GameLifetimeScope : LifetimeScope
{
[SerializeField] private PlatformPool pool;
[SerializeField] private PlatformManager manager;
[SerializeField] private InputReaderSO inputReader;
[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;
protected override void Configure(IContainerBuilder builder)
{
builder.RegisterComponent(pool).As<IPool>();
builder.RegisterComponent(manager).As<IPlatformManager>();
builder.RegisterInstance(inputReader).As<IInputReader>();
builder.Register<ScoreService>(Lifetime.Singleton);
builder.RegisterComponent(player);
builder.RegisterComponent(audioController);
builder.Register<GameScreenController>(Lifetime.Singleton).WithParameter(gameScreenView);
builder.Register<StartScreenController>(Lifetime.Singleton).WithParameter(startScreenView);
builder.Register<DeathScreenController>(Lifetime.Singleton).WithParameter(deathScreenView);
builder.Register<PauseScreenController>(Lifetime.Singleton).WithParameter(pauseScreenView);
builder.RegisterEntryPoint<GameFlowController>(Lifetime.Singleton);
}
}