From cc35c1bd1b5129d6efbebda807522febe4204b19 Mon Sep 17 00:00:00 2001 From: Norman Lansing Date: Tue, 31 Mar 2026 07:42:56 -0400 Subject: [PATCH] Lesson 67 - Portal Setup --- .../Blueprints/Game/BP_MenuGameMode.uasset | Bin 21085 -> 21079 bytes .../Portal/BP_PortalHUD.uasset | Bin 0 -> 24522 bytes .../Portal/BP_PortalManager.uasset | Bin 0 -> 5742 bytes .../Portal/WBP_JoinGame.uasset | Bin 0 -> 36260 bytes .../Portal/WBP_SignInOverlay.uasset | Bin 0 -> 27369 bytes .../Private/UI/API/GameSessions/JoinGame.cpp | 4 ++ .../Private/UI/Portal/PortalHUD.cpp | 24 ++++++++++++ .../Private/UI/Portal/PortalManager.cpp | 4 ++ .../UI/Portal/Signin/SignInOverlay.cpp | 16 ++++++++ .../Public/UI/API/GameSessions/JoinGame.h | 27 +++++++++++++ .../Public/UI/Portal/PortalHUD.h | 30 ++++++++++++++ .../Public/UI/Portal/PortalManager.h | 16 ++++++++ .../Public/UI/Portal/Signin/SignInOverlay.h | 37 ++++++++++++++++++ 13 files changed, 158 insertions(+) create mode 100644 Content/DedicatedServers/Portal/BP_PortalHUD.uasset create mode 100644 Content/DedicatedServers/Portal/BP_PortalManager.uasset create mode 100644 Content/DedicatedServers/Portal/WBP_JoinGame.uasset create mode 100644 Content/DedicatedServers/Portal/WBP_SignInOverlay.uasset create mode 100644 Source/DedicatedServers/Private/UI/API/GameSessions/JoinGame.cpp create mode 100644 Source/DedicatedServers/Private/UI/Portal/PortalHUD.cpp create mode 100644 Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp create mode 100644 Source/DedicatedServers/Private/UI/Portal/Signin/SignInOverlay.cpp create mode 100644 Source/DedicatedServers/Public/UI/API/GameSessions/JoinGame.h create mode 100644 Source/DedicatedServers/Public/UI/Portal/PortalHUD.h create mode 100644 Source/DedicatedServers/Public/UI/Portal/PortalManager.h create mode 100644 Source/DedicatedServers/Public/UI/Portal/Signin/SignInOverlay.h diff --git a/Content/Blueprints/Game/BP_MenuGameMode.uasset b/Content/Blueprints/Game/BP_MenuGameMode.uasset index 0d3830d3d9522c4342594863fa8193e2f644e21e..98562a3c7aa29b69b04d3e5297d28aedc825ff57 100644 GIT binary patch delta 380 zcmcb+gz@?k#t9OlwN{nc1{~tii?3MTHoQzC+xhKa8sZWk)JM!q~V znU^bGoFAwUStj0@;pL)~Z<|}VzHl)eb)3B3Q*QDaA&$ulL_L_kxJ*9C2;mBdc`$8s zo$MH(KDklMo#{4&`4PyR;06{=6nAHGbO$pp0-4jjz)VL8cc#C7VCF_3vo8S5RFrgQ s+5urs1TyCbf<+mnHge0;4FbFX) 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 literal 0 HcmV?d00001 diff --git a/Content/DedicatedServers/Portal/BP_PortalManager.uasset b/Content/DedicatedServers/Portal/BP_PortalManager.uasset new file mode 100644 index 0000000000000000000000000000000000000000..485b3f09f7d231123f0dd7d4df0e763f477bef21 GIT binary patch literal 5742 zcmds5eQ;D)6+bB{ABDt#6eyY!Xl)2BNeCgNtrnAP5(4>HNT6ti@UnY1S-QJ#^WNLU zrO>7=MXF=9)|t|&R!gNHl-f8dI7Vfd(P_0)sngNvh=u9MAgyI=XDT8e#`C-H-rcvG z5D@y8XJ_BN_k7)R&OPtkd*8ta7d-W^;o;$p6Q2L z-eKJRf7}{=v8L_#`>R&$nZIxUuab;AR`J$gUfaWS_TPJG@2(Z+tFB?(GUwc(0pDQV z(dmyqW)~IC{0!r2H$3@PL(4C3e17k=ZONIzqn~5k$)3Su@78|%qsf0>w5w*Qp>#gu z%J6SAqN2n1UpQB!s-_7cZc zh_2;yfZqF^NjGN*btL10rcC|T(L4y5W+Y`nI zS1`MeEfPpY>Hb=dmuXe_NSu0bB_!*EVa`&Y8AwD$%xQ{+Od9GeIE&d_k{e^c;q=h& zYrZ#t3{&ylpW{0Y2O1)#;iPOm``nT9h+?CN2@7vPUBs|$+CFhz2ePiwGU7clJi8uv zt?z1J5UV=>nVu;;Xo{sZ?S8Xr1(v+ou$@dZZJKiZRc}DJ)#Qc#Xxwk|Fr_k8uV>BS zAHP?~XulD-o8Pr&Ghjr*n++^#E5D<5+z1Go<|KDuV!vUr|E{gG-rjvz0pr?@J`r3S z7X59ZkS!eA^6LA(6#k2*8Lf$$iI_v3Grs;?#HBsZBccWk4}GnF7KSV9n>(|Yj8|r6 z-})0Ux7`dmp6K59^x>x^+OZOWbQH?zJLiC2(_)S5Wd;50;LbdhxB5O_BA0jl z?ws`qxvBtS<;fhVQcF#Cf9Q#zQsWCbyw~b3I+4`UtFsY`)XXcZ(v9#fQDN^b+_^ zG2e}s$cOzBFxI@#SK_jb%C}I_&|vQXjHb`ar(3af*|$mwth-iqF3{-t z$C^)PvyP2cRjfLTxW(oLc;O=Rxm;uWr{_E4@eOv~tc3B(Z&Uq!AH#eDO4sEyh)HHa zMJ>xN|MUaq8LP@(U^gFRv4>Q~V5U)Zdken1N0+9GxsMBvsW zf_!ZeR*3HtHsgs<^_a?6ei2L+JzL)I=a~)l%f39$Qz=^EI3??E%Zds%5KrqzhSuOYz0YM1{_^9;42Z~*oplX;5~s!BGPBBB)Q*|(1l8`7AXuQB=k2T zDXo}`xCMX*s|`RO$~8QW4v;7efFk*HadSL<@Myp!a&~;(0TjunE2NLH5KvzsB^3hN zU%~|#fV9z|OdmL)F9gUDfY)is1P5@T2H@nF0l3@(isaL^35PTQY{FjyzDZ0h_qBwt zJMmi6Baa-}bH1njbv?ag@(#Qg1+BqtbBPZ~!_Wrs&ft}o(eNU8uXbUChqz0iya7gd zh}Q~GB%hby;XmJLpBjFBW6QI#d0Xy#c>h7K4F~zl@#Cj<50u{i>pvi_dS#Su>N`@s OD))B>O3D=i{Qm_A`fM%$ literal 0 HcmV?d00001 diff --git a/Content/DedicatedServers/Portal/WBP_JoinGame.uasset b/Content/DedicatedServers/Portal/WBP_JoinGame.uasset new file mode 100644 index 0000000000000000000000000000000000000000..6b98dde1399dd1ad4a2c70a28de70250b2a7b3e5 GIT binary patch literal 36260 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 Ds<^P9 literal 0 HcmV?d00001 diff --git a/Content/DedicatedServers/Portal/WBP_SignInOverlay.uasset b/Content/DedicatedServers/Portal/WBP_SignInOverlay.uasset new file mode 100644 index 0000000000000000000000000000000000000000..c3bad5f433e7982cb5251fe8ac9611746b6d56c0 GIT binary patch literal 27369 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, SignInOverlayClass); + if (IsValid(SignInOverlay)) + { + SignInOverlay->AddToViewport(); + } + + FInputModeGameAndUI InputModeData; + OwningPlayerController->SetInputMode(InputModeData); + OwningPlayerController->SetShowMouseCursor(true); + + +} diff --git a/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp b/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp new file mode 100644 index 00000000..5723e91b --- /dev/null +++ b/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp @@ -0,0 +1,4 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "UI/Portal/PortalManager.h" diff --git a/Source/DedicatedServers/Private/UI/Portal/Signin/SignInOverlay.cpp b/Source/DedicatedServers/Private/UI/Portal/Signin/SignInOverlay.cpp new file mode 100644 index 00000000..f7e446ce --- /dev/null +++ b/Source/DedicatedServers/Private/UI/Portal/Signin/SignInOverlay.cpp @@ -0,0 +1,16 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "UI/Portal/Signin/SignInOverlay.h" + +#include "Components/Button.h" +#include "UI/API/GameSessions/JoinGame.h" +#include "UI/Portal/PortalManager.h" + +void USignInOverlay::NativeConstruct() +{ + Super::NativeConstruct(); + + check(PortalManagerClass); + PortalManager = NewObject(PortalManagerClass); +} diff --git a/Source/DedicatedServers/Public/UI/API/GameSessions/JoinGame.h b/Source/DedicatedServers/Public/UI/API/GameSessions/JoinGame.h new file mode 100644 index 00000000..b8db1ad0 --- /dev/null +++ b/Source/DedicatedServers/Public/UI/API/GameSessions/JoinGame.h @@ -0,0 +1,27 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "JoinGame.generated.h" + +class UButton; +class UTextBlock; + +/** + * + */ +UCLASS() +class DEDICATEDSERVERS_API UJoinGame : public UUserWidget +{ + GENERATED_BODY() + +public: + + UPROPERTY(meta = (BindWidget)) + TObjectPtr Button_JoinGame; + + UPROPERTY(meta = (BindWidget)) + TObjectPtr TextBlock_StatusMessage; +}; diff --git a/Source/DedicatedServers/Public/UI/Portal/PortalHUD.h b/Source/DedicatedServers/Public/UI/Portal/PortalHUD.h new file mode 100644 index 00000000..1feb8f57 --- /dev/null +++ b/Source/DedicatedServers/Public/UI/Portal/PortalHUD.h @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +class USignInOverlay; + +#include "CoreMinimal.h" +#include "GameFramework/HUD.h" +#include "PortalHUD.generated.h" + +/** + * + */ +UCLASS() +class DEDICATEDSERVERS_API APortalHUD : public AHUD +{ + GENERATED_BODY() + +public: + + UPROPERTY(EditDefaultsOnly) + TSubclassOf SignInOverlayClass; + +protected: + + virtual void BeginPlay() override; +private: + UPROPERTY() + TObjectPtr SignInOverlay; +}; diff --git a/Source/DedicatedServers/Public/UI/Portal/PortalManager.h b/Source/DedicatedServers/Public/UI/Portal/PortalManager.h new file mode 100644 index 00000000..549d2299 --- /dev/null +++ b/Source/DedicatedServers/Public/UI/Portal/PortalManager.h @@ -0,0 +1,16 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "UI/HTTP/HTTPRequestManager.h" +#include "PortalManager.generated.h" + +/** + * + */ +UCLASS() +class DEDICATEDSERVERS_API UPortalManager : public UHTTPRequestManager +{ + GENERATED_BODY() +}; diff --git a/Source/DedicatedServers/Public/UI/Portal/Signin/SignInOverlay.h b/Source/DedicatedServers/Public/UI/Portal/Signin/SignInOverlay.h new file mode 100644 index 00000000..b162cece --- /dev/null +++ b/Source/DedicatedServers/Public/UI/Portal/Signin/SignInOverlay.h @@ -0,0 +1,37 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +class UJoinGame; + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "SignInOverlay.generated.h" + +class UPortalManager; + +/** + * + */ +UCLASS() +class DEDICATEDSERVERS_API USignInOverlay : public UUserWidget +{ + GENERATED_BODY() + +public: + + UPROPERTY(meta = (BindWidget)) + TObjectPtr JoinGameWidget; + + UPROPERTY(EditDefaultsOnly) + TSubclassOf PortalManagerClass; + +protected: + + virtual void NativeConstruct() override; + +private: + + UPROPERTY() + TObjectPtr PortalManager; +};