MainMenu base, UI port
This commit is contained in:
parent
f1e6c37431
commit
1e277a3b5b
@ -174,3 +174,6 @@ AmbientLPFParameter=
|
||||
bFMODAudioLinkEnabled=False
|
||||
Platforms=()
|
||||
|
||||
[/Script/Engine.AudioSettings]
|
||||
DefaultBaseSoundMix=/Game/Audio/SM_Mixer.SM_Mixer
|
||||
|
||||
|
BIN
Content/Audio/Classes/SC_Master.uasset
(Stored with Git LFS)
BIN
Content/Audio/Classes/SC_Master.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Audio/Music/Level2/Minigames/SW_Minigame_RythmClick.uasset
(Stored with Git LFS)
BIN
Content/Audio/Music/Level2/Minigames/SW_Minigame_RythmClick.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Blueprints/Characters/BP_Player.uasset
(Stored with Git LFS)
BIN
Content/Blueprints/Characters/BP_Player.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Input/Actions/IA_OpenMenu.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Input/Actions/IA_OpenMenu.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/Levels/Test/L_Test.umap
(Stored with Git LFS)
BIN
Content/Levels/Test/L_Test.umap
(Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/E_MainMenuButtonNames.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/E_MainMenuButtonNames.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/E_MainMenuOptionsButtonNames.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/E_MainMenuOptionsButtonNames.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/E_MainMenuPages.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/E_MainMenuPages.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenu.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenu.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuCredits.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuCredits.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptions.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptions.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptionsAudio.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptionsAudio.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptionsControls.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptionsControls.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptionsGame.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptionsGame.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptionsVideo.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/MainMenu/UI_MainMenuOptionsVideo.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Blueprints/UI_Fade.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/UI_Fade.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
Binary file not shown.
BIN
Content/UI/Blueprints/UI_Loading.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Blueprints/UI_Loading.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/Classes/UICC_Journal_Text.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/Classes/UICC_Journal_Text.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/Classes/UICC_MainMenu_PageButtonParticle.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/Classes/UICC_MainMenu_PageButtonParticle.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/Classes/UICC_MainMenu_SmallButton.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/Classes/UICC_MainMenu_SmallButton.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/Classes/UICC_MenuMain_PageButton.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/Classes/UICC_MenuMain_PageButton.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/Classes/UICC_Slider.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/Classes/UICC_Slider.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
Binary file not shown.
BIN
Content/UI/Components/UIC_MainMenu_OptionsButton.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/UIC_MainMenu_OptionsButton.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/UIC_MainMenu_OptionsCategory.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/UIC_MainMenu_OptionsCategory.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/UIC_MainMenu_OptionsSlider.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/UIC_MainMenu_OptionsSlider.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/UIC_MainMenu_PageButton.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/UIC_MainMenu_PageButton.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/UIC_MainMenu_Title.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/UIC_MainMenu_Title.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/UIC_OptionKeyselector.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/UIC_OptionKeyselector.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Content/UI/Components/UIC_Slider.uasset
(Stored with Git LFS)
Normal file
BIN
Content/UI/Components/UIC_Slider.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/UI/Textures/T_Merge.uasset
(Stored with Git LFS)
BIN
Content/UI/Textures/T_Merge.uasset
(Stored with Git LFS)
Binary file not shown.
@ -7,6 +7,7 @@
|
||||
#include "EnhancedInputSubsystems.h"
|
||||
#include "InputMappingContext.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
#include "Kismet/KismetSystemLibrary.h"
|
||||
|
||||
#include "CommonFunctions.h"
|
||||
#include "ContentLoader.h"
|
||||
@ -141,3 +142,8 @@ void UCustomGameInstanceBase::LoadGame()
|
||||
|
||||
UGameplayStatics::OpenLevel(this, saveData->level);
|
||||
}
|
||||
|
||||
void UCustomGameInstanceBase::ExitGame()
|
||||
{
|
||||
UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, true);
|
||||
}
|
||||
|
@ -31,6 +31,8 @@ public:
|
||||
void SaveGame(FName checkpointName);
|
||||
UFUNCTION(BlueprintCallable, Category = Save)
|
||||
void LoadGame();
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void ExitGame();
|
||||
|
||||
static UCustomGameInstanceBase* instance;
|
||||
|
||||
|
@ -353,10 +353,36 @@ void APlayerBase::ShowInventory()
|
||||
|
||||
void APlayerBase::ShowJournal()
|
||||
{
|
||||
if(GetWorld()->IsPaused())
|
||||
return;
|
||||
|
||||
if(auto WM = AMainGameModeBase::GetWidgetsManager())
|
||||
WM->ShowJournal();
|
||||
}
|
||||
|
||||
void APlayerBase::ShowMenu()
|
||||
{
|
||||
if(auto WM = AMainGameModeBase::GetWidgetsManager())
|
||||
{
|
||||
if(GetWorld()->IsPaused())
|
||||
{
|
||||
WM->HideMainMenu();
|
||||
playerController->SetShowMouseCursor(false);
|
||||
playerController->SetInputMode(FInputModeGameOnly{});
|
||||
UnlockPlayer(FPlayerLock::All());
|
||||
UGameplayStatics::SetGamePaused(GetWorld(), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
WM->ShowMainMenu();
|
||||
playerController->SetShowMouseCursor(true);
|
||||
playerController->SetInputMode(FInputModeGameAndUI{});
|
||||
LockPlayer(FPlayerLock::All());
|
||||
UGameplayStatics::SetGamePaused(GetWorld(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FPlayerLock FPlayerLock::All()
|
||||
{
|
||||
FPlayerLock lock;
|
||||
|
@ -94,6 +94,8 @@ protected:
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = Character)
|
||||
void ShowJournal();
|
||||
UFUNCTION(BlueprintCallable, Category = Character)
|
||||
void ShowMenu();
|
||||
|
||||
class APlayerController* playerController;
|
||||
UPROPERTY(EditAnywhere)
|
||||
|
@ -0,0 +1,5 @@
|
||||
// Oleg Petruny proprietary.
|
||||
|
||||
|
||||
#include "MainMenuButtonWidget.h"
|
||||
|
@ -0,0 +1,16 @@
|
||||
// Oleg Petruny proprietary.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Blueprint/UserWidget.h"
|
||||
|
||||
#include "MainMenuButtonWidget.generated.h"
|
||||
|
||||
UCLASS(Blueprintable, Abstract)
|
||||
class UMainMenuButtonWidget : public UUserWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
|
||||
};
|
61
Source/Lost_Edge/Private/Widgets/MainMenu/MainMenuWidget.cpp
Normal file
61
Source/Lost_Edge/Private/Widgets/MainMenu/MainMenuWidget.cpp
Normal file
@ -0,0 +1,61 @@
|
||||
// Oleg Petruny proprietary.
|
||||
|
||||
|
||||
#include "MainMenuWidget.h"
|
||||
|
||||
#include "Animation/WidgetAnimation.h"
|
||||
|
||||
#include "CustomGameInstanceBase.h"
|
||||
#include "MainGameModeBase.h"
|
||||
#include "MainMenuButtonWidget.h"
|
||||
#include "Widgets/WidgetsManager.h"
|
||||
|
||||
bool UMainMenuWidget::Initialize()
|
||||
{
|
||||
if(ButtonLoadLastSave)
|
||||
{
|
||||
if(auto GI = UCustomGameInstanceBase::GetGameInstance())
|
||||
{
|
||||
if(GI->saveData)
|
||||
{
|
||||
ButtonLoadLastSave->SetIsEnabled(true);
|
||||
ButtonLoadLastSave->SetRenderOpacity(1.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//FWidgetAnimationDynamicEvent closeFinished;
|
||||
//closeFinished.BindDynamic(this, &UMainMenuWidget::Closed);
|
||||
//BindToAnimationFinished(closeAnimation, closeFinished);
|
||||
|
||||
return UUserWidget::Initialize();
|
||||
}
|
||||
|
||||
void UMainMenuWidget::Show(bool fast)
|
||||
{
|
||||
SetVisibility(ESlateVisibility::Visible);
|
||||
//StopAnimation(closeAnimation);
|
||||
//
|
||||
//if(fast)
|
||||
// PlayAnimation(showFastAnimation, 0, 1, EUMGSequencePlayMode::Forward, 1, false);
|
||||
//else
|
||||
// PlayAnimation(showFullAnimation, 0, 1, EUMGSequencePlayMode::Forward, 1, false);
|
||||
//
|
||||
//OnMainMenuOpeningDelegate.Broadcast();
|
||||
}
|
||||
|
||||
void UMainMenuWidget::Hide()
|
||||
{
|
||||
//StopAnimation(showFastAnimation);
|
||||
//StopAnimation(showFullAnimation);
|
||||
|
||||
//PlayAnimation(closeAnimation);
|
||||
//OnMainMenuClosingDelegate.Broadcast();
|
||||
SetVisibility(ESlateVisibility::Hidden);
|
||||
}
|
||||
|
||||
void UMainMenuWidget::Closed()
|
||||
{
|
||||
SetVisibility(ESlateVisibility::Hidden);
|
||||
//OnMainMenuClosedDelegate.Broadcast();
|
||||
}
|
56
Source/Lost_Edge/Private/Widgets/MainMenu/MainMenuWidget.h
Normal file
56
Source/Lost_Edge/Private/Widgets/MainMenu/MainMenuWidget.h
Normal file
@ -0,0 +1,56 @@
|
||||
// Oleg Petruny proprietary.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Widgets/ResolutionResponsiveUserWidget.h"
|
||||
|
||||
#include "MainMenuWidget.generated.h"
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FMainMenuOpeningDelegate);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FMainMenuClosingDelegate);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FMainMenuClosedDelegate);
|
||||
|
||||
UCLASS(Blueprintable, Abstract)
|
||||
class UMainMenuWidget : public UUserWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual bool Initialize() override;
|
||||
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void Show(bool fast = true);
|
||||
UFUNCTION(BlueprintCallable)
|
||||
void Hide();
|
||||
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FMainMenuOpeningDelegate OnMainMenuOpeningDelegate;
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FMainMenuClosedDelegate OnMainMenuClosingDelegate;
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FMainMenuClosedDelegate OnMainMenuClosedDelegate;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
class UMainMenuButtonWidget* ButtonContinue;
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
class UMainMenuButtonWidget* ButtonLoadLastSave;
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
class UMainMenuButtonWidget* ButtonNewGame;
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
class UMainMenuButtonWidget* ButtonOptions;
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
class UMainMenuButtonWidget* ButtonCredits;
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
class UMainMenuButtonWidget* ButtonExit;
|
||||
|
||||
UPROPERTY(Transient, meta = (BindWidgetAnim))
|
||||
class UWidgetAnimation* showFullAnimation;
|
||||
UPROPERTY(Transient, meta = (BindWidgetAnim))
|
||||
class UWidgetAnimation* showFastAnimation;
|
||||
UPROPERTY(Transient, meta = (BindWidgetAnim))
|
||||
class UWidgetAnimation* closeAnimation;
|
||||
|
||||
protected:
|
||||
UFUNCTION()
|
||||
void Closed();
|
||||
};
|
@ -21,6 +21,7 @@
|
||||
#include "Widgets/InteractableHintWidgetManager.h"
|
||||
#include "Widgets/InventoryWidget.h"
|
||||
#include "Widgets/JournalWidget.h"
|
||||
#include "Widgets/MainMenu/MainMenuWidget.h"
|
||||
|
||||
void UWidgetsManager::Init()
|
||||
{
|
||||
@ -42,6 +43,12 @@ void UWidgetsManager::Init()
|
||||
instance->AddToViewport();
|
||||
}
|
||||
}
|
||||
if(auto instance = CreateWidget<UMainMenuWidget>(PC, mainMenuWidgetClass))
|
||||
{
|
||||
mainMenuWidget = instance;
|
||||
mainMenuWidget->SetVisibility(ESlateVisibility::Hidden);
|
||||
mainMenuWidget->AddToViewport(8);
|
||||
}
|
||||
if(auto instance = CreateWidget<UInteractableHintWidgetManager>(PC, interactableHintWidgetManagerClass))
|
||||
{
|
||||
interactableHintWidgetManager = instance;
|
||||
@ -130,6 +137,18 @@ void UWidgetsManager::UpdateWidgetsOwner()
|
||||
|
||||
|
||||
|
||||
void UWidgetsManager::ShowMainMenu(bool pause)
|
||||
{
|
||||
mainMenuWidget->Show(pause);
|
||||
}
|
||||
|
||||
void UWidgetsManager::HideMainMenu()
|
||||
{
|
||||
mainMenuWidget->Hide();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void UWidgetsManager::ShowInteractionHints(const UInteractableModificator* modificator)
|
||||
{
|
||||
if(interactableHintWidgetManager)
|
||||
|
@ -21,6 +21,9 @@ public:
|
||||
void HideWidgets();
|
||||
void UpdateWidgetsOwner();
|
||||
|
||||
void ShowMainMenu(bool pause = true);
|
||||
void HideMainMenu();
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = WidgetsManager)
|
||||
void ShowInteractionHints(const class UInteractableModificator* modificator = nullptr);
|
||||
UFUNCTION(BlueprintCallable, Category = WidgetsManager)
|
||||
@ -53,6 +56,10 @@ protected:
|
||||
TSet<TSubclassOf<class UUserWidget>> overlayWidgets; // hidden in pause, cutscene
|
||||
TArray<class UUserWidget*> overlayWidgetsInstances;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
TSubclassOf<class UMainMenuWidget> mainMenuWidgetClass;
|
||||
class UMainMenuWidget* mainMenuWidget = nullptr;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly)
|
||||
TSubclassOf<class UInteractableHintWidgetManager> interactableHintWidgetManagerClass; // hidden in cutscene
|
||||
class UInteractableHintWidgetManager* interactableHintWidgetManager = nullptr;
|
||||
|
Loading…
Reference in New Issue
Block a user