From 5775df5ec1f202184b8e0a0c8ba88f3adbf2e1cb Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Thu, 12 May 2022 17:05:30 +0200 Subject: [PATCH] Added debug widget --- Content/Blueprints/HUD/BP_BlasterHUD.uasset | Bin 22842 -> 22987 bytes Content/Blueprints/HUD/WBP_DebugWidget.uasset | Bin 0 -> 37767 bytes Source/Blaster/HUD/BlasterHUD.cpp | 12 ++++ Source/Blaster/HUD/BlasterHUD.h | 7 ++ Source/Blaster/HUD/DebugWidget.cpp | 5 ++ Source/Blaster/HUD/DebugWidget.h | 41 ++++++++++++ .../BlasterPlayerController.cpp | 63 ++++++++++++++++++ .../BlasterPlayerController.h | 12 +++- 8 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 Content/Blueprints/HUD/WBP_DebugWidget.uasset create mode 100644 Source/Blaster/HUD/DebugWidget.cpp create mode 100644 Source/Blaster/HUD/DebugWidget.h diff --git a/Content/Blueprints/HUD/BP_BlasterHUD.uasset b/Content/Blueprints/HUD/BP_BlasterHUD.uasset index a137d6554342d4dbeff2c3e15d910f1a8edef480..92481c8d3966a138254b3f5b49d1156c5cfe934b 100644 GIT binary patch delta 2800 zcma)84NwzD6y8e$5(t(puoN@r@B&h*EYf}*Ijl(y5c^zG%KAq`VEv-fu2_r34E zz1!Q%rSsG+2UXWoU86_H3n7$gFDU@SLsfA7g+eF{tTv9;#mAa78lA=*r#8h!tBty7 zO|r(QQ>)Zwtp))PRr@0p09GYNNC`F!CJH%XurpvULhpj!ckr*{uU@^CajvK4GhuE0 zkC%0qjw}g$ra8I(e)ImRov{r>j0jcX3hD*rTm?d(E`_N}8-Z4%$30Z4V?M{1qYwdR zDp;{;O?J_$H3j8#aei4DYOfincck%rys1b$$PX5}5Kv6}!H*m^-w!!TC>CWKZMiOJ zE{*iK6C(BrkqsV^`=GXQLZp-+ zBKO+*v423&e=6<=rBxo42vRU1QcMv3SPtwj4DqO4F`JQ;`Qix_-tJ+8|6Ol^5=P1{)e7^>dl5qSj2 zR*%R-Kq~PrQMhb1tKtXN%ymv+XLp%rVVgMkuvkc~!6LDQ>csWp+2EQZTgyhMz>e<9 z1IbvG7K4vVB)D5Fl$Ed)AFvnM@xyTxyhswrIca30!YMnxCXsM#^r%B-hcFIwB9X*% zY8*@%2a{?EY+>Qg7mO7#6eyH!0EoQFgi=Qa(Bumlid7m;mE(<43FowpS?XEo9N9W2 z1x10K&W<%XW0E?VP_`M|qmlxa^5VagW}sBKP9TThynkgj*9$6(k zj*&j-z0mLCi$N#6TH&CQW4l6$%j8n;>oBX-J8I<{d<x3tk$= zYUo5>%gDvUU6_WuLL(h{vr9P!6$FyJY6wv?bW&FeNYW5uVyaR>Dl_0ls4fAn@$e(E zS`_aP&D+J*tH7B6>S_oib&%3k5Uhd#@-s2@kRT(BVqorE99aeJ=v4Xo`H(|@q^*sM z?<7W2zW7jz9Ea$mC@vnz3HB$Oggjc(oE~!X$-zw;7dPk=DXybizn8*EVgbH1KN24@ zB=9FWaU{TP7Ac-)nyXkBa60NxV|!{-O_##IFTW>|Wgr}?55*Zt8fr4$nY5M?<3XdG z>cfw+gT2Ue<&Zh=E{t$ivI?r&lRT5pZe5ViHyVYi2fsbKG30A)uqp3l?igxdiKKi! zWEn>mebedv$G|ymTI2iS*E4GSHYVc7=2ASJ7V_ac$TR^q&Ty+)N(%R>+QlfOuHrLf8Ik4&r8JlVo4O?%*g3(O*qhNYV-TV-n6rDxhG!|&NC}; zKw22SZ7PWPdrPl(rLs5u?9txV_>rbJNrb!4k!zMvF12n;$$r{et_>KsWB=d;a#q87ecV{t{p%IWYyEkl9W~y23EABj%&fD^x||X|40}6z z@zv0@_x27iYnZWn4mK>5M{t`@a_n?_=E-BjvdEi#f0E7Y?qd>8%@lBb5yA$Wmh!{e zEF(7A)G(^B&8PUd(RW2!{X8rFUOY%REGy!hOj-mp|JM1+C@352^k*}r@3v)_@ jgWp<5`cHY8+v*a{3vY_7xHc!2Ie9|)?6-$Gb*%pY^J%jW delta 2840 zcma)82}~4c6#i#9WI5`<9xO;ybg@E(?k+6s;=(So7scgLQ7BOhNEPMK1-z=ZrbcZ& zO8rf2JZjOV*s5vEf?6-cCPrIq)v9T0A~mt5cw%EE)+l{%c0gR%)VG=W-+bTq-v8b| z^Uv&$F6Kxx({SV6E(0Ncgpiz?>T(!-$ucWagg;xHK|T1FQ$QzAD&NOBQe4zOOZE(5*6*d;*#XOz{|I2|RW z<&~r<+&RnjnkZ1@%JB{GcfB8YOhk)9&d7>|=u%<42N~wl#yp8^hJef&z?2Tj+=ZA* zuS~U9rUn^t|2*`ES4It*^$z4-IAn&~z?67p%DghOy)yH?GId^=MP3=lkjyQpy8Z>m zDXcFJMacB8h?9QBK3|c6x?&IAzg~1RJak#1L+5*ouV|J~$x>nLhFTX7$=nBK2{Pk) zz!T*BfO`ZDA3v)P?-F<-KefiuyJ1muXBaDg+l>-2jK>5&!9>*(luVFU2#_AeTEV|% zqV1U)dQPI0R|!x6jIDw{BSWBdqA*Tyr8Ha0%Bw+v+XmGJp`5nC5|JP=`GN!X#5yPo z24fb7AeorOOIFB~@*05qCTTziY;8_|hNm)C-q#3Dv|$*pAmMrZviuPi0F6m$g`Abo zb2B6s#&LqbXL^68%OI%-xNovxL2}kDi4RxG7Y(3q3iRdY84iRiMMn$!6GkY;hhjfi z7Tn0*zu@Si(-gb>6!3OYP&P7>N+V?cO1S#X;Cek`L4YxdXb4Ai@Z(4_NhMmMCn<1F zhQmT^#7dHgnIsZBoXx=N0oQ?N1BHgzT-TzHip_~2(*T?ZN%Y`pVdRJ!P%Q+ef;a_2 zEPx=d2RsGRB5vl>Fk}p6mGLg|gn1&f4oDjaHGDdEEq1;>J)k;BsDo4~@WW~_ksXp? zl~(wfVL8V`vKZIZghHP*oHY>wZ2Y`hsK6bdg8)pS=PO8sGshoTy&9@E1EX^-&;$mB z!eWu$wod*w;Vt0kd6UBL8LVv(9cfq4lWDPxFI`y_6@qJz_ZrQO;HM^xzedE6ZeV;} zOVd{~!EAZ!D^a#|_;d?bk1LY+*uLhuN3w z;alc5+MYI=-Z3RHERD{X$4K}J@$UPer|tqzc#uhs5F+i1Wx?U{W^t7zwRPpr%mPci zn$WGB8hVm)^o%WpvGq3LrtTzfmY##Uj3*ykasY}YNyHjmP zy0$&LP}-|9&{Z}kJ!EFZ_}N1Xq36x1WBuJ1gW6_@u(d!JZ*j3j%bL_bO`VAy=bkMPdo8!K*; zoog#dpR{pQ)5mXgbZD_zPpq%F0ffU^KU2b?|5$N{!lL-jN^@p1?7EewCMNfknf7gOox64tyO*BNRVdXG(T68W zM(4I3-!+xCooT@**Av4D>DM{IK7oYL#{5V|L=*D0OfbElm(KXpd-)1_DL@EGZ7i&254AL0&s9A%?{0i#4@x{WmX0dY@-L~; MV*EIu;R`DJKWX{4@c;k- diff --git a/Content/Blueprints/HUD/WBP_DebugWidget.uasset b/Content/Blueprints/HUD/WBP_DebugWidget.uasset new file mode 100644 index 0000000000000000000000000000000000000000..92017fb5cf2d3498b2eed3cd9395ed5fcfab788f GIT binary patch literal 37767 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, DebugWidgetClass); + DebugWidget->AddToViewport(); + } +} + void ABlasterHUD::AddCharacterOverlay() { APlayerController* PlayerController = GetOwningPlayerController(); diff --git a/Source/Blaster/HUD/BlasterHUD.h b/Source/Blaster/HUD/BlasterHUD.h index 7688097..b689d03 100644 --- a/Source/Blaster/HUD/BlasterHUD.h +++ b/Source/Blaster/HUD/BlasterHUD.h @@ -31,6 +31,7 @@ class BLASTER_API ABlasterHUD : public AHUD public: virtual void DrawHUD() override; + void AddDebugWidget(); void AddCharacterOverlay(); void AddAnnouncementOverlay(); @@ -40,6 +41,12 @@ public: UPROPERTY() class UCharacterOverlay* CharacterOverlay; + UPROPERTY() + class UDebugWidget* DebugWidget; + + UPROPERTY(EditAnywhere, Category = "Widget") + TSubclassOf DebugWidgetClass; + UPROPERTY(EditAnywhere, Category = "Announcements") TSubclassOf AnnouncementClass; diff --git a/Source/Blaster/HUD/DebugWidget.cpp b/Source/Blaster/HUD/DebugWidget.cpp new file mode 100644 index 0000000..54440c9 --- /dev/null +++ b/Source/Blaster/HUD/DebugWidget.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "DebugWidget.h" + diff --git a/Source/Blaster/HUD/DebugWidget.h b/Source/Blaster/HUD/DebugWidget.h new file mode 100644 index 0000000..c556c31 --- /dev/null +++ b/Source/Blaster/HUD/DebugWidget.h @@ -0,0 +1,41 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "DebugWidget.generated.h" + +/** + * + */ +UCLASS() +class BLASTER_API UDebugWidget : public UUserWidget +{ + GENERATED_BODY() + +public: + + UPROPERTY(meta = (BindWidget)) + class UTextBlock* DebugMsg1; + + UPROPERTY(meta = (BindWidget)) + UTextBlock* DebugMsg2; + + UPROPERTY(meta = (BindWidget)) + UTextBlock* DebugMsg3; + + UPROPERTY(meta = (BindWidget)) + UTextBlock* DebugMsg4; + + UPROPERTY(meta = (BindWidget)) + UTextBlock* DebugMsg5; + + UPROPERTY(meta = (BindWidget)) + UTextBlock* DebugMsg6; + + UPROPERTY(meta = (BindWidget)) + UTextBlock* DebugMsg7; + + +}; \ No newline at end of file diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.cpp b/Source/Blaster/PlayerController/BlasterPlayerController.cpp index 859cb0a..f222fd0 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.cpp +++ b/Source/Blaster/PlayerController/BlasterPlayerController.cpp @@ -9,6 +9,7 @@ #include "Blaster/HUD/Announcement.h" #include "Blaster/HUD/BlasterHUD.h" #include "Blaster/HUD/CharacterOverlay.h" +#include "Blaster/HUD/DebugWidget.h" #include "Components/ProgressBar.h" #include "Components/TextBlock.h" #include "GameFramework/GameMode.h" @@ -38,6 +39,59 @@ void ABlasterPlayerController::Tick(float DeltaTime) SetHUDTime(); CheckTimeSync(DeltaTime); PollInit(); + + if (DebugWidget) + { + SetDebugMsg1(TEXT("GetServerTime(): "), FString::Printf(TEXT("%02f"), GetServerTime())); + SetDebugMsg2(TEXT("ClientServerDelta: "), FString::Printf(TEXT("%f"), ClientServerDelta)); + SetDebugMsg3(TEXT("LevelStartingTime: "), FString::Printf(TEXT("%f"), LevelStartingTime)); + SetDebugMsg4(TEXT("WarmupTime: "), FString::Printf(TEXT("%f"), WarmupTime)); + SetDebugMsg5(TEXT("MatchTime: "), FString::Printf(TEXT("%f"), MatchTime)); + SetDebugMsg6(TEXT("CooldownTime: "), FString::Printf(TEXT("%f"), CooldownTime)); + SetDebugMsg7(TEXT("CountdownInt: "), FString::Printf(TEXT("%d"), CountdownInt)); + } +} + +void ABlasterPlayerController::SetDebugMsg1(FString Key, FString Value) +{ + bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg1; + if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg1->SetText(FText::FromString(Key.Append(Value))); +} + +void ABlasterPlayerController::SetDebugMsg2(FString Key, FString Value) +{ + bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg2; + if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg2->SetText(FText::FromString(Key.Append(Value))); +} + +void ABlasterPlayerController::SetDebugMsg3(FString Key, FString Value) +{ + bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg3; + if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg3->SetText(FText::FromString(Key.Append(Value))); +} + +void ABlasterPlayerController::SetDebugMsg4(FString Key, FString Value) +{ + bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg4; + if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg4->SetText(FText::FromString(Key.Append(Value))); +} + +void ABlasterPlayerController::SetDebugMsg5(FString Key, FString Value) +{ + bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg5; + if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg5->SetText(FText::FromString(Key.Append(Value))); +} + +void ABlasterPlayerController::SetDebugMsg6(FString Key, FString Value) +{ + bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg6; + if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg6->SetText(FText::FromString(Key.Append(Value))); +} + +void ABlasterPlayerController::SetDebugMsg7(FString Key, FString Value) +{ + bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg7; + if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg7->SetText(FText::FromString(Key.Append(Value))); } void ABlasterPlayerController::CheckTimeSync(float DeltaTime) @@ -74,6 +128,7 @@ void ABlasterPlayerController::ClientJoinMidgame_Implementation(FName StateOfMat OnMatchStateSet(MatchState); if (BlasterHUD && MatchState == MatchState::WaitingToStart) { + BlasterHUD->AddDebugWidget(); BlasterHUD->AddAnnouncementOverlay(); } } @@ -252,6 +307,14 @@ void ABlasterPlayerController::SetHUDTime() void ABlasterPlayerController::PollInit() { + if (DebugWidget == nullptr) + { + if (BlasterHUD && BlasterHUD->DebugWidget) + { + DebugWidget = BlasterHUD->DebugWidget; + } + } + if (CharacterOverlay == nullptr) { if (BlasterHUD && BlasterHUD->CharacterOverlay) diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.h b/Source/Blaster/PlayerController/BlasterPlayerController.h index a995292..daa9e22 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.h +++ b/Source/Blaster/PlayerController/BlasterPlayerController.h @@ -20,7 +20,14 @@ public: virtual void OnPossess(APawn* InPawn) override; virtual void ReceivedPlayer() override; // Sync with server clock as soon as possible virtual void GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const override; - + + void SetDebugMsg1(FString Key, FString Value); + void SetDebugMsg2(FString Key, FString Value); + void SetDebugMsg3(FString Key, FString Value); + void SetDebugMsg4(FString Key, FString Value); + void SetDebugMsg5(FString Key, FString Value); + void SetDebugMsg6(FString Key, FString Value); + void SetDebugMsg7(FString Key, FString Value); void SetHUDHealth(float Health, float MaxHealth); void SetHUDScore(float Score); void SetHUDDefeats(int32 Defeats); @@ -68,6 +75,9 @@ protected: void ClientJoinMidgame(FName StateOfMatch, float Warmup, float Match, float Cooldown, float StartingTime); private: + UPROPERTY() + class UDebugWidget* DebugWidget; + UPROPERTY() class ABlasterHUD* BlasterHUD;