76 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #pragma once | |||
|  | 
 | |||
|  | #include "CoreMinimal.h"
 | |||
|  | #include "Engine/DeveloperSettings.h"
 | |||
|  | #include "CSUnrealSharpEditorSettings.generated.h"
 | |||
|  | 
 | |||
|  | UENUM() | |||
|  | enum EAutomaticHotReloadMethod : uint8 | |||
|  | { | |||
|  | 	// Automatically Hot Reloads when script changes are saved
 | |||
|  | 	OnScriptSave, | |||
|  | 	// Automatically Hot Reloads when the built .NET modules changed (build the C# project in your IDE and UnrealSharp will automatically reload)
 | |||
|  | 	OnModuleChange, | |||
|  | 	// Wait for the Editor to gain focus before Hot Reloading
 | |||
|  | 	OnEditorFocus, | |||
|  | 	// Will not Hot Reload automatically
 | |||
|  | 	Off, | |||
|  | }; | |||
|  | 
 | |||
|  | UENUM() | |||
|  | enum ECSBuildConfiguration : uint8 | |||
|  | { | |||
|  | 	Debug, | |||
|  | 	Release, | |||
|  | }; | |||
|  | 
 | |||
|  | UENUM() | |||
|  | enum ECSLoggerVerbosity : uint8 | |||
|  | { | |||
|  | 	// The most minimal output
 | |||
|  | 	Quiet, | |||
|  | 	 | |||
|  | 	// Relatively little output
 | |||
|  | 	Minimal, | |||
|  | 	 | |||
|  | 	// Standard output. This should be the default if verbosity level is not set
 | |||
|  | 	Normal, | |||
|  | 	 | |||
|  | 	// Relatively verbose, but not exhaustive
 | |||
|  | 	Detailed, | |||
|  | 	 | |||
|  | 	// The most verbose and informative verbosity
 | |||
|  | 	Diagnostic | |||
|  | }; | |||
|  | 
 | |||
|  | UCLASS(config = EditorPerProjectUserSettings, meta = (DisplayName = "UnrealSharp Editor Settings")) | |||
|  | class UNREALSHARPEDITOR_API UCSUnrealSharpEditorSettings : public UDeveloperSettings | |||
|  | { | |||
|  | 	GENERATED_BODY() | |||
|  | 
 | |||
|  | public: | |||
|  | 
 | |||
|  | 	UCSUnrealSharpEditorSettings(); | |||
|  | 	 | |||
|  | 	// Whether Hot Reload should automatically start on script save, gaining Editor focus, or not at all.
 | |||
|  | 	UPROPERTY(EditDefaultsOnly, config, Category = "UnrealSharp | Hot Reload") | |||
|  | 	TEnumAsByte<EAutomaticHotReloadMethod> AutomaticHotReloading = OnScriptSave; | |||
|  | 
 | |||
|  | 	// The build configuration to use when building the C# project in the editor.
 | |||
|  | 	UPROPERTY(EditDefaultsOnly, config, Category = "UnrealSharp | Hot Reload") | |||
|  | 	TEnumAsByte<ECSBuildConfiguration> BuildConfiguration = ECSBuildConfiguration::Debug; | |||
|  | 
 | |||
|  | 	// The verbosity level of the logs generated by MSBuild when building the C# project in the editor.
 | |||
|  | 	UPROPERTY(EditDefaultsOnly, config, Category = "UnrealSharp | Hot Reload") | |||
|  | 	TEnumAsByte<ECSLoggerVerbosity> LogVerbosity = ECSLoggerVerbosity::Normal; | |||
|  | 
 | |||
|  | 	// Should we suffix generated types' DisplayName with "TypeName (C#)"?
 | |||
|  | 	// Needs restart to take effect.
 | |||
|  | 	UPROPERTY(EditDefaultsOnly, config, Category = "UnrealSharp | Type Generation") | |||
|  | 	bool bSuffixGeneratedTypes = false; | |||
|  | 
 | |||
|  | 	FString GetBuildConfigurationString() const; | |||
|  | 
 | |||
|  | 	FString GetLogVerbosityString() const; | |||
|  | }; |