From f87ec61ddb955f1954076895936da7ba36175e9f Mon Sep 17 00:00:00 2001 From: baz Date: Thu, 9 Nov 2023 22:14:15 +0000 Subject: [PATCH] Add variables and functions to MainMenuUIWidget --- Source/Nakatomi/MainMenuUIWidget.cpp | 49 ++++++++++++++++++++++++++++ Source/Nakatomi/MainMenuUIWidget.h | 48 ++++++++++++++++++++++++++- 2 files changed, 96 insertions(+), 1 deletion(-) diff --git a/Source/Nakatomi/MainMenuUIWidget.cpp b/Source/Nakatomi/MainMenuUIWidget.cpp index 90bbc2e..0263dca 100644 --- a/Source/Nakatomi/MainMenuUIWidget.cpp +++ b/Source/Nakatomi/MainMenuUIWidget.cpp @@ -3,3 +3,52 @@ #include "MainMenuUIWidget.h" +void UMainMenuUIWidget::NativeConstruct() +{ + Super::NativeConstruct(); + + if (NewGameButton) + { + NewGameButton->OnClicked.AddUniqueDynamic(this, &UMainMenuUIWidget::NewGameButtonOnClicked); + } + + if (LoadGameButton) + { + LoadGameButton->OnClicked.AddUniqueDynamic(this, &UMainMenuUIWidget::LoadGameButtonOnClicked); + } + + if (OptionsButton) + { + OptionsButton->OnClicked.AddUniqueDynamic(this, &UMainMenuUIWidget::OptionsButtonOnClicked); + } + + if (QuitButton) + { + QuitButton->OnClicked.AddUniqueDynamic(this, &UMainMenuUIWidget::QuitButtonOnClicked); + } +} + +void UMainMenuUIWidget::NewGameButtonOnClicked() +{ + // TODO: Implement Functionality +} + +void UMainMenuUIWidget::LoadGameButtonOnClicked() +{ + // TODO: Implement Functionality +} + +void UMainMenuUIWidget::OptionsButtonOnClicked() +{ + // TODO: Implement Functionality +} + +void UMainMenuUIWidget::QuitButtonOnClicked() +{ + // TODO: We probably want to do an autosave here. + + // TODO: Add platform specific Exit requests + // This is not a bit deal for the moment as we are only building for windows + // For some reason the generic version does not work the same as FWindowsPlatformMisc + FWindowsPlatformMisc::RequestExit(false); +} diff --git a/Source/Nakatomi/MainMenuUIWidget.h b/Source/Nakatomi/MainMenuUIWidget.h index 555f9d6..5658349 100644 --- a/Source/Nakatomi/MainMenuUIWidget.h +++ b/Source/Nakatomi/MainMenuUIWidget.h @@ -3,7 +3,9 @@ #pragma once #include "CoreMinimal.h" +#include "OptionsUIWidget.h" #include "Blueprint/UserWidget.h" +#include "Components/Button.h" #include "MainMenuUIWidget.generated.h" /** @@ -13,5 +15,49 @@ UCLASS() class NAKATOMI_API UMainMenuUIWidget : public UUserWidget { GENERATED_BODY() - +public: + + UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) + UButton* NewGameButton; + + UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) + UButton* LoadGameButton; + + UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) + UButton* OptionsButton; + + UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) + UButton* QuitButton; + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) + TSubclassOf NewGameMenuWidget; + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) + TSubclassOf LoadGameMenuWidget; + + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) + TSubclassOf OptionsMenuWidget; + +private: + UUserWidget* currentNewGameWidget; + + UUserWidget* currentLoadGameWidget; + + UOptionsUIWidget* currentOptionsMenuWidget; + +public: + virtual void NativeConstruct() override; + +private: + UFUNCTION() + void NewGameButtonOnClicked(); + + UFUNCTION() + void LoadGameButtonOnClicked(); + + UFUNCTION() + void OptionsButtonOnClicked(); + + UFUNCTION() + void QuitButtonOnClicked(); };