44 lines
1.5 KiB
C++
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;
|
|
};
|
|
|