// 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(); } 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(); }