37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
using Code.App.Loading;
|
|
using Code.Gameplay.Orders.Order;
|
|
using Code.Gameplay.Player;
|
|
using Code.Scenes;
|
|
using Code.Scenes.SceneEnvironments;
|
|
using Reflex.Core;
|
|
using UnityEngine;
|
|
using IPlayerScore = Code.Gameplay.Player.IPlayerScore;
|
|
|
|
namespace Code.App.SceneInstallers
|
|
{
|
|
public class GameplaySceneInstaller : MonoBehaviour, IInstaller
|
|
{
|
|
[SerializeField] private GameplaySceneEnvironment _gameplaySceneEnvironment;
|
|
|
|
public void InstallBindings(ContainerBuilder containerBuilder)
|
|
{
|
|
containerBuilder.AddScoped(typeof(GameplaySceneEnvironment), typeof(CurrentSceneEnvironment));
|
|
containerBuilder.AddScoped(typeof(PlayerScore), typeof(IPlayerScore));
|
|
containerBuilder.AddScoped(typeof(OrderService), typeof(IOrderService));
|
|
|
|
containerBuilder.OnContainerBuilt += Initialize;
|
|
}
|
|
|
|
private void Initialize(Container container)
|
|
{
|
|
ILoadingManager loadingManager = container.Resolve<ILoadingManager>();
|
|
|
|
GameplaySceneEnvironment env = (GameplaySceneEnvironment)container.Resolve<CurrentSceneEnvironment>();
|
|
|
|
env.TransitVariables(_gameplaySceneEnvironment);
|
|
|
|
loadingManager
|
|
.UnregisterLoading(LoadingWork.LoadScene);
|
|
}
|
|
}
|
|
} |