80 - Blaster HUD and Player Controller
This commit is contained in:
parent
490af86ef1
commit
7127ade9ee
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -4,6 +4,8 @@
|
|||
#include "CombatComponent.h"
|
||||
|
||||
#include "Blaster/Character/BlasterCharacter.h"
|
||||
#include "Blaster/HUD/BlasterHUD.h"
|
||||
#include "Blaster/PlayerController/BlasterPlayerController.h"
|
||||
#include "Blaster/Weapon/Weapon.h"
|
||||
#include "Engine/SkeletalMeshSocket.h"
|
||||
#include "GameFramework/CharacterMovementComponent.h"
|
||||
|
@ -36,6 +38,47 @@ void UCombatComponent::BeginPlay()
|
|||
}
|
||||
}
|
||||
|
||||
void UCombatComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
|
||||
{
|
||||
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
|
||||
|
||||
SetHUDCrosshairs(DeltaTime);
|
||||
}
|
||||
|
||||
void UCombatComponent::SetHUDCrosshairs(float DeltaTime)
|
||||
{
|
||||
if (Character == nullptr || Character->Controller == nullptr) return;
|
||||
|
||||
Controller = Controller == nullptr ? Cast<ABlasterPlayerController>(Character->Controller) : Controller;
|
||||
if (Controller)
|
||||
{
|
||||
HUD = HUD == nullptr ? Cast<ABlasterHUD>(Controller->GetHUD()) : HUD;
|
||||
if (HUD)
|
||||
{
|
||||
FHUDPackage HUDPackage;
|
||||
|
||||
if (EquippedWeapon)
|
||||
{
|
||||
HUDPackage.CrosshairsCenter = EquippedWeapon->CrosshairsCenter;
|
||||
HUDPackage.CrosshairsLeft = EquippedWeapon->CrosshairsLeft;
|
||||
HUDPackage.CrosshairsRight = EquippedWeapon->CrosshairsRight;
|
||||
HUDPackage.CrosshairsTop = EquippedWeapon->CrosshairsTop;
|
||||
HUDPackage.CrosshairsBottom = EquippedWeapon->CrosshairsBottom;
|
||||
}
|
||||
else
|
||||
{
|
||||
HUDPackage.CrosshairsCenter = nullptr;
|
||||
HUDPackage.CrosshairsLeft = nullptr;
|
||||
HUDPackage.CrosshairsRight = nullptr;
|
||||
HUDPackage.CrosshairsTop = nullptr;
|
||||
HUDPackage.CrosshairsBottom = nullptr;
|
||||
}
|
||||
|
||||
HUD->SetHUDPackage(HUDPackage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UCombatComponent::SetAiming(bool bIsAiming)
|
||||
{
|
||||
bAiming = bIsAiming;
|
||||
|
@ -123,11 +166,6 @@ void UCombatComponent::MulticastFire_Implementation(const FVector_NetQuantize& T
|
|||
}
|
||||
}
|
||||
|
||||
void UCombatComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
|
||||
{
|
||||
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
|
||||
}
|
||||
|
||||
void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip)
|
||||
{
|
||||
if (Character == nullptr || WeaponToEquip == nullptr) return;
|
||||
|
|
|
@ -41,9 +41,13 @@ protected:
|
|||
void MulticastFire(const FVector_NetQuantize& TraceHitTarget);
|
||||
|
||||
void TraceUnderCrosshairs(FHitResult& TraceHitResult);
|
||||
|
||||
void SetHUDCrosshairs(float DeltaTime);
|
||||
|
||||
private:
|
||||
class ABlasterCharacter* Character;
|
||||
class ABlasterPlayerController* Controller;
|
||||
class ABlasterHUD* HUD;
|
||||
|
||||
UPROPERTY(ReplicatedUsing=OnRep_EquippedWeapon)
|
||||
class AWeapon* EquippedWeapon;
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "BlasterHUD.h"
|
||||
|
||||
void ABlasterHUD::DrawHUD()
|
||||
{
|
||||
Super::DrawHUD();
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/HUD.h"
|
||||
#include "BlasterHUD.generated.h"
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHUDPackage
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UTexture2D* CrosshairsCenter;
|
||||
UTexture2D* CrosshairsLeft;
|
||||
UTexture2D* CrosshairsRight;
|
||||
UTexture2D* CrosshairsTop;
|
||||
UTexture2D* CrosshairsBottom;
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class BLASTER_API ABlasterHUD : public AHUD
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual void DrawHUD() override;
|
||||
|
||||
private:
|
||||
FHUDPackage HUDPackage;
|
||||
|
||||
public:
|
||||
FORCEINLINE void SetHUDPackage(const FHUDPackage& Package) { HUDPackage = Package; };
|
||||
};
|
|
@ -0,0 +1,5 @@
|
|||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "BlasterPlayerController.h"
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "GameFramework/PlayerController.h"
|
||||
#include "BlasterPlayerController.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class BLASTER_API ABlasterPlayerController : public APlayerController
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
};
|
|
@ -27,6 +27,23 @@ public:
|
|||
void ShowPickupWidget(bool bShowWidget);
|
||||
virtual void Fire(const FVector& HitTarget);
|
||||
|
||||
// Textures for the weapon crosshairs
|
||||
|
||||
UPROPERTY(EditAnywhere, Category= Crosshairs)
|
||||
class UTexture2D* CrosshairsCenter;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category= Crosshairs)
|
||||
class UTexture2D* CrosshairsLeft;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category= Crosshairs)
|
||||
class UTexture2D* CrosshairsRight;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category= Crosshairs)
|
||||
class UTexture2D* CrosshairsTop;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category= Crosshairs)
|
||||
class UTexture2D* CrosshairsBottom;
|
||||
|
||||
protected:
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
|
@ -69,6 +86,8 @@ private:
|
|||
|
||||
UPROPERTY(EditAnywhere, Category= "Weapon Properties")
|
||||
TSubclassOf<class ACasing> CasingClass;
|
||||
|
||||
|
||||
public:
|
||||
void SetWeaponState(EWeaponState State);
|
||||
FORCEINLINE USphereComponent* GetAreaSphere() const { return AreaSphere; }
|
||||
|
|
Loading…
Reference in New Issue