123 - Warmup Timer
This commit is contained in:
parent
b9ac8954e7
commit
9f8760f862
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,5 @@
|
||||||
|
// Fill out your copyright notice in the Description page of Project Settings.
|
||||||
|
|
||||||
|
|
||||||
|
#include "Announcement.h"
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
// Fill out your copyright notice in the Description page of Project Settings.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "CoreMinimal.h"
|
||||||
|
#include "Blueprint/UserWidget.h"
|
||||||
|
#include "Announcement.generated.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
UCLASS()
|
||||||
|
class BLASTER_API UAnnouncement : public UUserWidget
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
UPROPERTY(meta = (BindWidget))
|
||||||
|
class UTextBlock* AnnouncementText;
|
||||||
|
|
||||||
|
UPROPERTY(meta = (BindWidget))
|
||||||
|
UTextBlock* WarmupTime;
|
||||||
|
|
||||||
|
};
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "BlasterHUD.h"
|
#include "BlasterHUD.h"
|
||||||
|
|
||||||
|
#include "Announcement.h"
|
||||||
#include "CharacterOverlay.h"
|
#include "CharacterOverlay.h"
|
||||||
#include "Blueprint/UserWidget.h"
|
#include "Blueprint/UserWidget.h"
|
||||||
|
|
||||||
|
@ -21,6 +22,16 @@ void ABlasterHUD::AddCharacterOverlay()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ABlasterHUD::AddAnnouncementOverlay()
|
||||||
|
{
|
||||||
|
APlayerController* PlayerController = GetOwningPlayerController();
|
||||||
|
if (PlayerController && AnnouncementClass)
|
||||||
|
{
|
||||||
|
Announcement = CreateWidget<UAnnouncement>(PlayerController, AnnouncementClass);
|
||||||
|
Announcement->AddToViewport();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ABlasterHUD::DrawHUD()
|
void ABlasterHUD::DrawHUD()
|
||||||
{
|
{
|
||||||
Super::DrawHUD();
|
Super::DrawHUD();
|
||||||
|
|
|
@ -32,6 +32,7 @@ class BLASTER_API ABlasterHUD : public AHUD
|
||||||
public:
|
public:
|
||||||
virtual void DrawHUD() override;
|
virtual void DrawHUD() override;
|
||||||
void AddCharacterOverlay();
|
void AddCharacterOverlay();
|
||||||
|
void AddAnnouncementOverlay();
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere, Category = "Player Stats")
|
UPROPERTY(EditAnywhere, Category = "Player Stats")
|
||||||
TSubclassOf<class UUserWidget> CharacterOverlayClass;
|
TSubclassOf<class UUserWidget> CharacterOverlayClass;
|
||||||
|
@ -39,6 +40,11 @@ public:
|
||||||
UPROPERTY()
|
UPROPERTY()
|
||||||
class UCharacterOverlay* CharacterOverlay;
|
class UCharacterOverlay* CharacterOverlay;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, Category = "Announcements")
|
||||||
|
TSubclassOf<class UUserWidget> AnnouncementClass;
|
||||||
|
|
||||||
|
UPROPERTY()
|
||||||
|
class UAnnouncement* Announcement;
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "BlasterPlayerController.h"
|
#include "BlasterPlayerController.h"
|
||||||
|
|
||||||
#include "Blaster/Character/BlasterCharacter.h"
|
#include "Blaster/Character/BlasterCharacter.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 "Components/ProgressBar.h"
|
#include "Components/ProgressBar.h"
|
||||||
|
@ -17,6 +18,10 @@ void ABlasterPlayerController::BeginPlay()
|
||||||
Super::BeginPlay();
|
Super::BeginPlay();
|
||||||
|
|
||||||
BlasterHUD = Cast<ABlasterHUD>(GetHUD());
|
BlasterHUD = Cast<ABlasterHUD>(GetHUD());
|
||||||
|
if (BlasterHUD)
|
||||||
|
{
|
||||||
|
BlasterHUD->AddAnnouncementOverlay();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ABlasterPlayerController::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
|
void ABlasterPlayerController::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
|
||||||
|
@ -72,17 +77,26 @@ float ABlasterPlayerController::GetServerTime()
|
||||||
return GetWorld()->GetTimeSeconds() + ClientServerDelta;
|
return GetWorld()->GetTimeSeconds() + ClientServerDelta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ABlasterPlayerController::HandleMatchHasStarted()
|
||||||
|
{
|
||||||
|
BlasterHUD = BlasterHUD == nullptr ? Cast<ABlasterHUD>(GetHUD()) : BlasterHUD;
|
||||||
|
if (BlasterHUD)
|
||||||
|
{
|
||||||
|
BlasterHUD->AddCharacterOverlay();
|
||||||
|
if (BlasterHUD->Announcement)
|
||||||
|
{
|
||||||
|
BlasterHUD->Announcement->SetVisibility(ESlateVisibility::Hidden);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ABlasterPlayerController::OnMatchStateSet(FName State)
|
void ABlasterPlayerController::OnMatchStateSet(FName State)
|
||||||
{
|
{
|
||||||
MatchState = State;
|
MatchState = State;
|
||||||
|
|
||||||
if (MatchState == MatchState::InProgress)
|
if (MatchState == MatchState::InProgress)
|
||||||
{
|
{
|
||||||
BlasterHUD = BlasterHUD == nullptr ? Cast<ABlasterHUD>(GetHUD()) : BlasterHUD;
|
HandleMatchHasStarted();
|
||||||
if (BlasterHUD)
|
|
||||||
{
|
|
||||||
BlasterHUD->AddCharacterOverlay();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,11 +104,7 @@ void ABlasterPlayerController::OnRep_MatchState()
|
||||||
{
|
{
|
||||||
if (MatchState == MatchState::InProgress)
|
if (MatchState == MatchState::InProgress)
|
||||||
{
|
{
|
||||||
BlasterHUD = BlasterHUD == nullptr ? Cast<ABlasterHUD>(GetHUD()) : BlasterHUD;
|
HandleMatchHasStarted();
|
||||||
if (BlasterHUD)
|
|
||||||
{
|
|
||||||
BlasterHUD->AddCharacterOverlay();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@ protected:
|
||||||
|
|
||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
void CheckTimeSync(float DeltaSeconds);
|
void CheckTimeSync(float DeltaSeconds);
|
||||||
|
void HandleMatchHasStarted();
|
||||||
void SetHUDTime();
|
void SetHUDTime();
|
||||||
void PollInit();
|
void PollInit();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue