(Feat) Add footsteps

This commit is contained in:
2026-08-11 15:23:10 +02:00
parent e8e128457a
commit 176beab9fc
4776 changed files with 18806 additions and 121 deletions
@@ -378,7 +378,7 @@ void AFpsPlayerController::SetupInputComponent()
if (PauseAction)
{
Input->BindAction(PauseAction, ETriggerEvent::Started, this, &AFpsPlayerController::HandlePauseInput);
Input->BindAction(PauseAction, ETriggerEvent::Started, this, &AFpsPlayerController::HandleEscapeInput);
}
else
{
@@ -956,7 +956,7 @@ void AFpsPlayerController::CheckStorageDistance()
}
}
void AFpsPlayerController::HandlePauseInput()
void AFpsPlayerController::HandleEscapeInput()
{
// La boite a le focus et consomme deja Echap elle-meme. Si elle l'a perdu,
// on l'ignore quand meme : repondre ici refermerait le menu en laissant la
@@ -1013,7 +1013,12 @@ void AFpsPlayerController::OpenPauseMenu()
}
bPauseMenuOpen = true;
PauseMenu->SetVisibility(ESlateVisibility::Visible);
// Open() et pas un simple SetVisibility : le menu prend AUSSI le focus
// clavier. Sans lui, Echap ne reviendrait plus des le premier clic sur un
// bouton -- un UButton prend le focus, et un widget focalise coupe la route
// des touches vers Enhanced Input.
PauseMenu->Open();
// AUCUN SetPause : en coop la pause est impossible par nature. Cote client
// l'appel est ignore -- la pause appartient a l'autorite -- et cote hote il
@@ -1052,9 +1057,11 @@ void AFpsPlayerController::ResumeGame()
if (PauseMenu)
{
PauseMenu->SetVisibility(ESlateVisibility::Collapsed);
PauseMenu->Close();
}
// FInputModeGameOnly repose le focus clavier sur le viewport : c'est ce qui
// rend leurs touches au pawn et au controller apres le passage du menu.
SetUiInputMode(false);
}
@@ -1197,7 +1204,7 @@ void AFpsPlayerController::OpenSettings()
// on pourrait cliquer Reprendre a travers l'ecran de reglages.
if (PauseMenu)
{
PauseMenu->SetVisibility(ESlateVisibility::HitTestInvisible);
PauseMenu->SetInteractive(false);
}
}
@@ -1210,9 +1217,12 @@ void AFpsPlayerController::HandleSettingsCloseRequested()
SettingsMenu->Close();
}
// SetInteractive(true) reprend le focus clavier, que l'ecran de reglages
// avait pris pour lui et ne rend a personne en se fermant. L'oublier laisse
// le menu de pause affiche mais sourd a Echap.
if (PauseMenu)
{
PauseMenu->SetVisibility(ESlateVisibility::Visible);
PauseMenu->SetInteractive(true);
}
}
@@ -1260,7 +1270,7 @@ void AFpsPlayerController::RequestQuitToMainMenu()
// pourrait cliquer Reprendre alors que la question est encore posee.
if (PauseMenu)
{
PauseMenu->SetVisibility(ESlateVisibility::HitTestInvisible);
PauseMenu->SetInteractive(false);
}
}
@@ -1356,7 +1366,7 @@ void AFpsPlayerController::BeginQuitToMainMenu()
if (PauseMenu)
{
PauseMenu->SetVisibility(ESlateVisibility::Collapsed);
PauseMenu->Close();
}
// L'ecran d'inventaire ou de coffre resterait affiche par-dessus le noir,
@@ -1378,9 +1388,11 @@ void AFpsPlayerController::HandleQuitToMenuCancelled()
QuitToMenuDialog->Close();
}
// Meme raison qu'a la fermeture des reglages : la boite avait le focus
// clavier, on le reprend en redevenant la couche active.
if (PauseMenu)
{
PauseMenu->SetVisibility(ESlateVisibility::Visible);
PauseMenu->SetInteractive(true);
}
}