UI service frame

This commit is contained in:
ThomasCharester committed 2026-01-21 11:45:04 +03:00
1 parent 12a27f85c5
commit e2d0974b3c
45 files changed
+1138 -927

No files matched your search

@@ -2,7 +2,8 @@ using Code.Infrastructure.Camera;
using Code.Infrastructure.Configs;
using Code.Infrastructure.Input;
using Code.Infrastructure.Loadings;
using Code.Infrastructure.SceneLoader;
using Code.Infrastructure.SceneLoader;
using Code.Infrastructure.UI;
using Reflex.Core;
using Reflex.Enums;
using UnityEngine;
@@ -10,7 +11,12 @@ using Resolution = Reflex.Enums.Resolution;
namespace Code.Infrastructure.App
{
public class PapaInstaller : MonoBehaviour, IInstaller, ISceneConfigsLoadedHandle, IInputServiceInitializedHandle, ICameraInitializedHandle
public class PapaInstaller : MonoBehaviour, IInstaller,
ISceneConfigsLoadedHandle,
IInputServiceInitializedHandle,
ICameraInitializedHandle,
IUIInitializedHandle,
IUIPanelLoaded
{
public void InstallBindings(ContainerBuilder containerBuilder)
{
@@ -27,7 +33,16 @@ namespace Code.Infrastructure.App
containerBuilder.RegisterType(typeof(CameraFactory), Lifetime.Singleton, Resolution.Lazy);
containerBuilder.RegisterType(typeof(CameraStateMachine), Lifetime.Singleton, Resolution.Lazy);
containerBuilder.RegisterType(typeof(CameraStateMachineContext), Lifetime.Singleton, Resolution.Lazy);
containerBuilder.RegisterType(typeof(UIFactory), new []{typeof(IUIFactory)}, Lifetime.Singleton, Resolution.Eager);
containerBuilder.RegisterType(typeof(UIService), new []{typeof(IUIService)}, Lifetime.Singleton, Resolution.Eager);
// UIFactory
// Logo
// Scene configs
// Input service
// Camera
_initialLoading = new Loading(5, () => EssentialLoadEnded(_thatRightContainer));
}
private Loading _initialLoading;
@@ -40,13 +55,12 @@ namespace Code.Infrastructure.App
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);
container.Resolve<AppStateMachine>().SwitchState(AppStates.Bootstrap).AllowStateTransition(AppStates.Gameplay);
}
public void SceneConfigsLoaded()
@@ -64,7 +78,33 @@ namespace Code.Infrastructure.App
_thatRightContainer.Resolve<CameraStateMachineContext>().cameraLoadedData = data;
_thatRightContainer.Resolve<CameraStateMachine>().SwitchState(CameraMode.None)
.AllowStateTransition(CameraMode.FirstPerson);
_initialLoading.DoProgress();
}
public void UIInitialized()
{
_initialLoading.DoProgress();
_thatRightContainer.Resolve<IUIService>().TryLoadPanel(UIPanelType.Logo);
_thatRightContainer.Resolve<IUIService>().TryLoadPanel(UIPanelType.Loading);
}
public void UILoaded(UIPanelType uiPanelType)
{
if (_initialLoading.Completed) return;
switch (uiPanelType)
{
case UIPanelType.Logo:
_thatRightContainer.Resolve<IUIService>().OpenPanel(UIPanelType.Logo);
_initialLoading.DoProgress();
break;
case UIPanelType.Loading:
// _thatRightContainer.Resolve<IUIService>().OpenPanel(UIPanelType.Logo);
break;
}
}
}
}
@@ -31,7 +31,7 @@ namespace Code.Infrastructure.App.States
public void OnGameplaySceneLoaded()
{
Debug.Log("Spermageddon");
}
}
}
@@ -25,7 +25,7 @@ namespace Code.Infrastructure.App.States
public void OnGameplaySceneLoaded()
{
Debug.Log("Spermageddon");
}
}
}