41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using System;
|
|
using Code.Infrastructure.SceneLoader;
|
|
using Cysharp.Threading.Tasks;
|
|
using R3;
|
|
using Reflex.Core;
|
|
using UnityEngine;
|
|
|
|
namespace Code.OfficeGame.BattleMode
|
|
{
|
|
public class BattleStateSceneInstaller: MonoBehaviour, IInstaller
|
|
{
|
|
private IDisposable _onContainerBuildDisposable;
|
|
|
|
public void InstallBindings(ContainerBuilder containerBuilder)
|
|
{
|
|
_onContainerBuildDisposable = Observable
|
|
.FromEvent<Container>(
|
|
h => containerBuilder.OnContainerBuilt += h,
|
|
h => containerBuilder.OnContainerBuilt -= h)
|
|
.Subscribe(x => OnContainerBuilt(x).Forget());
|
|
}
|
|
|
|
private ISceneContainerManager _sceneContainerManager;
|
|
private async UniTaskVoid OnContainerBuilt(Container container)
|
|
{
|
|
await UniTask.Yield();
|
|
|
|
_onContainerBuildDisposable.Dispose();
|
|
|
|
Debug.Log("Containment");
|
|
|
|
_sceneContainerManager = container.Resolve<ISceneContainerManager>();
|
|
_sceneContainerManager.ScenesContainers.Add(SceneId.Battle, container);
|
|
}
|
|
|
|
public void OnDestroy(){
|
|
Debug.Log("Disposement");
|
|
_sceneContainerManager.ScenesContainers.Remove(SceneId.Battle);
|
|
}
|
|
}
|
|
} |