diff --git a/Content/Blueprints/Character/BP_BlasterCharacter.uasset b/Content/Blueprints/Character/BP_BlasterCharacter.uasset index 38e419d..de55908 100644 Binary files a/Content/Blueprints/Character/BP_BlasterCharacter.uasset and b/Content/Blueprints/Character/BP_BlasterCharacter.uasset differ diff --git a/Content/Blueprints/GameModes/BP_BlasterGameMode.uasset b/Content/Blueprints/GameModes/BP_BlasterGameMode.uasset index fa9c0d0..4496da5 100644 Binary files a/Content/Blueprints/GameModes/BP_BlasterGameMode.uasset and b/Content/Blueprints/GameModes/BP_BlasterGameMode.uasset differ diff --git a/Content/Blueprints/HUD/BP_BlasterHUD.uasset b/Content/Blueprints/HUD/BP_BlasterHUD.uasset index a137d65..75e956d 100644 Binary files a/Content/Blueprints/HUD/BP_BlasterHUD.uasset and b/Content/Blueprints/HUD/BP_BlasterHUD.uasset differ diff --git a/Content/Blueprints/HUD/WBP_Debug.uasset b/Content/Blueprints/HUD/WBP_Debug.uasset new file mode 100644 index 0000000..65db060 Binary files /dev/null and b/Content/Blueprints/HUD/WBP_Debug.uasset differ diff --git a/Content/Blueprints/PlayerController/BP_BlasterPlayerController.uasset b/Content/Blueprints/PlayerController/BP_BlasterPlayerController.uasset index 0388b9b..8781dc2 100644 Binary files a/Content/Blueprints/PlayerController/BP_BlasterPlayerController.uasset and b/Content/Blueprints/PlayerController/BP_BlasterPlayerController.uasset differ diff --git a/Source/Blaster/HUD/BlasterHUD.cpp b/Source/Blaster/HUD/BlasterHUD.cpp index 3f9826c..a4a3b1d 100644 --- a/Source/Blaster/HUD/BlasterHUD.cpp +++ b/Source/Blaster/HUD/BlasterHUD.cpp @@ -5,7 +5,9 @@ #include "Announcement.h" #include "CharacterOverlay.h" +#include "DebugWidget.h" #include "Blueprint/UserWidget.h" +#include "Components/TextBlock.h" void ABlasterHUD::BeginPlay() { @@ -32,6 +34,17 @@ void ABlasterHUD::AddAnnouncement() } } +void ABlasterHUD::AddDebugWidget() +{ + APlayerController* PlayerController = GetOwningPlayerController(); + if (PlayerController && DebugWidgetClass) + { + DebugWidget = CreateWidget(PlayerController, DebugWidgetClass); + DebugWidget->DebugMsg1->SetText(FText::FromString(TEXT("Test"))); + DebugWidget->AddToViewport(); + } +} + void ABlasterHUD::DrawHUD() { Super::DrawHUD(); diff --git a/Source/Blaster/HUD/BlasterHUD.h b/Source/Blaster/HUD/BlasterHUD.h index f803f11..30d021f 100644 --- a/Source/Blaster/HUD/BlasterHUD.h +++ b/Source/Blaster/HUD/BlasterHUD.h @@ -33,12 +33,19 @@ public: virtual void DrawHUD() override; void AddCharacterOverlay(); void AddAnnouncement(); + void AddDebugWidget(); UPROPERTY(EditAnywhere, Category = "Player Stats") TSubclassOf CharacterOverlayClass; 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..6991c7e --- /dev/null +++ b/Source/Blaster/HUD/DebugWidget.h @@ -0,0 +1,38 @@ +// 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; + + +}; diff --git a/Source/Blaster/PlayerController/BlasterPlayerController.cpp b/Source/Blaster/PlayerController/BlasterPlayerController.cpp index 09ad565..7f71be1 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.cpp +++ b/Source/Blaster/PlayerController/BlasterPlayerController.cpp @@ -8,6 +8,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" @@ -37,6 +38,13 @@ void ABlasterPlayerController::Tick(float DeltaTime) SetHUDTime(); CheckTimeSync(DeltaTime); PollInit(); + + if (DebugWidget) + { + SetDebugMsg1(TEXT("ServerTime: "), FString::Printf(TEXT("%f"), GetServerTime())); + SetDebugMsg2(TEXT("ClientServerDelta: "), FString::Printf(TEXT("%f"), ClientServerDelta)); + SetDebugMsg3(TEXT("LevelStartingTime: "), FString::Printf(TEXT("%f"), LevelStartingTime)); + } } void ABlasterPlayerController::CheckTimeSync(float DeltaTime) @@ -74,6 +82,7 @@ void ABlasterPlayerController::ClientJoinMidgame_Implementation(FName StateOfMat if (BlasterHUD && MatchState == MatchState::WaitingToStart) { BlasterHUD->AddAnnouncement(); + BlasterHUD->AddDebugWidget(); } } @@ -217,6 +226,42 @@ void ABlasterPlayerController::SetHUDAnnouncementCountdown(float CountdownTime) } } +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::SetHUDTime() { float TimeLeft = 0.f; @@ -252,6 +297,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 25957b2..f232f2f 100644 --- a/Source/Blaster/PlayerController/BlasterPlayerController.h +++ b/Source/Blaster/PlayerController/BlasterPlayerController.h @@ -27,6 +27,12 @@ public: void SetHUDCarriedAmmo(int32 Ammo); void SetHUDMatchCountdown(float CountdownTime); void SetHUDAnnouncementCountdown(float CountdownTime); + 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); // Synced with server world clock virtual float GetServerTime(); @@ -84,6 +90,9 @@ private: UFUNCTION() void OnRep_MatchState(); + UPROPERTY() + class UDebugWidget* DebugWidget; + UPROPERTY() class UCharacterOverlay* CharacterOverlay; bool bInitializeCharacterOverlay = false;