ArticyXImporter
ArticyXImporter for Unreal Engine
Loading...
Searching...
No Matches
PackagesImport.h
1//
2// Copyright (c) 2023 articy Software GmbH & Co. KG. All rights reserved.
3//
4
5#pragma once
6
7#include "ArticyAsset.h"
8#include "ArticyBaseTypes.h"
9#include "ArticyPackage.h"
10#include "ArticyArchiveReader.h"
11#include "ArticyTexts.h"
12
13#include "PackagesImport.generated.h"
14
15
17struct FAdiSettings;
18
22USTRUCT(BlueprintType)
24{
25 GENERATED_BODY()
26
27public:
28
34 void ImportFromJson(const TSharedPtr<FJsonObject> JsonModel);
35
41 void GatherScripts(UArticyImportData* Data) const;
42
50 UArticyObject* GenerateSubAsset(const UArticyImportData* Data, UObject* Outer) const;//MM_CHANGE
51
57 FName GetType() const { return Type; }
58
64 const FString& GetTechnicalName() const { return TechnicalName; }
65
71 const FString& GetNameAndId() const { return NameAndId; }
72
78 const FArticyId& GetId() const { return Id; }
79
85 const FArticyId& GetParent() const { return Parent; }
86
92 const FString& GetAssetRef() const { return AssetRef; }
93
99 const EArticyAssetCategory& GetAssetCat() const { return AssetCategory; }
100
106 TSharedPtr<FJsonObject> GetPropertiesJson() const;
107
113 TSharedPtr<FJsonObject> GetTemplatesJson() const;
114
115private:
116
123 EArticyAssetCategory GetAssetCategoryFromString(const FString Category);
124
126 UPROPERTY(VisibleAnywhere, Category = "Model")
127 FName Type;
128
130 UPROPERTY(VisibleAnywhere, Category = "Model")
131 FString TechnicalName;
132
134 UPROPERTY(VisibleAnywhere, Category = "Model")
135 FArticyId Id = -1;
136
138 UPROPERTY(VisibleAnywhere, Category = "Model")
139 FString NameAndId;
140
142 UPROPERTY(VisibleAnywhere, Category = "Model")
143 FArticyId Parent = 0;
144
146 UPROPERTY(VisibleAnywhere, Category = "Model Meta")
147 FString AssetRef;
148
150 UPROPERTY(VisibleAnywhere, Category = "Model Meta")
151 EArticyAssetCategory AssetCategory = EArticyAssetCategory::None;
152
153 UPROPERTY(VisibleAnywhere, Category = "Model")
154 FString PropertiesJsonString;
155 UPROPERTY(VisibleAnywhere, Category = "Model")
156 FString TemplateJsonString;
157
158 mutable TSharedPtr<FJsonObject> CachedPropertiesJson = nullptr;
159 mutable TSharedPtr<FJsonObject> CachedTemplateJson = nullptr;
160};
161
165USTRUCT(BlueprintType)
167{
168 GENERATED_BODY()
169
170public:
171
178 void ImportFromJson(const UArticyArchiveReader& Archive, const TSharedPtr<FJsonObject>& JsonPackage);
179
185 void GatherScripts(UArticyImportData* Data) const;
186
192 void GatherText(const TSharedPtr<FJsonObject>& Json);
193
201
207 TMap<FString, FArticyTexts> GetTexts() const;
208
214 FString GetFolder() const;
215
221 FString GetFolderName() const;
222
228 const FString GetName() const;
229
235 const FString GetPreviousName() const;
236
242 void SetName(const FString& NewName);
243
249 FArticyId GetId() const;
250
256 bool GetIsIncluded() const;
257
263 FString GetScriptFragmentHash() const;
264
271 bool operator==(const FArticyPackageDef& Other) const
272 {
273 return Id == Other.Id;
274 }
275
276private:
277
278 UPROPERTY(VisibleAnywhere, Category = "Package")
279 FArticyId Id;
280
281 UPROPERTY(VisibleAnywhere, Category = "Package")
282 FString Name;
283 UPROPERTY(VisibleAnywhere, Category = "Package")
284 FString Description;
285 UPROPERTY(VisibleAnywhere, Category = "Package")
286 bool IsDefaultPackage = false;
287
288 UPROPERTY(VisibleAnywhere, Category = "Package")
289 TArray<FArticyModelDef> Models;
290
291 UPROPERTY(VisibleAnywhere, Category = "Package")
292 TMap<FString, FArticyTexts> Texts;
293
294 UPROPERTY(VisibleAnywhere, Category = "Package")
295 FString PackageObjectsHash;
296
297 UPROPERTY(VisibleAnywhere, Category = "Package")
298 FString PackageTextsHash;
299
300 UPROPERTY(VisibleAnywhere, Category = "Package")
301 FString ScriptFragmentHash;
302
303 bool IsIncluded = false;
304 FString PreviousName = TEXT("");
305};
306
310USTRUCT(BlueprintType)
312{
313 GENERATED_BODY()
314
315public:
316
324 void ImportFromJson(const UArticyArchiveReader& Archive, const TArray<TSharedPtr<FJsonValue>>* Json, FAdiSettings& Settings);
325
333 bool ValidateImport(const UArticyArchiveReader& Archive, const TArray<TSharedPtr<FJsonValue>>* Json);
334
340 void GatherScripts(UArticyImportData* Data) const;
341
347 void GenerateAssets(UArticyImportData* Data) const;//MM_CHANGE
348
355 static TMap<FString, FArticyTexts> GetTexts(const FArticyPackageDef& Package);
356
362 TSet<FString> GetPackageNames() const;
363
369 TArray<FArticyPackageDef> GetPackages() const;
370
374 void ResetPackages();
375private:
376
377 UPROPERTY(VisibleAnywhere, Category = "Packages")
378 TArray<FArticyPackageDef> Packages;
379};
Definition ArticyArchiveReader.h:59
Definition ArticyImportData.h:411
Definition ArticyObject.h:19
Definition ArticyPackage.h:15
Definition ArticyImportData.h:22
void ImportFromJson(const TSharedPtr< FJsonObject > JsonRoot)
Definition ArticyImportData.cpp:36
Definition ArticyBaseTypes.h:18
Definition PackagesImport.h:24
const FArticyId & GetParent() const
Definition PackagesImport.h:85
const EArticyAssetCategory & GetAssetCat() const
Definition PackagesImport.h:99
const FArticyId & GetId() const
Definition PackagesImport.h:78
const FString & GetTechnicalName() const
Definition PackagesImport.h:64
const FString & GetAssetRef() const
Definition PackagesImport.h:92
UArticyObject * GenerateSubAsset(const UArticyImportData *Data, UObject *Outer) const
Definition PackagesImport.cpp:85
void GatherScripts(UArticyImportData *Data) const
Definition PackagesImport.cpp:73
const FString & GetNameAndId() const
Definition PackagesImport.h:71
FName GetType() const
Definition PackagesImport.h:57
Definition PackagesImport.h:167
FArticyId GetId() const
Definition PackagesImport.cpp:363
const FString GetPreviousName() const
Definition PackagesImport.cpp:337
FString GetScriptFragmentHash() const
Definition PackagesImport.cpp:730
TMap< FString, FArticyTexts > GetTexts() const
Definition PackagesImport.cpp:636
void GatherText(const TSharedPtr< FJsonObject > &Json)
Definition PackagesImport.cpp:618
void SetName(const FString &NewName)
Definition PackagesImport.cpp:352
UArticyPackage * GeneratePackageAsset(UArticyImportData *Data) const
Definition PackagesImport.cpp:247
const FString GetName() const
Definition PackagesImport.cpp:327
FString GetFolderName() const
Definition PackagesImport.cpp:305
FString GetFolder() const
Definition PackagesImport.cpp:295
void GatherScripts(UArticyImportData *Data) const
Definition PackagesImport.cpp:235
bool GetIsIncluded() const
Definition PackagesImport.cpp:373
bool operator==(const FArticyPackageDef &Other) const
Definition PackagesImport.h:271
Definition PackagesImport.h:312
void GatherScripts(UArticyImportData *Data) const
Definition PackagesImport.cpp:607
bool ValidateImport(const UArticyArchiveReader &Archive, const TArray< TSharedPtr< FJsonValue > > *Json)
Definition PackagesImport.cpp:515
void ResetPackages()
Definition PackagesImport.cpp:720
static TMap< FString, FArticyTexts > GetTexts(const FArticyPackageDef &Package)
Definition PackagesImport.cpp:647
TSet< FString > GetPackageNames() const
Definition PackagesImport.cpp:696
TArray< FArticyPackageDef > GetPackages() const
Definition PackagesImport.cpp:712
void GenerateAssets(UArticyImportData *Data) const
Definition PackagesImport.cpp:657
Definition ArticyTexts.h:41