7#include "CoreMinimal.h"
8#include "ArticyObject.h"
9#include "UObject/UObjectHash.h"
10#include "ArticyPackage.generated.h"
20 UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category =
"Articy")
21 TArray<UArticyObject*> Assets;
23 UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category =
"Articy")
24 TMap<FName, TSoftObjectPtr<UArticyObject>> AssetsByTechnicalName;
26 UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category =
"Articy")
27 TMap<FArticyId, TSoftObjectPtr<UArticyObject>> AssetsById;
30 virtual FPrimaryAssetId GetPrimaryAssetId()
const override {
return FPrimaryAssetId(FName(TEXT(
"ArticyPackage")), GetFName()); }
35 const int AssetNum()
const;
41 const TArray<UArticyObject*> GetAssets();
44 const TMap<FName, TSoftObjectPtr<UArticyObject>> GetAssetsDict();
50 UArticyObject* GetAssetByTechnicalName(
const FName& TechnicalName)
const;
52 const bool IsAssetContained(FName TechnicalName)
const;
54 const bool IsAssetContained(
const FArticyId& Id)
const;
56 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category =
"Package")
58 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category =
"Package")
60 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category =
"Package")
61 bool bIsDefaultPackage =
false;
65 TArray<UObject*> GetInnerObjects()
const;
68inline const int UArticyPackage::AssetNum()
const
73inline void UArticyPackage::Clear()
77 AssetsByTechnicalName.Empty();
80inline const TArray<UArticyObject*> UArticyPackage::GetAssets()
85inline const TMap<FName, TSoftObjectPtr<UArticyObject>> UArticyPackage::GetAssetsDict()
87 return AssetsByTechnicalName;
90inline const bool UArticyPackage::IsAssetContained(FName TechnicalName)
const
92 return AssetsByTechnicalName.Contains(TechnicalName);
95inline const bool UArticyPackage::IsAssetContained(
const FArticyId &Id)
const
97 return AssetsById.Contains(Id);
102 if(AssetsById.Contains(Id))
104 return AssetsById[Id].Get();
110inline UArticyObject* UArticyPackage::GetAssetByTechnicalName(
const FName& TechnicalName)
const
112 if (AssetsByTechnicalName.Contains(TechnicalName))
114 return AssetsByTechnicalName[TechnicalName].Get();
120inline TArray<UObject*> UArticyPackage::GetInnerObjects()
const
122 TArray<UObject*> OutObjects;
123 GetObjectsWithOuter(
this, OutObjects,
false);
128inline void UArticyPackage::AddAsset(
UArticyObject* ArticyObject)
130 const FArticyId& ArticyId = ArticyObject->GetId();
132 if (!IsAssetContained(ArticyId))
134 Assets.Add(ArticyObject);
135 AssetsByTechnicalName.Add(ArticyObject->GetTechnicalName(), ArticyObject);
136 AssetsById.Add(ArticyId, ArticyObject);
Definition ArticyObject.h:19
Definition ArticyPackage.h:15
Definition ArticyBaseTypes.h:18