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;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 |