RealtimeStyleTransferRuntime/Source/LyraGame/Inventory/LyraInventoryItemInstance.cpp

55 lines
1.5 KiB
C++
Raw Normal View History

2022-05-23 18:41:30 +00:00
// 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<FLifetimeProperty>& 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<ULyraInventoryItemDefinition> InDef)
{
ItemDef = InDef;
}
const ULyraInventoryItemFragment* ULyraInventoryItemInstance::FindFragmentByClass(TSubclassOf<ULyraInventoryItemFragment> FragmentClass) const
{
if ((ItemDef != nullptr) && (FragmentClass != nullptr))
{
return GetDefault<ULyraInventoryItemDefinition>(ItemDef)->FindFragmentByClass(FragmentClass);
}
return nullptr;
}