183 virtual FPrimaryAssetId
GetPrimaryAssetId()
const override {
return FPrimaryAssetId(FName(TEXT(
"ArticyDatabase")), GetFName()); }
192 UFUNCTION(BlueprintCallable, Category =
"Articy|Lifecycle")
193 static
void Initialize(const UObject* WorldContext);
199 UFUNCTION(BlueprintCallable, Category =
"Articy|Lifecycle")
200 static
void Deinitialize(const UObject* WorldContext);
222 UFUNCTION(BlueprintCallable, Category =
"Articy")
223 void UnloadDatabase();
230 UFUNCTION(BlueprintCallable, Category =
"Script Methods")
231 void SetDefaultUserMethodsProvider(UObject* MethodProvider);
239 UFUNCTION(BlueprintPure, meta = (DisplayName =
"Is in shadow state?"), Category =
"Script Methods")
246 UFUNCTION(BlueprintPure, meta = (DisplayName =
"Get imported package names"), Category =
"Articy")
247 TArray<FString> GetImportedPackageNames() const;
254 UFUNCTION(BlueprintPure, meta = (DisplayName =
"Is package default package?"), Category =
"Articy")
255 bool IsPackageDefaultPackage(FString PackageName);
263 static
void LoadAllObjects();
269 virtual
void SetLoadedPackages(const TArray<
UArticyPackage*> Packages);
272 virtual
void LoadDefaultPackages();
275 virtual
void LoadAllPackages(
bool bDefaultOnly = false);
281 UFUNCTION(BlueprintCallable, Category =
"Articy")
282 virtual
void LoadPackage(FString PackageName);
290 UFUNCTION(BlueprintCallable, Category =
"Articy")
291 virtual
bool UnloadPackage(const FString PackageName, const
bool bQuickUnload);
304 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"CastTo", AdvancedDisplay =
"CloneId"))
307 T* GetObject(
FArticyId Id, int32 CloneId = 0)
const {
return Cast<T>(GetObject(Id, CloneId)); }
329 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"CastTo", AdvancedDisplay =
"CloneId"))
332 T* GetObjectByName(FName TechnicalName, int32 CloneId = 0)
const {
return Cast<T>(GetObjectByName(TechnicalName, CloneId)); }
342 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"CastTo", AdvancedDisplay =
"CloneId"))
343 UArticyObject* GetObjectFromStringRepresentation(FString StringID_CloneID, TSubclassOf<class
UArticyObject> CastTo = NULL) const;
345 T* GetObjectFromStringRepresentation(FString StringID_CloneID)
const {
return Cast<T>(GetObjectFromStringRepresentation(StringID_CloneID)); }
358 TArray<T*> GetObjects(FName TechnicalName, int32 CloneId = 0)
const;
368 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"CastTo", AdvancedDisplay =
"CloneId"))
369 TArray<
UArticyObject*> GetObjects(FName TechnicalName, int32 CloneId = 0, TSubclassOf<class
UArticyObject> CastTo = NULL) const;
379 TArray<T*> GetObjectsOfClass(int32 CloneId = 0) const;
389 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"Class", AdvancedDisplay =
"CloneId"))
396 UFUNCTION(BlueprintCallable, Category =
"Articy")
408 void GetObjects(TArray<T*>& Array, FName TechnicalName, int32 CloneId = 0) const;
421 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"CastTo"))
424 T* CloneFrom(
FArticyId Id, int32 NewCloneId = -1) {
return Cast<T>(CloneFrom(Id, NewCloneId)); }
435 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"CastTo"))
438 T* CloneFrom(FName TechnicalName, int32 NewCloneId = -1) {
return Cast<T>(CloneFromByName(TechnicalName, NewCloneId)); }
446 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"CastTo"))
449 T* GetOrClone(
FArticyId Id, int32 NewCloneId) {
return Cast<T>(GetOrClone(Id, NewCloneId)); }
457 UFUNCTION(BlueprintCallable, Category =
"Articy", meta = (DeterminesOutputType =
"CastTo"))
458 UArticyObject* GetOrCloneByName(const FName& TechnicalName, int32 NewCloneId);
460 T* GetOrClone(const FName& TechnicalName, int32 NewCloneId) {
return Cast<T>(GetOrCloneByName(TechnicalName, NewCloneId)); }
474 static TWeakObjectPtr<UArticyDatabase> GetMutableOriginal();
481 void ChangePackageDefault(FName PackageName,
bool bIsDefaultPackage);
483 UFUNCTION(BlueprintCallable, Category =
"Articy")
489 UPROPERTY(VisibleAnywhere, Category =
"Articy")
492 UPROPERTY(VisibleAnywhere, transient, Category =
"Articy")
493 TArray<FString> LoadedPackages;
501 bool bIsInitialized = false;
507 static TMap<TWeakObjectPtr<UWorld>, TWeakObjectPtr<UArticyDatabase>> Clones;
508 static TWeakObjectPtr<UArticyDatabase> PersistentClone;
514 UPROPERTY(Config, VisibleAnywhere, Category =
"Articy")
523 static const UArticyDatabase* GetOriginal(
bool bLoadDefaultPackages = false);
537 static FAssetId ResolveIDs(
const FString& articyAssetFileName);