Started to implement GUI for session connections

pull/6/head
eyakm1 2 years ago
parent f798fd22b1
commit e70d03fec5

Binary file not shown.

@ -0,0 +1,29 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "MyMainMenu.h"
#include "Components/Button.h"
#include "Kismet/GameplayStatics.h"
void UMyMainMenu::NativeConstruct()
{
Super::NativeConstruct();
HostOnlineGameButton->OnClicked.AddDynamic(this, &ThisClass::UMyMainMenu::OnHostOnlineGameButtonClicked);
}
void UMyMainMenu::OnHostOnlineGameButtonClicked()
{
GetMyGameSubsystem()->CreateSession(2, true);
UGameplayStatics::OpenLevel(GetWorld(), FName(TEXT("BattleFieldMap")));
this->RemoveFromParent();
}
UMyGameInstanceSubsystem* UMyMainMenu::GetMyGameSubsystem() const
{
const UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(GetWorld());
UMyGameInstanceSubsystem* GameInstanceSubsystem = GameInstance->GetSubsystem<UMyGameInstanceSubsystem>();
return GameInstanceSubsystem;
}

@ -0,0 +1,31 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "MyGameInstanceSubsystem.h"
#include "MyMainMenu.generated.h"
/**
*
*/
UCLASS()
class TURNBASEDTUTORIAL_API UMyMainMenu : public UUserWidget
{
GENERATED_BODY()
public:
UPROPERTY(meta = (BindWidget))
class UButton* HostOnlineGameButton;
virtual void NativeConstruct() override;
protected:
UFUNCTION()
void OnHostOnlineGameButtonClicked();
private:
UMyGameInstanceSubsystem* GetMyGameSubsystem() const;
};

@ -0,0 +1,32 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "MySessionListWidget.h"
#include "MyGameInstanceSubsystem.h"
#include "Kismet/GameplayStatics.h"
void UMySessionListWidget::NativeConstruct()
{
Super::NativeConstruct();
const auto MyGameInstanceSubsystem = GetMyGameSubsystem();
MyGameInstanceSubsystem->OnFindSessionsCompleteEvent.AddUObject(this, &ThisClass::FillSessionListFromDelegate);
// Initiate search
MyGameInstanceSubsystem->FindSessions(10, true);
}
void UMySessionListWidget::FillSessionListFromDelegate(const TArray<FOnlineSessionSearchResult>& SessionResults,
bool bSuccessful)
{
UE_LOG(LogTemp, Warning, TEXT("FIND SESSION DELEGATED %d %d"), bSuccessful, SessionResults.Num());
}
UMyGameInstanceSubsystem* UMySessionListWidget::GetMyGameSubsystem() const
{
const UGameInstance* GameInstance = UGameplayStatics::GetGameInstance(GetWorld());
UMyGameInstanceSubsystem* GameInstanceSubsystem = GameInstance->GetSubsystem<UMyGameInstanceSubsystem>();
return GameInstanceSubsystem;
}

@ -0,0 +1,35 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "MyGameInstanceSubsystem.h"
#include "Blueprint/UserWidget.h"
#include "MySessionListWidget.generated.h"
/**
*
*/
UCLASS()
class TURNBASEDTUTORIAL_API UMySessionListWidget : public UUserWidget
{
GENERATED_BODY()
protected:
virtual void NativeConstruct() override;
UPROPERTY(meta = (BindWidget))
class UButton* ConnectToSelectedSessionButton;
UPROPERTY(meta = (BindWidget))
class UButton* GoBackToMainMenuButton;
UPROPERTY(meta = (BindWidget))
class UListView* AvailableSessionsList;
void FillSessionListFromDelegate(const TArray<FOnlineSessionSearchResult>& SessionResults, bool bSuccessful);
private:
UMyGameInstanceSubsystem* GetMyGameSubsystem() const;
};
Loading…
Cancel
Save