96 - Update Health in the HUD
This commit is contained in:
parent
ce6d62f323
commit
26e44a4b4e
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include "Blaster/Blaster.h"
|
#include "Blaster/Blaster.h"
|
||||||
#include "Blaster/Components/CombatComponent.h"
|
#include "Blaster/Components/CombatComponent.h"
|
||||||
|
#include "Blaster/PlayerController/BlasterPlayerController.h"
|
||||||
#include "Blaster/Weapon/Weapon.h"
|
#include "Blaster/Weapon/Weapon.h"
|
||||||
#include "Camera/CameraComponent.h"
|
#include "Camera/CameraComponent.h"
|
||||||
#include "Components/CapsuleComponent.h"
|
#include "Components/CapsuleComponent.h"
|
||||||
|
@ -48,6 +49,17 @@ ABlasterCharacter::ABlasterCharacter()
|
||||||
MinNetUpdateFrequency = 33.f;
|
MinNetUpdateFrequency = 33.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ABlasterCharacter::BeginPlay()
|
||||||
|
{
|
||||||
|
Super::BeginPlay();
|
||||||
|
|
||||||
|
BlasterPlayerController = Cast<ABlasterPlayerController>(Controller);
|
||||||
|
if (BlasterPlayerController)
|
||||||
|
{
|
||||||
|
BlasterPlayerController->SetHUDHealth(Health, MaxHealth);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ABlasterCharacter::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
|
void ABlasterCharacter::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
|
||||||
{
|
{
|
||||||
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
|
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
|
||||||
|
@ -100,11 +112,6 @@ void ABlasterCharacter::PlayHitReactMontage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ABlasterCharacter::BeginPlay()
|
|
||||||
{
|
|
||||||
Super::BeginPlay();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ABlasterCharacter::Tick(float DeltaTime)
|
void ABlasterCharacter::Tick(float DeltaTime)
|
||||||
{
|
{
|
||||||
Super::Tick(DeltaTime);
|
Super::Tick(DeltaTime);
|
||||||
|
|
|
@ -103,6 +103,8 @@ private:
|
||||||
|
|
||||||
UFUNCTION()
|
UFUNCTION()
|
||||||
void OnRep_Health();
|
void OnRep_Health();
|
||||||
|
|
||||||
|
class ABlasterPlayerController* BlasterPlayerController;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void SetOverlappingWeapon(AWeapon* Weapon);
|
void SetOverlappingWeapon(AWeapon* Weapon);
|
||||||
|
|
|
@ -3,3 +3,33 @@
|
||||||
|
|
||||||
#include "BlasterPlayerController.h"
|
#include "BlasterPlayerController.h"
|
||||||
|
|
||||||
|
#include "Blaster/HUD/BlasterHUD.h"
|
||||||
|
#include "Blaster/HUD/CharacterOverlay.h"
|
||||||
|
#include "Components/ProgressBar.h"
|
||||||
|
#include "Components/TextBlock.h"
|
||||||
|
|
||||||
|
|
||||||
|
void ABlasterPlayerController::BeginPlay()
|
||||||
|
{
|
||||||
|
Super::BeginPlay();
|
||||||
|
|
||||||
|
BlasterHUD = Cast<ABlasterHUD>(GetHUD());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ABlasterPlayerController::SetHUDHealth(float Health, float MaxHealth)
|
||||||
|
{
|
||||||
|
BlasterHUD = BlasterHUD == nullptr ? Cast<ABlasterHUD>(GetHUD()) : BlasterHUD;
|
||||||
|
bool bHUDValid =
|
||||||
|
BlasterHUD &&
|
||||||
|
BlasterHUD->CharacterOverlay &&
|
||||||
|
BlasterHUD->CharacterOverlay->HealthBar &&
|
||||||
|
BlasterHUD->CharacterOverlay->HealthText;
|
||||||
|
|
||||||
|
if (bHUDValid)
|
||||||
|
{
|
||||||
|
const float HealthPercent = Health / MaxHealth;
|
||||||
|
BlasterHUD->CharacterOverlay->HealthBar->SetPercent(HealthPercent);
|
||||||
|
const FString HealthText = FString::Printf(TEXT("%d/%d"), FMath::CeilToInt(Health), FMath::CeilToInt(MaxHealth));
|
||||||
|
BlasterHUD->CharacterOverlay->HealthText->SetText(FText::FromString(HealthText));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -13,5 +13,17 @@ UCLASS()
|
||||||
class BLASTER_API ABlasterPlayerController : public APlayerController
|
class BLASTER_API ABlasterPlayerController : public APlayerController
|
||||||
{
|
{
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
void SetHUDHealth(float Health, float MaxHealth);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
virtual void BeginPlay() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
class ABlasterHUD* BlasterHUD;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue