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