添加库存系统组件

This commit is contained in:
不明不惑
2026-03-05 14:44:34 +08:00
parent 70e3731c09
commit be0098782a
17 changed files with 909 additions and 12 deletions

View File

@@ -0,0 +1,62 @@
// Copyright 2026 PHY. All Rights Reserved.
#include "Items/PHYItemBlueprintLibrary.h"
#include "GIS_ItemInstance.h"
const UPHYItemFragment_PropertySet* UPHYItemBlueprintLibrary::FindPropertyFragment(const UGIS_ItemInstance* ItemInstance)
{
if (!IsValid(ItemInstance))
{
return nullptr;
}
return ItemInstance->FindFragmentByClass<UPHYItemFragment_PropertySet>();
}
EPHYItemArchetype UPHYItemBlueprintLibrary::GetItemArchetype(const UGIS_ItemInstance* ItemInstance)
{
if (const UPHYItemFragment_PropertySet* Fragment = FindPropertyFragment(ItemInstance))
{
return Fragment->ItemArchetype;
}
return EPHYItemArchetype::Material;
}
EPHYEquipSlotType UPHYItemBlueprintLibrary::GetEquipSlotType(const UGIS_ItemInstance* ItemInstance)
{
if (const UPHYItemFragment_PropertySet* Fragment = FindPropertyFragment(ItemInstance))
{
return Fragment->EquipSlot;
}
return EPHYEquipSlotType::None;
}
bool UPHYItemBlueprintLibrary::IsWeaponItem(const UGIS_ItemInstance* ItemInstance)
{
return GetItemArchetype(ItemInstance) == EPHYItemArchetype::Weapon;
}
bool UPHYItemBlueprintLibrary::IsEquipmentItem(const UGIS_ItemInstance* ItemInstance)
{
const EPHYItemArchetype Archetype = GetItemArchetype(ItemInstance);
return Archetype == EPHYItemArchetype::Weapon || Archetype == EPHYItemArchetype::Equipment;
}
bool UPHYItemBlueprintLibrary::IsConsumableItem(const UGIS_ItemInstance* ItemInstance)
{
return GetItemArchetype(ItemInstance) == EPHYItemArchetype::Consumable;
}
FPHYConsumablePayload UPHYItemBlueprintLibrary::GetConsumablePayload(const UGIS_ItemInstance* ItemInstance)
{
if (const UPHYItemFragment_PropertySet* Fragment = FindPropertyFragment(ItemInstance))
{
return Fragment->ConsumablePayload;
}
return FPHYConsumablePayload();
}