feature/fix-time-sync #1
Binary file not shown.
Binary file not shown.
|
@ -5,13 +5,25 @@
|
||||||
|
|
||||||
#include "Announcement.h"
|
#include "Announcement.h"
|
||||||
#include "CharacterOverlay.h"
|
#include "CharacterOverlay.h"
|
||||||
|
#include "DebugWidget.h"
|
||||||
#include "Blueprint/UserWidget.h"
|
#include "Blueprint/UserWidget.h"
|
||||||
|
#include "Components/TextBlock.h"
|
||||||
|
|
||||||
void ABlasterHUD::BeginPlay()
|
void ABlasterHUD::BeginPlay()
|
||||||
{
|
{
|
||||||
Super::BeginPlay();
|
Super::BeginPlay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ABlasterHUD::AddDebugWidget()
|
||||||
|
{
|
||||||
|
APlayerController* PlayerController = GetOwningPlayerController();
|
||||||
|
if (PlayerController && DebugWidgetClass)
|
||||||
|
{
|
||||||
|
DebugWidget = CreateWidget<UDebugWidget>(PlayerController, DebugWidgetClass);
|
||||||
|
DebugWidget->AddToViewport();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ABlasterHUD::AddCharacterOverlay()
|
void ABlasterHUD::AddCharacterOverlay()
|
||||||
{
|
{
|
||||||
APlayerController* PlayerController = GetOwningPlayerController();
|
APlayerController* PlayerController = GetOwningPlayerController();
|
||||||
|
|
|
@ -31,6 +31,7 @@ class BLASTER_API ABlasterHUD : public AHUD
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual void DrawHUD() override;
|
virtual void DrawHUD() override;
|
||||||
|
void AddDebugWidget();
|
||||||
void AddCharacterOverlay();
|
void AddCharacterOverlay();
|
||||||
void AddAnnouncementOverlay();
|
void AddAnnouncementOverlay();
|
||||||
|
|
||||||
|
@ -40,6 +41,12 @@ public:
|
||||||
UPROPERTY()
|
UPROPERTY()
|
||||||
class UCharacterOverlay* CharacterOverlay;
|
class UCharacterOverlay* CharacterOverlay;
|
||||||
|
|
||||||
|
UPROPERTY()
|
||||||
|
class UDebugWidget* DebugWidget;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, Category = "Widget")
|
||||||
|
TSubclassOf<class UUserWidget> DebugWidgetClass;
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere, Category = "Announcements")
|
UPROPERTY(EditAnywhere, Category = "Announcements")
|
||||||
TSubclassOf<class UUserWidget> AnnouncementClass;
|
TSubclassOf<class UUserWidget> AnnouncementClass;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
// Fill out your copyright notice in the Description page of Project Settings.
|
||||||
|
|
||||||
|
|
||||||
|
#include "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;
|
||||||
|
|
||||||
|
|
||||||
|
};
|
|
@ -9,6 +9,7 @@
|
||||||
#include "Blaster/HUD/Announcement.h"
|
#include "Blaster/HUD/Announcement.h"
|
||||||
#include "Blaster/HUD/BlasterHUD.h"
|
#include "Blaster/HUD/BlasterHUD.h"
|
||||||
#include "Blaster/HUD/CharacterOverlay.h"
|
#include "Blaster/HUD/CharacterOverlay.h"
|
||||||
|
#include "Blaster/HUD/DebugWidget.h"
|
||||||
#include "Components/ProgressBar.h"
|
#include "Components/ProgressBar.h"
|
||||||
#include "Components/TextBlock.h"
|
#include "Components/TextBlock.h"
|
||||||
#include "GameFramework/GameMode.h"
|
#include "GameFramework/GameMode.h"
|
||||||
|
@ -38,6 +39,59 @@ void ABlasterPlayerController::Tick(float DeltaTime)
|
||||||
SetHUDTime();
|
SetHUDTime();
|
||||||
CheckTimeSync(DeltaTime);
|
CheckTimeSync(DeltaTime);
|
||||||
PollInit();
|
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)
|
void ABlasterPlayerController::CheckTimeSync(float DeltaTime)
|
||||||
|
@ -74,6 +128,7 @@ void ABlasterPlayerController::ClientJoinMidgame_Implementation(FName StateOfMat
|
||||||
OnMatchStateSet(MatchState);
|
OnMatchStateSet(MatchState);
|
||||||
if (BlasterHUD && MatchState == MatchState::WaitingToStart)
|
if (BlasterHUD && MatchState == MatchState::WaitingToStart)
|
||||||
{
|
{
|
||||||
|
BlasterHUD->AddDebugWidget();
|
||||||
BlasterHUD->AddAnnouncementOverlay();
|
BlasterHUD->AddAnnouncementOverlay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -252,6 +307,14 @@ void ABlasterPlayerController::SetHUDTime()
|
||||||
|
|
||||||
void ABlasterPlayerController::PollInit()
|
void ABlasterPlayerController::PollInit()
|
||||||
{
|
{
|
||||||
|
if (DebugWidget == nullptr)
|
||||||
|
{
|
||||||
|
if (BlasterHUD && BlasterHUD->DebugWidget)
|
||||||
|
{
|
||||||
|
DebugWidget = BlasterHUD->DebugWidget;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (CharacterOverlay == nullptr)
|
if (CharacterOverlay == nullptr)
|
||||||
{
|
{
|
||||||
if (BlasterHUD && BlasterHUD->CharacterOverlay)
|
if (BlasterHUD && BlasterHUD->CharacterOverlay)
|
||||||
|
|
|
@ -21,6 +21,13 @@ public:
|
||||||
virtual void ReceivedPlayer() override; // Sync with server clock as soon as possible
|
virtual void ReceivedPlayer() override; // Sync with server clock as soon as possible
|
||||||
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
|
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& 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 SetHUDHealth(float Health, float MaxHealth);
|
||||||
void SetHUDScore(float Score);
|
void SetHUDScore(float Score);
|
||||||
void SetHUDDefeats(int32 Defeats);
|
void SetHUDDefeats(int32 Defeats);
|
||||||
|
@ -68,6 +75,9 @@ protected:
|
||||||
void ClientJoinMidgame(FName StateOfMatch, float Warmup, float Match, float Cooldown, float StartingTime);
|
void ClientJoinMidgame(FName StateOfMatch, float Warmup, float Match, float Cooldown, float StartingTime);
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
UPROPERTY()
|
||||||
|
class UDebugWidget* DebugWidget;
|
||||||
|
|
||||||
UPROPERTY()
|
UPROPERTY()
|
||||||
class ABlasterHUD* BlasterHUD;
|
class ABlasterHUD* BlasterHUD;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue