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