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

44 lines
1.5 KiB
C++

#pragma once
#include "KismetCompiler.h"
struct FCSClassMetaData;
struct FCSPropertyMetaData;
struct FCSClassInfo;
class UCSClass;
class UCSBlueprint;
class FCSCompilerContext : public FKismetCompilerContext
{
public:
FCSCompilerContext(UCSBlueprint* Blueprint, FCompilerResultsLog& InMessageLog, const FKismetCompilerOptions& InCompilerOptions);
// FKismetCompilerContext interface
virtual void FinishCompilingClass(UClass* Class) override;
virtual void OnPostCDOCompiled(const UObject::FPostCDOCompiledContext& Context) override;
virtual void CreateClassVariablesFromBlueprint() override;
virtual void CleanAndSanitizeClass(UBlueprintGeneratedClass* ClassToClean, UObject*& OldCDO) override;
virtual void SpawnNewClass(const FString& NewClassName) override;
virtual void AddInterfacesFromBlueprint(UClass* Class) override;
// End of FKismetCompilerContext interface
protected:
typedef FKismetCompilerContext Super;
private:
void TryValidateSimpleConstructionScript(const TSharedPtr<const FCSClassInfo>& ClassInfo) const;
void GenerateFunctions() const;
UCSClass* GetMainClass() const;
TSharedPtr<const FCSClassInfo> GetClassInfo() const;
TSharedPtr<const FCSClassMetaData> GetTypeMetaData() const;
bool IsDeveloperSettings() const;
void TryInitializeAsDeveloperSettings(const UClass* Class) const;
void TryDeinitializeAsDeveloperSettings(UObject* Settings) const;
void ApplyMetaData();
static bool NeedsToFakeNativeClass(UClass* Class);
void CreateDummyBlueprintVariables(const TArray<FCSPropertyMetaData>& Properties) const;
};