В инфраструктуре начался сущий кошмар
This commit is contained in:
1 parent
346dc97fef
commit
e67fea2051
51 files changed
+659
-140
No files matched your search
@@ -4,26 +4,35 @@ using Code.Gameplay.Camera;
|
||||
using Code.Gameplay.Player;
|
||||
using Code.Input;
|
||||
using Code.Scenes;
|
||||
using Code.Scenes.SceneEnvironments;
|
||||
using Code.StateMachine;
|
||||
using Code.UI;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Reflex.Extensions;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.App.AppStates
|
||||
{
|
||||
public class GameplayState : BaseState<AppStateMachineContext>
|
||||
{
|
||||
// DEBUG
|
||||
private Transform _testSFXTransform;
|
||||
// DEBUG
|
||||
|
||||
private PlayerHealth _playerHealth;
|
||||
private PlayerMoney _playerMoney;
|
||||
|
||||
private bool _uiLoaded, _sceneLoaded, _onGameplayMusicLoaded, _onActionMusicLoaded;
|
||||
|
||||
private bool _uiLoaded, _sceneLoaded, _onGameplayMusicLoaded, _onSFXLoaded;
|
||||
|
||||
public GameplayState(AppStateMachineContext context) : base(context)
|
||||
{
|
||||
}
|
||||
|
||||
public override void EnterState()
|
||||
{
|
||||
_uiLoaded = _sceneLoaded = _onActionMusicLoaded = _onGameplayMusicLoaded = false;
|
||||
_uiLoaded = _sceneLoaded = _onGameplayMusicLoaded = _onSFXLoaded = false;
|
||||
|
||||
Context.UIService.LoadingScreen.Show();
|
||||
|
||||
@@ -32,52 +41,101 @@ namespace Code.App.AppStates
|
||||
|
||||
_playerHealth.OnDeath += EndGame;
|
||||
|
||||
Context.SceneLoaderService.LoadSceneAsync((int)SceneIds.MovementDev, callBack: OnSceneLoaded); // TODO Фабрика игрока Nada
|
||||
// TODO
|
||||
// Context.SceneLoaderService.LoadSceneAsync((int)SceneIds.MovementDev, callBack: OnSceneLoaded); // TODO Фабрика игрока Nada
|
||||
|
||||
Context.UIService.SwitchPanelTo(UIPanel.Gameplay, callback: PostUILoaded);
|
||||
// Context.UIService.SwitchPanelTo(UIPanel.Gameplay, callback: PostUILoaded);
|
||||
|
||||
Context.AudioFactory.WarmGameplayMusic(OnGameplayMusicLoaded);
|
||||
// Context.AudioFactory.WarmGameplayMusic(OnGameplayMusicLoaded);
|
||||
// Context.AudioFactory.WarmSFX(OnSFXLoaded);
|
||||
// TODO
|
||||
Context.AudioService.TransitToSnapshot(AudioSnapshotState.Peaceful);
|
||||
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.GiveHealth, GiveHealth);
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.GiveMoney, GiveMoney);
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.LooseHealth, LooseHealth);
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.LooseMoney, LooseMoney);
|
||||
}
|
||||
|
||||
private void OnGameplayMusicLoaded()
|
||||
{
|
||||
_onGameplayMusicLoaded = true;
|
||||
|
||||
// Context.AudioService.();
|
||||
|
||||
CheckIfLoaded();
|
||||
}
|
||||
private void OnSceneLoaded()
|
||||
{
|
||||
_sceneLoaded = true;
|
||||
CheckIfLoaded();
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug1, GiveHealth);
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug3, GiveMoney);
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug2, LooseHealth);
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug4, LooseMoney);
|
||||
Context.InputService.DebugBindAction((int)ActionMappings.Debug, (int)DebugActions.Debug5, PlayDebugSFX);
|
||||
|
||||
WaitForSceneToLoad();
|
||||
}
|
||||
|
||||
private void PostUILoaded()
|
||||
private async UniTaskVoid WaitForSceneToLoad()
|
||||
{
|
||||
await UniTask.WhenAll(
|
||||
Context.SceneLoaderService.LoadSceneAsyncAwaitable((int)SceneIds.MovementDev),
|
||||
Context.UIService.AsyncSwitchPanelTo(UIPanel.Gameplay),
|
||||
Context.AudioFactory.WarmGameplayMusic(),
|
||||
Context.AudioFactory.WarmSFX()
|
||||
);
|
||||
|
||||
Context.AudioService.PlayRandomPeacefulMusicUntilHumanityWillBeDestroyedForTheySins();
|
||||
Context.AudioService.PlayRandomActionMusicUntilHumanityWillBeDestroyedForTheySins();
|
||||
|
||||
var sceneEnvironment = ((GameplaySceneEnvironment)SceneManager.GetActiveScene()
|
||||
.GetSceneContainer().Resolve<CurrentSceneEnvironment>());
|
||||
|
||||
_testSFXTransform = sceneEnvironment.debugSfxTarget;
|
||||
|
||||
((GameplayPanel)Context.UIService.CurrentPanel).Initialize(_playerMoney, _playerHealth);
|
||||
_uiLoaded = true;
|
||||
CheckIfLoaded();
|
||||
}
|
||||
|
||||
private void CheckIfLoaded()
|
||||
{
|
||||
if(!_uiLoaded || !_sceneLoaded) return;
|
||||
|
||||
Context.UIService.LoadingScreen.Hide();
|
||||
|
||||
Context.CameraStateMachine.SwitchState(CameraMode.FirstPerson);
|
||||
Context.InputService.EnableMap(ActionMappings.Gameplay);
|
||||
|
||||
Context.UIService.LoadingScreen.Hide();
|
||||
}
|
||||
|
||||
// private void OnGameplayMusicLoaded()
|
||||
// {
|
||||
// _onGameplayMusicLoaded = true;
|
||||
//
|
||||
// Context.AudioService.PlayRandomPeacefulMusicUntilHumanityWillBeDestroyedForTheySins();
|
||||
// Context.AudioService.PlayRandomActionMusicUntilHumanityWillBeDestroyedForTheySins();
|
||||
//
|
||||
// CheckIfLoaded();
|
||||
// }
|
||||
// private void OnSFXLoaded()
|
||||
// {
|
||||
// _onSFXLoaded = true;
|
||||
//
|
||||
// CheckIfLoaded();
|
||||
// }
|
||||
// private void OnSceneLoaded()
|
||||
// {
|
||||
// _sceneLoaded = true;
|
||||
//
|
||||
// var sceneEnvironment = ((GameplaySceneEnvironment)SceneManager.GetActiveScene()
|
||||
// .GetSceneContainer().Resolve<CurrentSceneEnvironment>());
|
||||
//
|
||||
// _testSFXTransform = sceneEnvironment.debugSfxTarget;
|
||||
//
|
||||
// CheckIfLoaded();
|
||||
// }
|
||||
//
|
||||
// private void PostUILoaded()
|
||||
// {
|
||||
// ((GameplayPanel)Context.UIService.CurrentPanel).Initialize(_playerMoney, _playerHealth);
|
||||
// _uiLoaded = true;
|
||||
// CheckIfLoaded();
|
||||
// }
|
||||
//
|
||||
// private void CheckIfLoaded()
|
||||
// {
|
||||
// if(!_uiLoaded || !_sceneLoaded || !_onGameplayMusicLoaded || !_onSFXLoaded) return;
|
||||
//
|
||||
// Context.UIService.LoadingScreen.Hide();
|
||||
//
|
||||
// Context.CameraStateMachine.SwitchState(CameraMode.FirstPerson);
|
||||
// Context.InputService.EnableMap(ActionMappings.Gameplay);
|
||||
// }
|
||||
|
||||
|
||||
// Debug
|
||||
// DEBUG
|
||||
|
||||
private void PlayDebugSFX(InputAction.CallbackContext context)
|
||||
{
|
||||
Context.AudioService.PlaySFX(SFXSounds.Crowbar, _testSFXTransform.position);
|
||||
}
|
||||
private void GiveHealth(InputAction.CallbackContext context)
|
||||
{
|
||||
_playerHealth.GetDamage(-1);
|
||||
@@ -99,7 +157,7 @@ namespace Code.App.AppStates
|
||||
_playerMoney.LooseMoney(100);
|
||||
((GameplayPanel)(Context.UIService.CurrentPanel)).CloseDispatcher();
|
||||
}
|
||||
|
||||
// DEBUG
|
||||
public override void Tick()
|
||||
{
|
||||
}
|
||||
@@ -116,11 +174,13 @@ namespace Code.App.AppStates
|
||||
_playerMoney = null;
|
||||
|
||||
Context.InputService.DisableMap(ActionMappings.Gameplay);
|
||||
Context.AudioService.GladlyAskToStopGameplayMusic(Context.AudioFactory.ReleaseGameplayMusic);
|
||||
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.GiveHealth, GiveHealth);
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.GiveMoney, GiveHealth);
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.LooseHealth, LooseHealth);
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.LooseMoney, LooseMoney);
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug1, GiveHealth);
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug3, GiveHealth);
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug2, LooseHealth);
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug4, LooseMoney);
|
||||
Context.InputService.DebugUnbindAction((int)ActionMappings.Debug, (int)DebugActions.Debug5, PlayDebugSFX);
|
||||
|
||||
base.ExitState();
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ using Code.Scenes;
|
||||
using Code.Scenes.SceneEnvironments;
|
||||
using Code.StateMachine;
|
||||
using Code.UI;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Reflex.Extensions;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
@@ -15,47 +16,42 @@ namespace Code.App.AppStates
|
||||
{
|
||||
public class MainMenuState : BaseState<AppStateMachineContext>
|
||||
{
|
||||
private bool _uiLoaded, _sceneLoaded, _menuMusicLoaded;
|
||||
// private bool _uiLoaded, _sceneLoaded, _menuMusicLoaded;
|
||||
public MainMenuState(AppStateMachineContext context) : base(context)
|
||||
{
|
||||
}
|
||||
|
||||
public override void EnterState()
|
||||
{
|
||||
_uiLoaded = _sceneLoaded = _menuMusicLoaded = false;
|
||||
// _uiLoaded = _sceneLoaded = _menuMusicLoaded = false;
|
||||
|
||||
Context.UIService.LoadingScreen.Show();
|
||||
|
||||
Context.SceneLoaderService.LoadSceneAsync((int)SceneIds.MainMenu, callBack: SceneLoaded);
|
||||
|
||||
Context.UIService.SwitchPanelTo(UIPanel.MainMenu, PostUILoaded);
|
||||
|
||||
Context.AudioFactory.WarmMenuMusic(MenuMusicLoaded);
|
||||
// Context.SceneLoaderService.LoadSceneAsync((int)SceneIds.MainMenu);
|
||||
//
|
||||
// Context.UIService.SwitchPanelTo(UIPanel.MainMenu, PostUILoaded);
|
||||
//
|
||||
// Context.AudioFactory.WarmMenuMusic(MenuMusicLoaded);
|
||||
|
||||
Context.CameraStateMachine.SwitchState(CameraMode.Static);
|
||||
|
||||
WaitForSceneToLoad();
|
||||
}
|
||||
|
||||
private void MenuMusicLoaded()
|
||||
private async UniTaskVoid WaitForSceneToLoad()
|
||||
{
|
||||
_menuMusicLoaded = true;
|
||||
await UniTask.WhenAll(
|
||||
Context.SceneLoaderService.LoadSceneAsyncAwaitable((int)SceneIds.MainMenu),
|
||||
Context.UIService.AsyncSwitchPanelTo(UIPanel.MainMenu),
|
||||
Context.AudioFactory.WarmMenuMusic()
|
||||
);
|
||||
|
||||
Context.AudioService.TransitToSnapshot(AudioSnapshotState.Peaceful);
|
||||
Context.AudioService.PlayRandomMenuMusicUntilHumanityWillBeDestroyedForTheySins();
|
||||
|
||||
CheckIfLoaded();
|
||||
}
|
||||
private void PostUILoaded()
|
||||
{
|
||||
|
||||
((MainMenuPanel)Context.UIService.CurrentPanel).startButton.onClick.AddListener(StartGame);
|
||||
((MainMenuPanel)Context.UIService.CurrentPanel).exitButton.onClick.AddListener(ExitGame);
|
||||
|
||||
_uiLoaded = true;
|
||||
|
||||
CheckIfLoaded();
|
||||
}
|
||||
|
||||
private void SceneLoaded()
|
||||
{
|
||||
var hui = ((MainMenuEnvironment)SceneManager.GetActiveScene()
|
||||
.GetSceneContainer().Resolve<CurrentSceneEnvironment>());
|
||||
|
||||
@@ -64,22 +60,56 @@ namespace Code.App.AppStates
|
||||
|
||||
((BaseCameraState)Context.CameraStateMachine.CurrentBaseState).SetFollowTransform(hui.cameraPosition);
|
||||
|
||||
|
||||
_sceneLoaded = true;
|
||||
|
||||
CheckIfLoaded();
|
||||
}
|
||||
|
||||
private void CheckIfLoaded()
|
||||
{
|
||||
if(!_uiLoaded || !_sceneLoaded || !_menuMusicLoaded) return;
|
||||
|
||||
Context.UIService.LoadingScreen.Hide();
|
||||
|
||||
Context.InputService.EnableMap(ActionMappings.MainMenu);
|
||||
|
||||
base.EnterState();
|
||||
}
|
||||
|
||||
// private void MenuMusicLoaded()
|
||||
// {
|
||||
// _menuMusicLoaded = true;
|
||||
//
|
||||
// Context.AudioService.TransitToSnapshot(AudioSnapshotState.Peaceful);
|
||||
// Context.AudioService.PlayRandomMenuMusicUntilHumanityWillBeDestroyedForTheySins();
|
||||
//
|
||||
// CheckIfLoaded();
|
||||
// }
|
||||
// private void PostUILoaded()
|
||||
// {
|
||||
// ((MainMenuPanel)Context.UIService.CurrentPanel).startButton.onClick.AddListener(StartGame);
|
||||
// ((MainMenuPanel)Context.UIService.CurrentPanel).exitButton.onClick.AddListener(ExitGame);
|
||||
//
|
||||
// _uiLoaded = true;
|
||||
//
|
||||
// CheckIfLoaded();
|
||||
// }
|
||||
//
|
||||
// private void SceneLoaded()
|
||||
// {
|
||||
// var hui = ((MainMenuEnvironment)SceneManager.GetActiveScene()
|
||||
// .GetSceneContainer().Resolve<CurrentSceneEnvironment>());
|
||||
//
|
||||
// ((StaticState)Context.CameraStateMachine.CurrentBaseState).LookTarget =
|
||||
// hui.cameraTarget;
|
||||
//
|
||||
// ((BaseCameraState)Context.CameraStateMachine.CurrentBaseState).SetFollowTransform(hui.cameraPosition);
|
||||
//
|
||||
//
|
||||
// _sceneLoaded = true;
|
||||
//
|
||||
// CheckIfLoaded();
|
||||
// }
|
||||
//
|
||||
// private void CheckIfLoaded()
|
||||
// {
|
||||
// if(!_uiLoaded || !_sceneLoaded || !_menuMusicLoaded) return;
|
||||
//
|
||||
// Context.UIService.LoadingScreen.Hide();
|
||||
//
|
||||
// Context.InputService.EnableMap(ActionMappings.MainMenu);
|
||||
//
|
||||
// base.EnterState();
|
||||
// }
|
||||
|
||||
public override void Tick()
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user