Files
UnrealEngine/Engine/Plugins/Runtime/GameFeatures/Source/GameFeaturesEditor/Public/GameFeaturePluginTemplate.h
2025-05-18 13:04:45 +08:00

36 lines
1.5 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Features/IPluginsEditorFeature.h"
#include "GameFeatureData.h"
#include "PluginDescriptor.h"
/**
* Used to create custom templates for GameFeaturePlugins.
*/
struct GAMEFEATURESEDITOR_API FGameFeaturePluginTemplateDescription : public FPluginTemplateDescription
{
FGameFeaturePluginTemplateDescription(FText InName, FText InDescription, FString InOnDiskPath, FString InDefaultSubfolder, FString InDefaultPluginName
, TSubclassOf<UGameFeatureData> GameFeatureDataClassOverride, FString GameFeatureDataNameOverride, EPluginEnabledByDefault InEnabledByDefault);
virtual bool ValidatePathForPlugin(const FString& ProposedAbsolutePluginPath, FText& OutErrorMessage) override;
virtual void UpdatePathWhenTemplateSelected(FString& InOutPath) override;
virtual void UpdatePathWhenTemplateUnselected(FString& InOutPath) override;
virtual void UpdatePluginNameTextWhenTemplateSelected(FText& OutPluginNameText) override;
virtual void UpdatePluginNameTextWhenTemplateUnselected(FText& OutPluginNameText) override;
virtual void CustomizeDescriptorBeforeCreation(FPluginDescriptor& Descriptor) override;
virtual void OnPluginCreated(TSharedPtr<IPlugin> NewPlugin) override;
FString GetGameFeatureRoot() const;
bool IsRootedInGameFeaturesRoot(const FString& InStr) const;
FString DefaultSubfolder;
FString DefaultPluginName;
TSubclassOf<UGameFeatureData> GameFeatureDataClass;
FString GameFeatureDataName;
EPluginEnabledByDefault PluginEnabledByDefault = EPluginEnabledByDefault::Disabled;
};