Essentials + extra crap
Loadings Startups Movement Camera
This commit is contained in:
1 parent
662f4a1d05
commit
5f5ace1b52
734 files changed
+107323
-1713
No files matched your search
@@ -0,0 +1,69 @@
|
||||
using Code.Infrastructure.Camera;
|
||||
using Code.Infrastructure.Configs;
|
||||
using Code.Infrastructure.Input;
|
||||
using Code.Infrastructure.Loadings;
|
||||
using Code.Infrastructure.SceneLoader;
|
||||
using Reflex.Core;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Infrastructure.App
|
||||
{
|
||||
public class PapaInstaller : MonoBehaviour, IInstaller, ISceneConfigsLoadedHandle, IInputServiceInitializedHandle, ICameraInitializedHandle
|
||||
{
|
||||
public void InstallBindings(ContainerBuilder containerBuilder)
|
||||
{
|
||||
containerBuilder.AddSingleton(typeof(EventBus.EventBus));
|
||||
containerBuilder.AddSingleton(typeof(ConfigLocator), typeof(IConfigLocator));
|
||||
containerBuilder.AddSingleton(typeof(SceneLoader.SceneLoader));
|
||||
containerBuilder.AddSingleton(typeof(InputService),typeof(IInputService));
|
||||
|
||||
containerBuilder.OnContainerBuilt += Bootstrap;
|
||||
|
||||
containerBuilder.AddSingleton(typeof(AppStateMachine));
|
||||
containerBuilder.AddSingleton(typeof(AppStateMachineContext));
|
||||
|
||||
containerBuilder.AddSingleton(typeof(CameraFactory));
|
||||
containerBuilder.AddSingleton(typeof(CameraStateMachine));
|
||||
containerBuilder.AddSingleton(typeof(CameraStateMachineContext));
|
||||
|
||||
}
|
||||
|
||||
private Loading initialLoading;
|
||||
private Container _thatRightContainer;
|
||||
private void Bootstrap(Container container)
|
||||
{
|
||||
_thatRightContainer = container;
|
||||
|
||||
container.Resolve<EventBus.EventBus>().Subscribe(this);
|
||||
container.Resolve<SceneLoader.SceneLoader>();
|
||||
container.Resolve<IInputService>();
|
||||
container.Resolve<CameraFactory>().CreateCameraStateMachine(container.Resolve<CameraStateMachine>()).Forget();
|
||||
|
||||
initialLoading = new Loading(3, () => EssentialLoadEnded(container));
|
||||
}
|
||||
|
||||
private void EssentialLoadEnded(Container container)
|
||||
{
|
||||
container.Resolve<AppStateMachine>().SwitchState(AppStates.Bootstrap).AllowStateTransition(AppStates.Gameplay);
|
||||
container.Resolve<EventBus.EventBus>().Unsubscribe(this);
|
||||
}
|
||||
|
||||
public void SceneConfigsLoaded()
|
||||
{
|
||||
initialLoading.DoProgress();
|
||||
}
|
||||
|
||||
public void InputServiceInitialized()
|
||||
{
|
||||
initialLoading.DoProgress();
|
||||
}
|
||||
|
||||
public void CameraInitialized(CameraStateMachineContext.CameraLoadedData data)
|
||||
{
|
||||
_thatRightContainer.Resolve<CameraStateMachineContext>().cameraLoadedData = data;
|
||||
_thatRightContainer.Resolve<CameraStateMachine>().SwitchState(CameraMode.None)
|
||||
.AllowStateTransition(CameraMode.FirstPerson);
|
||||
initialLoading.DoProgress();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user