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(); bIsInAir = BlasterCharacter->GetCharacterMovement()->IsFalling();
bIsAccelerating = BlasterCharacter->GetCharacterMovement()->GetCurrentAcceleration().Size() > 0.f; bIsAccelerating = BlasterCharacter->GetCharacterMovement()->GetCurrentAcceleration().Size() > 0.f;
bWeaponEquipped = BlasterCharacter->IsWeaponEquipped();
} }

View File

@ -32,4 +32,7 @@ private:
UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true")) UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true"))
bool bIsAccelerating; 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) void ABlasterCharacter::OnRep_OverlappingWeapon(AWeapon* LastWeapon)
{ {
if (OverlappingWeapon) if (OverlappingWeapon)

View File

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

View File

@ -6,6 +6,7 @@
#include "Blaster/Character/BlasterCharacter.h" #include "Blaster/Character/BlasterCharacter.h"
#include "Blaster/Weapon/Weapon.h" #include "Blaster/Weapon/Weapon.h"
#include "Engine/SkeletalMeshSocket.h" #include "Engine/SkeletalMeshSocket.h"
#include "Net/UnrealNetwork.h"
UCombatComponent::UCombatComponent() 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) void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip)
{ {
if (Character == nullptr || WeaponToEquip == nullptr) return; if (Character == nullptr || WeaponToEquip == nullptr) return;

View File

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