// Copyright Epic Games, Inc. All Rights Reserved. #include "LyraGameplayAbility_FromEquipment.h" #include "LyraEquipmentInstance.h" #include "Inventory/LyraInventoryItemInstance.h" #if WITH_EDITOR #include "Misc/DataValidation.h" #endif #include UE_INLINE_GENERATED_CPP_BY_NAME(LyraGameplayAbility_FromEquipment) ULyraGameplayAbility_FromEquipment::ULyraGameplayAbility_FromEquipment(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { } ULyraEquipmentInstance* ULyraGameplayAbility_FromEquipment::GetAssociatedEquipment() const { if (FGameplayAbilitySpec* Spec = UGameplayAbility::GetCurrentAbilitySpec()) { return Cast(Spec->SourceObject.Get()); } return nullptr; } ULyraInventoryItemInstance* ULyraGameplayAbility_FromEquipment::GetAssociatedItem() const { if (ULyraEquipmentInstance* Equipment = GetAssociatedEquipment()) { return Cast(Equipment->GetInstigator()); } return nullptr; } #if WITH_EDITOR EDataValidationResult ULyraGameplayAbility_FromEquipment::IsDataValid(FDataValidationContext& Context) const { EDataValidationResult Result = Super::IsDataValid(Context); PRAGMA_DISABLE_DEPRECATION_WARNINGS if (InstancingPolicy == EGameplayAbilityInstancingPolicy::NonInstanced) PRAGMA_ENABLE_DEPRECATION_WARNINGS { Context.AddError(NSLOCTEXT("Lyra", "EquipmentAbilityMustBeInstanced", "Equipment ability must be instanced")); Result = EDataValidationResult::Invalid; } return Result; } #endif