// Copyright Epic Games, Inc. All Rights Reserved. #include "LyraWeaponInstance.h" #include "Net/UnrealNetwork.h" #include "Engine/World.h" ULyraWeaponInstance::ULyraWeaponInstance(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { } void ULyraWeaponInstance::OnEquipped() { Super::OnEquipped(); UWorld* World = GetWorld(); check(World); TimeLastEquipped = World->GetTimeSeconds(); } void ULyraWeaponInstance::OnUnequipped() { Super::OnUnequipped(); } void ULyraWeaponInstance::UpdateFiringTime() { UWorld* World = GetWorld(); check(World); TimeLastFired = World->GetTimeSeconds(); } float ULyraWeaponInstance::GetTimeSinceLastInteractedWith() const { UWorld* World = GetWorld(); check(World); const double WorldTime = World->GetTimeSeconds(); double Result = WorldTime - TimeLastEquipped; if (TimeLastFired > 0.0) { const double TimeSinceFired = WorldTime - TimeLastFired; Result = FMath::Min(Result, TimeSinceFired); } return Result; } TSubclassOf ULyraWeaponInstance::PickBestAnimLayer(bool bEquipped, const FGameplayTagContainer& CosmeticTags) const { const FLyraAnimLayerSelectionSet& SetToQuery = (bEquipped ? EquippedAnimSet : UneuippedAnimSet); return SetToQuery.SelectBestLayer(CosmeticTags); }