ArticyXImporter
ArticyXImporter for Unreal Engine
Loading...
Searching...
No Matches
ArticyObjectWith_Base.h
1//
2// Copyright (c) 2023 articy Software GmbH & Co. KG. All rights reserved.
3//
4
5#pragma once
6
7#include "ArticyReflectable.h"
8#include "ArticyHelpers.h"
9#include "ArticyObjectWith_Base.generated.h"
10
11UINTERFACE(MinimalAPI, meta=(CannotImplementInterfaceInBlueprint))
12class UArticyObjectWith_Base : public UArticyReflectable { GENERATED_BODY() };
13
27{
28 GENERATED_BODY()
29
30protected:
31
32 template<typename PropType>
33 PropType& GetProperty(const FName& PropName)
34 {
35 auto prop = GetPropPtr<PropType>(PropName);
36
37 if(ensure(prop))
38 return *prop;
39 else
40 {
41 UE_LOG(LogTemp, Warning, TEXT("Cannot get property %s from object %s!"),
42 *PropName.ToString(), _getUObject() ? *_getUObject()->GetName() : TEXT("(nullptr)"));
43 }
44
45 static PropType Empty;
46 return Empty;
47 }
48
49 FText GetStringText(UObject* Outer, const FName& PropName, const FText* BackupText = nullptr)
50 {
51 FText& Key = GetProperty<FText>(PropName);
52 return ArticyHelpers::LocalizeString(Outer, Key, true, BackupText);
53 }
54
55};
Definition ArticyObjectWith_Base.h:27
Definition ArticyReflectable.h:24
TValue * GetPropPtr(FName Property, int32 ArrayIndex=0) const
Definition ArticyReflectable.h:46
Definition ArticyObjectWith_Base.h:12
Definition ArticyReflectable.h:16