// Copyright Epic Games, Inc. All Rights Reserved. #include "LyraInventoryItemInstance.h" #include "Net/UnrealNetwork.h" #include "Inventory/LyraInventoryItemDefinition.h" ULyraInventoryItemInstance::ULyraInventoryItemInstance(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { } void ULyraInventoryItemInstance::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const { Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME(ThisClass, StatTags); DOREPLIFETIME(ThisClass, ItemDef); } void ULyraInventoryItemInstance::AddStatTagStack(FGameplayTag Tag, int32 StackCount) { StatTags.AddStack(Tag, StackCount); } void ULyraInventoryItemInstance::RemoveStatTagStack(FGameplayTag Tag, int32 StackCount) { StatTags.RemoveStack(Tag, StackCount); } int32 ULyraInventoryItemInstance::GetStatTagStackCount(FGameplayTag Tag) const { return StatTags.GetStackCount(Tag); } bool ULyraInventoryItemInstance::HasStatTag(FGameplayTag Tag) const { return StatTags.ContainsTag(Tag); } void ULyraInventoryItemInstance::SetItemDef(TSubclassOf InDef) { ItemDef = InDef; } const ULyraInventoryItemFragment* ULyraInventoryItemInstance::FindFragmentByClass(TSubclassOf FragmentClass) const { if ((ItemDef != nullptr) && (FragmentClass != nullptr)) { return GetDefault(ItemDef)->FindFragmentByClass(FragmentClass); } return nullptr; }