Теперь камера - это стейт-машина

This commit is contained in:
ThomasCharester authored and Loša Ceviel committed 2025-10-28 22:11:46 +03:00
1 parent db541fed8a
commit 4549617275
31 files changed
+1145 -210

No files matched your search

@@ -1,4 +1,6 @@
using Code.App.StateMachine;
using Code.Gameplay.Camera;
using Code.Gameplay.Player;
using Code.Input;
using Code.Scenes;
using Code.StateMachine;
@@ -16,8 +18,13 @@ namespace Code.App.AppStates
public override void EnterState()
{
Context.SceneLoaderService.LoadScene((int)SceneIds.Gameplay, SceneLoaded);
Context.SceneLoaderService.LoadScene((int)SceneIds.MovementDev, SceneLoaded);
Context.InputService.EnableMap(ActionMappings.Gameplay);
Context.UIService.LoadingScreen.Show();
Context.UIService.SwitchPanelTo(UIPanel.Gameplay);
Context.CameraStateMachine.SwitchState(CameraMode.FirstPerson);
}
private void SceneLoaded()
@@ -1,4 +1,5 @@
using Code.App.StateMachine;
using Code.Gameplay.Camera;
using Code.Input;
using Code.Scenes;
using Code.StateMachine;
@@ -14,11 +15,18 @@ namespace Code.App.AppStates
{
Context.SceneLoaderService.LoadScene((int)SceneIds.MainMenu, SceneLoaded);
Context.InputService.EnableMap(ActionMappings.MainMenu);
Context.UIService.LoadingScreen.Show();
Context.UIService.SwitchPanelTo(UIPanel.MainMenu);
((MainMenuPanel)Context.UIService.CurrentPanel).startButton.onClick.AddListener(StartGame);
((MainMenuPanel)Context.UIService.CurrentPanel).exitButton.onClick.AddListener(ExitGame);
Context.CameraStateMachine.SwitchState(CameraMode.Static);
}
private void SceneLoaded()
{
//Context.UIService.LoadingScreen.Hide();
Context.UIService.LoadingScreen.Hide();
base.EnterState();
}
@@ -1,5 +1,6 @@
using Code.App.StateMachine;
using Code.Configs;
using Code.Gameplay.Camera;
using Code.Gameplay.Character.Camera;
using Code.Input;
using Code.Scenes;
@@ -32,9 +33,13 @@ namespace Code.App
private void InitializeCamera(ContainerBuilder containerBuilder, IStaticDataService staticDataService)
{
CameraService cameraService = Instantiate(staticDataService.CameraConfig.cameraPrefab);
containerBuilder.AddSingleton(cameraService);
DontDestroyOnLoad(cameraService);
// CameraService cameraService = Instantiate(staticDataService.CameraConfig.cameraPrefab);
// containerBuilder.AddSingleton(cameraService);
// DontDestroyOnLoad(cameraService);
Camera camera = Instantiate(staticDataService.CameraConfig.cameraPrefab2);
DontDestroyOnLoad(camera);
containerBuilder.AddSingleton(camera);
}
private void InstallInfrastructureUnit(ContainerBuilder containerBuilder, IStaticDataService staticDataService)
@@ -46,6 +51,7 @@ namespace Code.App
containerBuilder.AddSingleton(infrastructureUnit.GetComponent<ICoroutineRunner>(),
typeof(ICoroutineRunner));
containerBuilder.AddSingleton(infrastructureUnit.AddComponent<AppStateMachine>());
containerBuilder.AddSingleton(infrastructureUnit.AddComponent<CameraStateMachine>());
}
private void InstallStaticData(ContainerBuilder containerBuilder, out IStaticDataService staticDataService)
@@ -67,6 +73,11 @@ namespace Code.App
AttributeInjector.Inject(appStateMachine.StateMachineContext, container);
CameraStateMachine cameraStateMachine = container.Resolve<CameraStateMachine>();
AttributeInjector.Inject(cameraStateMachine.StateMachineContext, container);
cameraStateMachine.Initialize();
// TODO: поменяно для теста
appStateMachine
.SwitchState(AppState.MovementDev);
@@ -1,3 +1,4 @@
using Code.Gameplay.Camera;
using Code.Input;
using Code.Scenes;
using Reflex.Attributes;
@@ -8,5 +9,8 @@ namespace Code.App.StateMachine
{
[Inject] public ISceneLoaderService SceneLoaderService;
[Inject] public IInputService InputService;
[Inject] public IUIService UIService;
[Inject] public AppStateMachine StateMachine;
[Inject] public CameraStateMachine CameraStateMachine;
}
}