Define UItemInstance base UObject with stable GUID

This commit is contained in:
2026-05-19 23:59:58 +03:00
parent 0a99ecbeb0
commit edcd95b7f5
2 changed files with 39 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
#include "ItemInstance.h"
void UItemInstance::PostInitProperties()
{
Super::PostInitProperties();
if (HasAnyFlags(RF_ClassDefaultObject | RF_ArchetypeObject | RF_NeedLoad))
return;
if (!InstanceID.IsValid())
InstanceID = FGuid::NewGuid();
}
void UItemInstance::PostDuplicate(EDuplicateMode::Type DuplicateMode)
{
Super::PostDuplicate(DuplicateMode);
InstanceID = FGuid::NewGuid();
}
+22
View File
@@ -0,0 +1,22 @@
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "ItemInstance.generated.h"
UCLASS(Abstract)
class NAKEDDESIRE_API UItemInstance : public UObject
{
GENERATED_BODY()
public:
virtual void PostInitProperties() override;
virtual void PostDuplicate(EDuplicateMode::Type DuplicateMode) override;
UFUNCTION(BlueprintPure, Category = "Item")
FGuid GetInstanceID() const { return InstanceID; }
private:
UPROPERTY(VisibleAnywhere, SaveGame, BlueprintReadOnly, Category = "Item", meta = (AllowPrivateAccess = "true"))
FGuid InstanceID;
};