October3d55/M/AutoSettings/Source/AutoSettingsInput/Public/Misc/AutoSettingsInputProjectCon...

45 lines
1.6 KiB
C++

// Copyright Sam Bonifacio. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "AutoSettingsInputConfig.h"
#include "AutoSettingsInputProjectConfig.generated.h"
/**
* Config Subclass used for the page in project settings
* This is separate to the base class, so that project settings do not affect the default values of the base class objects (which makes them easier to test)
*/
UCLASS()
class AUTOSETTINGSINPUT_API UAutoSettingsInputProjectConfig : public UAutoSettingsInputConfig
{
GENERATED_BODY()
public:
UAutoSettingsInputProjectConfig();
// Returns the key group that contains the given key
UFUNCTION(BlueprintPure, Category = "Auto Settings Config", DisplayName = "Get Key Friendly Name")
static FText GetKeyFriendlyNameStatic(FKey Key);
// Returns the key group that contains the given key
UFUNCTION(BlueprintPure, Category = "Auto Settings Config", DisplayName = "Get Key Group")
static FGameplayTag GetKeyGroupStatic(FKey Key);
/**
* Synchronously load all key icon textures in any KeyIconSet(s) with all of the given tags
* Returns all textures that were loaded, which should be stored as a variable for as long as the textures need to remain loaded
*/
UFUNCTION(BlueprintCallable, Category = "Auto Settings Config")
static TArray<UTexture*> LoadKeyIcons(FGameplayTagContainer KeyIconTags);
#if WITH_EDITOR
virtual bool SupportsAutoRegistration() const override { return true; }
virtual FText GetSectionText() const override;
virtual FText GetSectionDescription() const override;
#endif
virtual void PostInitProperties() override;
};