Lesson 68 - JoinGame Callbacks

This commit is contained in:
Norman Lansing
2026-03-31 08:15:28 -04:00
parent cc35c1bd1b
commit 2d8de0369c
7 changed files with 44 additions and 0 deletions

View File

@@ -2,3 +2,9 @@
#include "UI/API/GameSessions/JoinGame.h"
#include "Components/TextBlock.h"
void UJoinGame::SetStatusMessage(const FString& Message) const
{
TextBlock_StatusMessage->SetText(FText::FromString(Message));
}

View File

@@ -2,3 +2,8 @@
#include "UI/Portal/PortalManager.h"
void UPortalManager::JoinGameSession()
{
BroadcastJoinGameSessionMessage.Broadcast(TEXT("Searching for Game Session..."));
}

View File

@@ -13,4 +13,20 @@ void USignInOverlay::NativeConstruct()
check(PortalManagerClass);
PortalManager = NewObject<UPortalManager>(PortalManagerClass);
JoinGameWidget->Button_JoinGame->OnClicked.AddDynamic(this, &USignInOverlay::OnJoinGameButtonClicked);
}
void USignInOverlay::OnJoinGameButtonClicked()
{
check (IsValid(PortalManager));
PortalManager->BroadcastJoinGameSessionMessage.AddDynamic(this, &USignInOverlay::UpdateJoinGameStatusMessage);
PortalManager->JoinGameSession();
JoinGameWidget->Button_JoinGame->SetIsEnabled(false);
}
void USignInOverlay::UpdateJoinGameStatusMessage(const FString& StatusMessage)
{
JoinGameWidget->SetStatusMessage(StatusMessage);
}

View File

@@ -24,4 +24,6 @@ public:
UPROPERTY(meta = (BindWidget))
TObjectPtr<UTextBlock> TextBlock_StatusMessage;
void SetStatusMessage(const FString& Message) const;
};

View File

@@ -6,6 +6,8 @@
#include "UI/HTTP/HTTPRequestManager.h"
#include "PortalManager.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FBroadcastJoinGameSessionMessage, const FString&, StatusMessage);
/**
*
*/
@@ -13,4 +15,11 @@ UCLASS()
class DEDICATEDSERVERS_API UPortalManager : public UHTTPRequestManager
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintAssignable)
FBroadcastJoinGameSessionMessage BroadcastJoinGameSessionMessage;
void JoinGameSession();
};

View File

@@ -34,4 +34,10 @@ private:
UPROPERTY()
TObjectPtr<UPortalManager> PortalManager;
UFUNCTION()
void OnJoinGameButtonClicked();
UFUNCTION()
void UpdateJoinGameStatusMessage(const FString& StatusMessage);
};