33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include "CoreMinimal.h"
 | 
						|
#include "CSGlueGenerator.h"
 | 
						|
#include "Modules/ModuleManager.h"
 | 
						|
 | 
						|
class UCSGlueGenerator;
 | 
						|
 | 
						|
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnRuntimeGlueChanged, UCSGlueGenerator*, const FString&);
 | 
						|
 | 
						|
DECLARE_LOG_CATEGORY_EXTERN(LogUnrealSharpRuntimeGlue, Log, All);
 | 
						|
 | 
						|
class FUnrealSharpRuntimeGlueModule : public IModuleInterface
 | 
						|
{
 | 
						|
public:
 | 
						|
    virtual void StartupModule() override;
 | 
						|
    virtual void ShutdownModule() override;
 | 
						|
 | 
						|
    UNREALSHARPRUNTIMEGLUE_API static FUnrealSharpRuntimeGlueModule& Get()
 | 
						|
    {
 | 
						|
        return FModuleManager::LoadModuleChecked<FUnrealSharpRuntimeGlueModule>("UnrealSharpRuntimeGlue");
 | 
						|
    }
 | 
						|
    UNREALSHARPRUNTIMEGLUE_API void ForceRefreshRuntimeGlue();
 | 
						|
    UNREALSHARPRUNTIMEGLUE_API FOnRuntimeGlueChanged& GetOnRuntimeGlueChanged() { return OnRuntimeGlueChanged; }
 | 
						|
    
 | 
						|
private:
 | 
						|
    void InitializeRuntimeGlueGenerators();
 | 
						|
    void OnModulesChanged(FName ModuleName, EModuleChangeReason Reason);
 | 
						|
    
 | 
						|
    TMap<TObjectKey<UClass>, UCSGlueGenerator*> RuntimeGlueGenerators;
 | 
						|
    FOnRuntimeGlueChanged OnRuntimeGlueChanged;
 | 
						|
};
 |