Files
KingshearthLegacy/Source/KingshearthLegacy/UI/Menu/InGameMenuWidget.h
T
Dolobarsch b55eda5e51 Neues Menüsystem implementiert
Ein flexibles Menüsystem wurde hinzugefügt, das ein Hauptmenü und ein In-Game-Menü umfasst. Das Hauptmenü bietet Optionen wie "Neues Spiel starten", "Optionen" und "Credits". Das In-Game-Menü ermöglicht Pausenfunktionen wie "Fortsetzen", "Optionen" und "Zum Desktop beenden".

Neue Klassen wurden eingeführt, darunter `MenuManagerSubsystem` zur Verwaltung von Menübildschirmen, `MenuScreenWidget` als Basisklasse für Menüs sowie spezifische Widgets wie `MainMenuWidget`, `InGameMenuWidget` und `OptionsMenuWidget`.

Zusätzlich wurden stilisierte Schaltflächen (`MenuButtonWidget`) und ein neuer `MenuPlayerController` für menübasierte Levels implementiert. Änderungen an `KingshearthLegacyPlayerController` ermöglichen die Steuerung des In-Game-Menüs. Binäre Assets für Menüs und UI wurden hinzugefügt.
2026-09-05 00:33:04 +02:00

58 lines
1.6 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "UI/Menu/MenuScreenWidget.h"
#include "InGameMenuWidget.generated.h"
class UMenuButtonWidget;
class UWorld;
/**
* Pause screen opened from gameplay (see AKingshearthLegacyPlayerController::ToggleInGameMenu).
* Pauses the game while open; NotifyScreenClosing unpauses however the screen ends up closed
* (Continue, an options sub-screen going back to it, or the toggle input closing it directly).
*/
UCLASS(abstract)
class UInGameMenuWidget : public UMenuScreenWidget
{
GENERATED_BODY()
public:
/** Screen pushed by the Options button. */
UPROPERTY(EditDefaultsOnly, Category = "Menu|Screens")
TSubclassOf<UMenuScreenWidget> OptionsScreenClass;
/** Level opened by Quit to Menu. */
UPROPERTY(EditDefaultsOnly, Category = "Menu|Quit")
TSoftObjectPtr<UWorld> MainMenuLevel;
virtual void NotifyScreenClosing() override;
protected:
virtual void NativeConstruct() override;
UFUNCTION(BlueprintCallable, Category = "Menu")
void Continue();
UFUNCTION(BlueprintCallable, Category = "Menu")
void OpenOptions();
UFUNCTION(BlueprintCallable, Category = "Menu")
void QuitToMenu();
UFUNCTION(BlueprintCallable, Category = "Menu")
void QuitToDesktop();
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true))
TObjectPtr<UMenuButtonWidget> ContinueButton;
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true))
TObjectPtr<UMenuButtonWidget> OptionsButton;
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true))
TObjectPtr<UMenuButtonWidget> QuitToMenuButton;
UPROPERTY(BlueprintReadOnly, meta = (BindWidgetOptional = true))
TObjectPtr<UMenuButtonWidget> QuitToDesktopButton;
};