Меню красивое

This commit is contained in:
ThomasCharester committed 2025-11-22 01:24:33 +03:00
1 parent 855108d88b
commit efad72b4d9
31 files changed
+30008 -1282

No files matched your search

@@ -27,43 +27,65 @@ namespace Code.App.AppStates
Context.UIService.LoadingScreen.Show();
Context.CameraStateMachine.SwitchState(CameraMode.UltraStatic);
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
WaitForSceneToLoad();
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
}
private CinematicDoorOpening _damnDoor = new();
private async UniTaskVoid WaitForSceneToLoad()
{
await UniTask.WhenAll(
Context.SceneLoaderService.LoadSceneAsyncAwaitable((int)SceneIds.MainMenu),
Context.UIService.AsyncSwitchPanelTo(UIPanel.MainMenu),
Context.AudioFactory.WarmMenuMusic()
);
Context.AudioService.TransitToSnapshot(AudioSnapshotState.Menu);
Context.AudioService.PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(MusicType.Menu);
);
var hui = ((MainMenuEnvironment)SceneManager.GetActiveScene()
InitializeAudio();
var mainMenuEnvironment = ((MainMenuEnvironment)SceneManager.GetActiveScene()
.GetSceneContainer().Resolve<CurrentSceneEnvironment>());
_damnDoor.DamnDoor = hui.damnDoor;
_damnDoor.DamnDoor.SetPhysics(false);
_damnDoor.DoorLight = hui.doorLight;
var menuPanel = (MainMenuPanel)Context.UIService.CurrentPanel;
menuPanel.startButton.button.onClick.AddListener(StartGame);
menuPanel.exitButton.button.onClick.AddListener(ExitGame);
menuPanel.CinematicDoorOpening = _damnDoor;
((UltraStaticState)Context.CameraStateMachine.CurrentBaseState).SetFollowTransform(hui.cameraPosition);
InitializeUI(mainMenuEnvironment);
InitializeCamera(mainMenuEnvironment);
InitializeInput();
Context.UIService.LoadingScreen.Hide();
}
private void InitializeCamera(MainMenuEnvironment mainMenuEnvironment)
{
((UltraStaticState)Context.CameraStateMachine.CurrentBaseState).SetFollowTransform(mainMenuEnvironment
.cameraPosition);
}
private void InitializeInput()
{
Context.InputService.EnableMap(ActionMappings.MainMenu);
}
private void InitializeAudio()
{
Context.AudioService.TransitToSnapshot(AudioSnapshotState.Menu);
Context.AudioService.PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(MusicType.Menu);
}
private void InitializeUI(MainMenuEnvironment mainMenuEnvironment)
{
var menuPanel = (MainMenuPanel)Context.UIService.CurrentPanel;
menuPanel.Initialize(mainMenuEnvironment.uiVariables,
mainMenuEnvironment.startButton,
mainMenuEnvironment.settingButton,
mainMenuEnvironment.exitButton);
menuPanel.startButton.button.onClick.AddListener(StartGame);
menuPanel.exitButton.button.onClick.AddListener(ExitGame);
mainMenuEnvironment.menuButtonsCanvas.worldCamera = Context.CameraStateMachine.Camera;
}
public override void Tick()
{
}
@@ -82,8 +104,8 @@ namespace Code.App.AppStates
public override void ExitState()
{
Context.InputService.DisableMap(ActionMappings.MainMenu);
Context.AudioService.GladlyAskToStopMusic(MusicType.Menu, callback: Context.AudioFactory.ReleaseMenuMusic);
Context.AudioService.GladlyAskToStopMusic(MusicType.Menu, callback: Context.AudioFactory.ReleaseMenuMusic);
base.ExitState();
}
}