Files
Hasebe/Assets/Code/OfficeGame/BattleMode/BattleStateSceneInstaller.cs
T
2026-11-10 00:28:25 +03:00

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);
}
}
}