Files
BusyRabbit/Plugins/UnrealSharp/Source/UnrealSharpCore/CSFieldName.h
wyatt 648386cd73 Lua向C#逻辑迁移 一期 #13
将整个插件代码上传
2025-10-26 21:48:39 +08:00

38 lines
975 B
C++

#pragma once
#include "CSNamespace.h"
struct UNREALSHARPCORE_API FCSFieldName
{
FCSFieldName() = default;
FCSFieldName(FName Name, FName Namespace) : Name(Name), Namespace(Namespace) {}
FCSFieldName(UField* Field);
FName GetFName() const { return Name; }
FString GetName() const { return Name.ToString(); }
bool IsValid() const { return Name != NAME_None; }
FCSNamespace GetNamespace() const { return Namespace; }
UPackage* GetPackage() const { return Namespace.GetPackage(); }
FName GetPackageName() const { return Namespace.GetPackageName(); }
FName GetFullName() const
{
return *FString::Printf(TEXT("%s.%s"), *Namespace.GetName(), *Name.ToString());
}
bool operator == (const FCSFieldName& Other) const
{
return Name == Other.Name && Namespace == Other.Namespace;
}
friend uint32 GetTypeHash(const FCSFieldName& Field)
{
return GetTypeHash(Field.Name) ^ GetTypeHash(Field.Namespace);
}
private:
FName Name;
FCSNamespace Namespace;
};