7#include "ArticyJSONFactory.h"
8#include "PredefinedTypes.h"
9#include "ArticyObject.h"
10#include "ArticyTexts.h"
12#include "ObjectDefinitionsImport.generated.h"
28 UPROPERTY(VisibleAnywhere, Category =
"TemplateConstraint")
29 FString Property =
"";
30 UPROPERTY(VisibleAnywhere, Category =
"TemplateConstraint")
34 UPROPERTY(VisibleAnywhere, Category =
"TemplateConstraint")
61 void ImportFromJson(
const TSharedPtr<FJsonObject> JsonProperty,
const UArticyImportData* Data,
const TArray<FArticyTemplateConstraint>* OptionalConstraints =
nullptr);
77 void GatherScript(
const TSharedPtr<FJsonObject>& JsonValue, UArticyImportData* Data)
const;
91 const TSharedPtr<FJsonObject>& JsonValue,
92 const UArticyImportData* Data,
93 const FString& PackageName)
const;
125 UPROPERTY(VisibleAnywhere, Category =
"ObjectProperty")
127 UPROPERTY(VisibleAnywhere, Category =
"ObjectProperty")
130 UPROPERTY(VisibleAnywhere, Category =
"ObjectProperty")
132 UPROPERTY(VisibleAnywhere, Category =
"ObjectProperty")
133 FString DisplayName =
"";
134 UPROPERTY(VisibleAnywhere, Category =
"ObjectProperty")
135 FString Tooltip =
"";
137 UPROPERTY(VisibleAnywhere, Category =
"ObjectProperty")
152 UPROPERTY(VisibleAnywhere, Category =
"EnumValue")
154 UPROPERTY(VisibleAnywhere, Category =
"EnumValue")
162 void ImportFromJson(
const TPair<FString, TSharedPtr<FJsonValue>> JsonKeyValue);
218 const TSharedPtr<FJsonObject>& Json,
220 const FString& PackageName)
const;
254 UPROPERTY(VisibleAnywhere, Category =
"TemplateFeature")
255 FString TechnicalName =
"";
256 UPROPERTY(VisibleAnywhere, Category =
"TemplateFeature")
257 FString DisplayName =
"";
259 UPROPERTY(VisibleAnywhere, Category =
"TemplateFeature")
262 UPROPERTY(VisibleAnywhere, Category =
"TemplateFeature")
265 UPROPERTY(VisibleAnywhere, Category =
"TemplateFeature")
322 const TSharedPtr<FJsonObject> Values,
324 const FString& PackageName)
const;
338 const TArray<FArticyTemplateFeatureDef>&
GetFeatures()
const {
return Features; }
340 UPROPERTY(VisibleAnywhere, Category =
"Template")
344 UPROPERTY(VisibleAnywhere, Category =
"Template")
345 FString TechnicalName =
"";
346 UPROPERTY(VisibleAnywhere, Category =
"Template")
347 FString DisplayName =
"";
349 UPROPERTY(VisibleAnywhere, Category =
"Template")
360enum class EObjectDefType : uint8
421 const FString& PackageName)
const;
452 const TArray<FArticyTemplateFeatureDef>&
GetFeatures()
const;
454 UPROPERTY(VisibleAnywhere, Category =
"ObjectDef")
458 UPROPERTY(VisibleAnywhere, Category =
"ObjectDef")
459 EObjectDefType DefType = EObjectDefType::Enum;
461 UPROPERTY(VisibleAnywhere, Category =
"ObjectDef")
463 UPROPERTY(VisibleAnywhere, Category =
"ObjectDef")
465 UPROPERTY(VisibleAnywhere, Category =
"ObjectDef")
466 FName InheritsFrom =
"";
469 UPROPERTY(VisibleAnywhere, Category =
"ObjectDef")
472 UPROPERTY(VisibleAnywhere, Category =
"ObjectDef")
476 UPROPERTY(VisibleAnywhere, Category =
"ObjectDef")
510 void GatherText(
const TSharedPtr<FJsonObject>& Json);
545 FClassInfo() =
default;
546 FClassInfo(
const FString& Name, UClass* Class) : CppTypeName(Name), StaticClass(Class) {}
576 static void SetProp(
const FName& OriginalType,
const FName& Property, PROP_SETTER_PARAMS);
591 TMap<FName, FArticyObjectDef>&
GetTypes() {
return Types; }
598 const TMap<FName, FArticyObjectDef>&
GetTypes()
const {
return Types; }
605 TMap<FString, FArticyTexts>&
GetTexts() {
return Texts; }
612 const TMap<FString, FArticyTexts>&
GetTexts()
const {
return Texts; }
619 const TMap<FName, FArticyTemplateFeatureDef>
GetFeatures()
const {
return FeatureDefs; }
627 UPROPERTY(VisibleAnywhere, Category =
"ObjectDefinitions")
630 UPROPERTY(VisibleAnywhere, Category =
"ObjectDefinitions")
637 UPROPERTY(VisibleAnywhere, Category =
"ObjectDefinitions")
638 mutable TSet<FName> FeatureTypes;
640 UPROPERTY(VisibleAnywhere, Category =
"ObjectDefinitions")
A class to generate and manage code files with convenience methods for generating code lines,...
Definition CodeFileGenerator.h:16
Definition ArticyBaseObject.h:25
Definition ArticyImportData.h:411
Definition ArticyObject.h:19
Definition ArticyPrimitive.h:17
Definition ObjectDefinitionsImport.h:148
Definition PackagesImport.h:24
Definition ObjectDefinitionsImport.h:372
void GenerateCode(CodeFileGenerator &header, const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:185
bool IsBaseProperty(FName Property, const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:173
FString GetCppBaseClasses(const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:352
const FName & GetOriginalType() const
Definition ObjectDefinitionsImport.h:445
Definition ObjectDefinitionsImport.h:544
Definition ObjectDefinitionsImport.h:485
static const FString & GetCppDefaultValue(const FName &OriginalType)
Definition ObjectDefinitionsImport.cpp:982
const TMap< FName, FArticyObjectDef > & GetTypes() const
Definition ObjectDefinitionsImport.h:598
static const FClassInfo & GetDefaultBaseClass(const FName &OriginalType, const UArticyImportData *Data)
Definition ObjectDefinitionsImport.cpp:901
void InitializeModel(UArticyPrimitive *Model, const FArticyModelDef &Values, const UArticyImportData *Data, const FString &PackageName) const
Definition ObjectDefinitionsImport.cpp:856
void GatherScripts(const FArticyModelDef &Values, UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:837
static void SetProp(const FName &OriginalType, const FName &Property, PROP_SETTER_PARAMS)
Definition ObjectDefinitionsImport.cpp:1000
bool IsNewFeatureType(const FName &CppType) const
Definition ObjectDefinitionsImport.cpp:1022
FString GetCppType(const FName &OriginalType, const UArticyImportData *Data, const bool bForProperty) const
Definition ObjectDefinitionsImport.cpp:879
TMap< FString, FArticyTexts > & GetTexts()
Definition ObjectDefinitionsImport.h:605
static const FName & GetProviderInterface(const FArticyPropertyDef &Property)
Definition ObjectDefinitionsImport.cpp:943
void ImportFromJson(const TArray< TSharedPtr< FJsonValue > > *Json, const UArticyImportData *Data)
Definition ObjectDefinitionsImport.cpp:785
const TMap< FName, FArticyTemplateFeatureDef > GetFeatures() const
Definition ObjectDefinitionsImport.h:619
const TMap< FString, FArticyTexts > & GetTexts() const
Definition ObjectDefinitionsImport.h:612
TMap< FName, FArticyObjectDef > & GetTypes()
Definition ObjectDefinitionsImport.h:591
void GatherText(const TSharedPtr< FJsonObject > &Json)
Definition ObjectDefinitionsImport.cpp:818
Definition ObjectDefinitionsImport.h:50
const FName & GetOriginalItemType() const
Definition ObjectDefinitionsImport.h:114
const FName & GetOriginalType() const
Definition ObjectDefinitionsImport.h:107
const FName & GetPropetyName() const
Definition ObjectDefinitionsImport.h:100
void GenerateCode(CodeFileGenerator &header, const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:473
void GatherScript(const TSharedPtr< FJsonObject > &JsonValue, UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:486
Definition ObjectDefinitionsImport.h:24
void ImportFromJson(const TSharedPtr< FJsonObject > JsonProperty)
Definition ObjectDefinitionsImport.cpp:607
bool IsLocalized
Definition ObjectDefinitionsImport.h:35
Definition ObjectDefinitionsImport.h:274
void GenerateFeaturesDefs(CodeFileGenerator &header, const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:53
const TArray< FArticyTemplateFeatureDef > & GetFeatures() const
Definition ObjectDefinitionsImport.h:338
FString GetDisplayName() const
Definition ObjectDefinitionsImport.h:331
void GenerateProperties(CodeFileGenerator &header, const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:65
Definition ObjectDefinitionsImport.h:170
FString GetTechnicalName() const
Definition ObjectDefinitionsImport.h:244
void GenerateDefCode(CodeFileGenerator &header, const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:680
FString GetDisplayName() const
Definition ObjectDefinitionsImport.h:251
void GeneratePropertyCode(CodeFileGenerator &header, const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:705
UClass * GetUClass(const UArticyImportData *Data) const
Definition ObjectDefinitionsImport.cpp:755
Definition ArticyTexts.h:41
Definition ArticyType.h:52