#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: NamingTokens

#include "Basic.hpp"

#include "NamingTokens_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "Engine_classes.hpp"


SDK_NAMESPACE_START

// Class NamingTokens.NamingTokens
// 0x00D0 (0x00F8 - 0x0028)
class UNamingTokens : public UObject
{
public:
	uint8                                         Pad_28[0x90];                                      // 0x0028(0x0090)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FNamingTokenData>               CustomTokens;                                      // 0x00B8(0x0010)(Edit, ZeroConstructor, DisableEditOnInstance, Protected, NativeAccessSpecifierProtected)
	struct FNamingTokensEvaluationData            CurrentEvaluationData;                             // 0x00C8(0x0020)(BlueprintVisible, BlueprintReadOnly, Protected, NativeAccessSpecifierProtected)
	class FString                                 Namespace;                                         // 0x00E8(0x0010)(Edit, ZeroConstructor, DisableEditOnInstance, AssetRegistrySearchable, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)

public:
	void OnPostEvaluate();
	void OnPreEvaluate(const struct FNamingTokensEvaluationData& InEvaluationData);
	class FText ProcessTokenTemplateFunction();

	struct FDateTime GetCurrentDateTime() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("NamingTokens")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"NamingTokens")
	}
	static class UNamingTokens* GetDefaultObj()
	{
		return GetDefaultObjImpl<UNamingTokens>();
	}
};
DUMPER7_ASSERTS_UNamingTokens;

// Class NamingTokens.GlobalNamingTokens
// 0x0000 (0x00F8 - 0x00F8)
class UGlobalNamingTokens final : public UNamingTokens
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("GlobalNamingTokens")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"GlobalNamingTokens")
	}
	static class UGlobalNamingTokens* GetDefaultObj()
	{
		return GetDefaultObjImpl<UGlobalNamingTokens>();
	}
};
DUMPER7_ASSERTS_UGlobalNamingTokens;

// Class NamingTokens.NamingTokensEngineSubsystem
// 0x0120 (0x0150 - 0x0030)
class UNamingTokensEngineSubsystem final : public UEngineSubsystem
{
public:
	TMap<class FString, class UNamingTokens*>     CachedNamingTokens;                                // 0x0030(0x0050)(Transient, UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_80[0xD0];                                      // 0x0080(0x00D0)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void ClearCachedNamingTokens();
	struct FNamingTokenResultData EvaluateTokenString(const class FString& InTokenString, const struct FNamingTokenFilterArgs& InFilter, const TArray<class UObject*>& InContexts);
	struct FNamingTokenResultData EvaluateTokenText(const class FText& InTokenText, const struct FNamingTokenFilterArgs& InFilter, const TArray<class UObject*>& InContexts);
	void RegisterGlobalNamespace(const class FString& InNamespace);
	void UnregisterGlobalNamespace(const class FString& InNamespace);

	TArray<class FString> GetAllNamespaces() const;
	TArray<class FString> GetGlobalNamespaces() const;
	TArray<class UNamingTokens*> GetMultipleNamingTokens(const TArray<class FString>& InNamespaces) const;
	class UNamingTokens* GetNamingTokens(const class FString& InNamespace) const;
	class UNamingTokens* GetNamingTokensNative(const class FString& InNamespace) const;
	bool IsGlobalNamespaceRegistered(const class FString& InNamespace) const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("NamingTokensEngineSubsystem")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"NamingTokensEngineSubsystem")
	}
	static class UNamingTokensEngineSubsystem* GetDefaultObj()
	{
		return GetDefaultObjImpl<UNamingTokensEngineSubsystem>();
	}
};
DUMPER7_ASSERTS_UNamingTokensEngineSubsystem;

SDK_NAMESPACE_END
