ArticyXImporter
ArticyXImporter for Unreal Engine
Loading...
Searching...
No Matches
ArticyObject.h
1//
2// Copyright (c) 2023 articy Software GmbH & Co. KG. All rights reserved.
3//
4
5#pragma once
6
7#include "CoreMinimal.h"
8#include "ArticyPrimitive.h"
9#include "ArticyBaseTypes.h"
10#include "ArticyType.h"
11#include "Dom/JsonValue.h"
12#include "ArticyObject.generated.h"
13
17UCLASS(BlueprintType)
18class ARTICYRUNTIME_API UArticyObject : public UArticyPrimitive
19{
20 GENERATED_BODY()
21
22public:
23 FName GetTechnicalName() const;
24
25 UFUNCTION(BlueprintCallable, Category = "Articy")
26 UArticyObject* GetParent() const;
27 TArray<TWeakObjectPtr<UArticyObject>> GetChildren() const;
28
29 FArticyId GetParentID() const;
31 TArray<FArticyId> GetChildrenIDs() const;
32
33#if WITH_EDITOR
35 TArray<FArticyId> GetArticyObjectChildrenIDs() const;
36
38 static UArticyObject* FindAsset(const FArticyId& Id);
39 static UArticyObject* FindAsset(const FString& TechnicalName);// MM_CHANGE
40
41private:
42 static TSet<TWeakObjectPtr<class UArticyPackage>> CachedPackages;
43 static TMap<FArticyId, TWeakObjectPtr<UArticyObject>> ArticyIdCache;
44 static TMap<FName, TWeakObjectPtr<UArticyObject>> ArticyNameCache;
45#endif
46
47protected:
48
49 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Articy")
50 FArticyId Parent;
51 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Articy")
52 TArray<FArticyId> Children;
53 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Articy")
54 FString TechnicalName;
55
57 void InitFromJson(TSharedPtr<FJsonValue> Json) override;
58
59private:
60
61 mutable TArray<TWeakObjectPtr<UArticyObject>> CachedChildren;
62};
Definition ArticyObject.h:19
TArray< FArticyId > GetChildrenIDs() const
Definition ArticyObject.cpp:99
UArticyObject * GetParent() const
Definition ArticyObject.cpp:59
void InitFromJson(TSharedPtr< FJsonValue > Json) override
Definition ArticyObject.cpp:27
FName GetTechnicalName() const
Definition ArticyObject.cpp:49
TArray< TWeakObjectPtr< UArticyObject > > GetChildren() const
Definition ArticyObject.cpp:69
FArticyId GetParentID() const
Definition ArticyObject.cpp:89
Definition ArticyPrimitive.h:17
Definition ArticyBaseTypes.h:18