Define UItemInstance base UObject with stable GUID
This commit is contained in:
@@ -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();
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
Reference in New Issue
Block a user