28 lines
		
	
	
		
			905 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			905 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "CSGlueGenerator.h"
 | |
| #include "UnrealSharpRuntimeGlue.h"
 | |
| #include "Logging/StructuredLog.h"
 | |
| #include "UnrealSharpProcHelper/CSProcHelper.h"
 | |
| 
 | |
| void UCSGlueGenerator::SaveRuntimeGlue(const FCSScriptBuilder& ScriptBuilder, const FString& FileName, const FString& Suffix)
 | |
| {
 | |
| 	const FString Path = FPaths::Combine(FCSProcHelper::GetProjectGlueFolderPath(), FileName + Suffix);
 | |
| 
 | |
| 	FString CurrentRuntimeGlue;
 | |
| 	FFileHelper::LoadFileToString(CurrentRuntimeGlue, *Path);
 | |
| 
 | |
| 	if (CurrentRuntimeGlue == ScriptBuilder.ToString())
 | |
| 	{
 | |
| 		// No changes, return
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	if (!FFileHelper::SaveStringToFile(ScriptBuilder.ToString(), *Path))
 | |
| 	{
 | |
| 		UE_LOGFMT(LogUnrealSharpRuntimeGlue, Error, "Failed to save runtime glue to {0}", *Path);
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	UE_LOGFMT(LogUnrealSharpRuntimeGlue, Display, "Saved {0}", *FileName);
 | |
| 	FUnrealSharpRuntimeGlueModule::Get().GetOnRuntimeGlueChanged().Broadcast(this, Path);
 | |
| }
 |