47 - Equipped Animation Pose

This commit is contained in:
Kingsmedia 2022-04-30 16:48:34 +02:00
parent 07e1cbd90f
commit 12252d7ae6
7 changed files with 24 additions and 3 deletions

View File

@ -30,5 +30,5 @@ void UBlasterAnimInstance::NativeUpdateAnimation(float DeltaSeconds)
bIsInAir = BlasterCharacter->GetCharacterMovement()->IsFalling();
bIsAccelerating = BlasterCharacter->GetCharacterMovement()->GetCurrentAcceleration().Size() > 0.f;
bWeaponEquipped = BlasterCharacter->IsWeaponEquipped();
}

View File

@ -32,4 +32,7 @@ private:
UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true"))
bool bIsAccelerating;
UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true"))
bool bWeaponEquipped;
};

View File

@ -144,6 +144,11 @@ void ABlasterCharacter::SetOverlappingWeapon(AWeapon* Weapon)
}
}
bool ABlasterCharacter::IsWeaponEquipped()
{
return Combat && Combat->EquippedWeapon;
}
void ABlasterCharacter::OnRep_OverlappingWeapon(AWeapon* LastWeapon)
{
if (OverlappingWeapon)

View File

@ -50,4 +50,5 @@ private:
void ServerEquipButtonPressed();
public:
void SetOverlappingWeapon(AWeapon* Weapon);
bool IsWeaponEquipped();
};

View File

@ -6,6 +6,7 @@
#include "Blaster/Character/BlasterCharacter.h"
#include "Blaster/Weapon/Weapon.h"
#include "Engine/SkeletalMeshSocket.h"
#include "Net/UnrealNetwork.h"
UCombatComponent::UCombatComponent()
{
@ -23,6 +24,13 @@ void UCombatComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActo
}
void UCombatComponent::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(UCombatComponent, EquippedWeapon);
}
void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip)
{
if (Character == nullptr || WeaponToEquip == nullptr) return;

View File

@ -14,9 +14,11 @@ class BLASTER_API UCombatComponent : public UActorComponent
public:
UCombatComponent();
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
friend class ABlasterCharacter;
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
void EquipWeapon(class AWeapon* WeaponToEquip);
protected:
@ -24,5 +26,7 @@ protected:
private:
class ABlasterCharacter* Character;
UPROPERTY(Replicated)
class AWeapon* EquippedWeapon;
};