7#include "CoreMinimal.h"
8#include "ObjectDefinitionsImport.h"
9#include "PackagesImport.h"
10#include "ArticyPackage.h"
11#include "ArticyArchiveReader.h"
12#include "StringTableGenerator.h"
13#include "ArticyImportData.generated.h"
26 UPROPERTY(VisibleAnywhere, Category =
"Settings")
27 FString set_TextFormatter =
"";
30 UPROPERTY(VisibleAnywhere, Category =
"Settings")
33 UPROPERTY(VisibleAnywhere, Category =
"Settings")
34 FString set_IncludedNodes =
"";
36 UPROPERTY(VisibleAnywhere, Category =
"Settings")
39 UPROPERTY(VisibleAnywhere, Category =
"Settings")
40 FString ExportVersion =
"";
42 UPROPERTY(VisibleAnywhere, Category =
"Settings")
43 FString GlobalVariablesHash =
"";
45 UPROPERTY(VisibleAnywhere, Category =
"Settings")
46 FString ObjectDefinitionsHash =
"";
48 UPROPERTY(VisibleAnywhere, Category =
"Settings")
49 FString ObjectDefinitionsTextHash =
"";
51 UPROPERTY(VisibleAnywhere, Category =
"Settings")
52 FString ScriptFragmentsHash =
"";
54 UPROPERTY(VisibleAnywhere, Category =
"Settings")
55 FString HierarchyHash =
"";
57 UPROPERTY(VisibleAnywhere, Category =
"Settings")
58 FString ScriptMethodsHash =
"";
62 bool DidObjectDefsOrGVsChange()
const {
return bObjectDefsOrGVsChanged; }
63 bool DidScriptFragmentsChange()
const {
return bScriptFragmentsChanged; }
65 void SetObjectDefinitionsRebuilt() { bObjectDefsOrGVsChanged =
false; }
66 void SetScriptFragmentsRebuilt() { bScriptFragmentsChanged =
false; }
68 void SetObjectDefinitionsNeedRebuild() { bObjectDefsOrGVsChanged =
true; }
69 void SetScriptFragmentsNeedRebuild() { bScriptFragmentsChanged =
true; }
74 UPROPERTY(VisibleAnywhere, Category =
"Settings", meta = (DisplayName =
"set_Localization - unused in UE"))
75 bool set_Localization = false;
78 bool bObjectDefsOrGVsChanged = false;
80 bool bScriptFragmentsChanged = false;
92 UPROPERTY(VisibleAnywhere, Category =
"Project")
94 UPROPERTY(VisibleAnywhere, Category =
"Project")
96 UPROPERTY(VisibleAnywhere, Category =
"Project")
98 UPROPERTY(VisibleAnywhere, Category =
"Project")
99 FString TechnicalName;
108enum class EArticyType : uint8
113 ADT_MultiLanguageString
125 UPROPERTY(VisibleAnywhere, Category =
"Variable")
127 UPROPERTY(VisibleAnywhere, Category =
"Variable")
128 EArticyType Type = EArticyType::ADT_String;
129 UPROPERTY(VisibleAnywhere, Category =
"Variable")
132 UPROPERTY(VisibleAnywhere, Category =
"Variable")
133 bool BoolValue =
false;
134 UPROPERTY(VisibleAnywhere, Category =
"Variable")
136 UPROPERTY(VisibleAnywhere, Category =
"Variable")
156 UPROPERTY(VisibleAnywhere, Category =
"Namespace")
158 UPROPERTY(VisibleAnywhere, Category =
"Namespace")
160 UPROPERTY(VisibleAnywhere, Category =
"Namespace")
163 UPROPERTY(VisibleAnywhere, Category =
"Namespace")
178 UPROPERTY(VisibleAnywhere, Category =
"GlobalVariables")
179 TArray<FArticyGVNamespace> Namespaces;
190struct FAIDScriptMethodParameter
194 FAIDScriptMethodParameter() {}
195 FAIDScriptMethodParameter(FString InType, FString InName) : Type(InType), Name(InName) {}
197 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
200 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
213 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
215 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
216 FString BlueprintName;
217 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
218 bool bIsOverloadedFunction =
false;
221 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
224 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
227 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
236 void ImportFromJson(TSharedPtr<FJsonObject> Json, TSet<FString>& OverloadedMethods);
239 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
252 UPROPERTY(VisibleAnywhere, Category =
"ScriptMethods")
253 TArray<FAIDScriptMethod> ScriptMethods;
267 UPROPERTY(VisibleAnywhere, Category =
"Language")
269 UPROPERTY(VisibleAnywhere, Category =
"Language")
270 FString ArticyLanguageId;
271 UPROPERTY(VisibleAnywhere, Category =
"Language")
272 FString LanguageName;
273 UPROPERTY(VisibleAnywhere, Category =
"Language")
274 bool IsVoiceOver =
false;
288 UPROPERTY(VisibleAnywhere, Category =
"Languages")
289 TMap<FString, FArticyLanguageDef> Languages;
302 TArray<FArticyId> Values;
316 UPROPERTY(VisibleAnywhere, Category =
"HierarchyObject")
318 UPROPERTY(VisibleAnywhere, Category =
"HierarchyObject")
319 FString TechnicalName;
320 UPROPERTY(VisibleAnywhere, Category =
"HierarchyObject")
323 UPROPERTY(VisibleAnywhere, Category =
"HierarchyObject")
324 TArray<UADIHierarchyObject*> Children;
338 UPROPERTY(VisibleAnywhere, Category =
"Hierarchy")
353 UPROPERTY(VisibleAnywhere, Category =
"Script")
354 FString OriginalFragment =
"";
355 UPROPERTY(VisibleAnywhere, Category =
"Script")
356 FString ParsedFragment =
"";
357 UPROPERTY(VisibleAnywhere, Category =
"Script")
358 bool bIsInstruction =
false;
362 return bIsInstruction == Other.bIsInstruction && OriginalFragment == Other.OriginalFragment;
368 return GetTypeHash(A.OriginalFragment) ^ GetTypeHash(A.bIsInstruction);
379 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
381 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
383 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
385 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
387 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
389 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
391 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
393 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
396 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
397 TSet<FArticyExpressoFragment> ScriptFragments;
399 UPROPERTY(VisibleAnywhere, Category =
"Imported")
400 TArray<TSoftObjectPtr<UArticyPackage>> ImportedPackages;
402 UPROPERTY(VisibleAnywhere, Category =
"Imported")
403 TMap<FArticyId, FArticyIdArray> ParentChildrenCache;
417 UPROPERTY(VisibleAnywhere, Instanced, Category = ImportSettings)
418 class UAssetImportData* ImportData;
420 void GetAssetRegistryTags(TArray<FAssetRegistryTag>& OutTags)
const override;
426 const static TWeakObjectPtr<UArticyImportData>
GetImportData();
427 const FAdiSettings& GetSettings()
const {
return Settings; }
430 const FArticyGVInfo& GetGlobalVars()
const {
return GlobalVariables; }
431 const FADIHierarchy& GetHierarchy()
const {
return Hierarchy; }
435 TArray<TSoftObjectPtr<UArticyPackage>>& GetPackages() {
return ImportedPackages; }
437 const TArray<TSoftObjectPtr<UArticyPackage>>& GetPackages()
const {
return ImportedPackages; }
439 const TArray<FAIDScriptMethod>& GetUserMethods()
const {
return UserMethods.ScriptMethods; }
443 const TSet<FArticyExpressoFragment>& GetScriptFragments()
const {
return ScriptFragments; }
446 const TMap<FArticyId, FArticyIdArray>& GetParentChildrenCache()
const {
return ParentChildrenCache; }
450 bool HasCachedVersion()
const {
return bHasCachedVersion; }
452 void SetInitialImportComplete() { bHasCachedVersion =
true; }
454 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
459 UPROPERTY(VisibleAnywhere, Category =
"Articy")
464 bool bHasCachedVersion =
false;
468 friend class FArticyEditorFunctionLibrary;
470 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
472 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
474 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
476 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
478 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
480 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
482 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
485 UPROPERTY(VisibleAnywhere, Category =
"ImportData")
486 TSet<FArticyExpressoFragment> ScriptFragments;
488 UPROPERTY(VisibleAnywhere, Category =
"Imported")
489 TArray<TSoftObjectPtr<UArticyPackage>> ImportedPackages;
491 UPROPERTY(VisibleAnywhere, Category =
"Imported")
492 TMap<FArticyId, FArticyIdArray> ParentChildrenCache;
494 void ImportAudioAssets(
const FString& BaseContentDir);
495 int ProcessStrings(
StringTableGenerator* CsvOutput,
const TMap<FString, FArticyTexts>& Data,
const TPair<FString, FArticyLanguageDef>& Language);
A class to generate and manage string tables in CSV format.
Definition StringTableGenerator.h:19
Definition ArticyImportData.h:312
static UADIHierarchyObject * CreateFromJson(UObject *Outer, const TSharedPtr< FJsonObject > JsonObject)
Definition ArticyImportData.cpp:473
Definition ArticyArchiveReader.h:59
Definition ArticyImportData.h:411
TArray< UArticyPackage * > GetPackagesDirect()
Definition ArticyImportData.cpp:1185
void PostImport()
Definition ArticyImportData.cpp:598
void AddChildToParentCache(FArticyId Parent, FArticyId Child)
Definition ArticyImportData.cpp:1400
void PostInitProperties() override
Definition ArticyImportData.cpp:563
bool ImportFromJson(const UArticyArchiveReader &Archive, const TSharedPtr< FJsonObject > RootObject)
Definition ArticyImportData.cpp:612
void BuildCachedVersion()
Definition ArticyImportData.cpp:1411
void GatherScripts()
Definition ArticyImportData.cpp:1199
void AddScriptFragment(const FString &Fragment, const bool bIsInstruction)
Definition ArticyImportData.cpp:1211
static const TWeakObjectPtr< UArticyImportData > GetImportData()
Definition ArticyImportData.cpp:1138
void ResolveCachedVersion()
Definition ArticyImportData.cpp:1429
Definition ArticyImportData.h:334
Definition ArticyImportData.h:191
Definition ArticyImportData.h:209
TArray< FString > ArgumentList
Definition ArticyImportData.h:225
TArray< FString > OriginalParameterTypes
Definition ArticyImportData.h:228
const FString GetCPPParameters() const
Definition ArticyImportData.cpp:319
TArray< FAIDScriptMethodParameter > ParameterList
Definition ArticyImportData.h:222
const FString GetOriginalParametersForDisplayName() const
Definition ArticyImportData.cpp:364
const FString & GetCPPReturnType() const
Definition ArticyImportData.cpp:253
const FString & GetCPPDefaultReturn() const
Definition ArticyImportData.cpp:276
const FString GetArguments() const
Definition ArticyImportData.cpp:347
void ImportFromJson(TSharedPtr< FJsonObject > Json, TSet< FString > &OverloadedMethods)
Definition ArticyImportData.cpp:382
Definition ArticyImportData.h:248
Definition ArticyImportData.h:22
void ImportFromJson(const TSharedPtr< FJsonObject > JsonRoot)
Definition ArticyImportData.cpp:36
bool set_UseScriptSupport
Definition ArticyImportData.h:31
Definition ArticyImportData.h:349
Definition ArticyImportData.h:174
Definition ArticyImportData.h:151
FString Namespace
Definition ArticyImportData.h:157
void ImportFromJson(const TSharedPtr< FJsonObject > JsonNamespace, const UArticyImportData *Data)
Definition ArticyImportData.cpp:197
Definition ArticyImportData.h:121
FString GetCPPValueString() const
Definition ArticyImportData.cpp:119
FString GetCPPTypeString() const
Definition ArticyImportData.cpp:96
Definition ArticyImportData.h:297
Definition ArticyBaseTypes.h:18
Definition ArticyImportData.h:376
Definition ArticyImportData.h:263
Definition ArticyImportData.h:284
Definition ObjectDefinitionsImport.h:485
Definition PackagesImport.h:312
Definition ArticyImportData.h:88