57 lines
2.2 KiB
C++
57 lines
2.2 KiB
C++
#include "ProjectFishEditor.h"
|
|
|
|
#include "AssetTypeActions_Base.h"
|
|
#include "DataTableRowSelectorCustomization.h"
|
|
#include "AssetActions/BagShapeAssetTypeAction.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "FProjectFishEditorModule"
|
|
|
|
void FProjectFishEditorModule::StartupModule()
|
|
{
|
|
FPropertyEditorModule& PropModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
|
|
PropModule.RegisterCustomPropertyTypeLayout("SkillDataConfig"
|
|
, FOnGetPropertyTypeCustomizationInstance::CreateStatic(&FDataTableRowSelectorCustomization::MakeInstance));
|
|
|
|
//注册资源类型编辑器
|
|
RegisterAssetTypeActions();
|
|
}
|
|
|
|
void FProjectFishEditorModule::ShutdownModule()
|
|
{
|
|
if ( FPropertyEditorModule* PropModule = FModuleManager::GetModulePtr<FPropertyEditorModule>("PropertyEditor"))
|
|
{
|
|
PropModule->UnregisterCustomPropertyTypeLayout("SkillDataConfig");
|
|
}
|
|
//注销资源类型编辑器
|
|
UnregisterAssetTypeActions();
|
|
}
|
|
|
|
void FProjectFishEditorModule::RegisterAssetTypeActions()
|
|
{
|
|
FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools");
|
|
IAssetTools& AssetTools = AssetToolsModule.Get();
|
|
//注册自定义的菜单
|
|
EAssetTypeCategories::Type BoxShapeAssetCategory = AssetTools.RegisterAdvancedAssetCategory(FName(TEXT("Bag")), FText::FromString(TEXT("BagSystem")));
|
|
//BagShape
|
|
TSharedRef<FAssetTypeActions_Base> BagShapeAction = MakeShareable(new FBagShapeAssetTypeAction(BoxShapeAssetCategory));
|
|
AssetTools.RegisterAssetTypeActions(BagShapeAction);
|
|
CreatedAssetTypeActions.Add(BagShapeAction);
|
|
}
|
|
|
|
void FProjectFishEditorModule::UnregisterAssetTypeActions()
|
|
{
|
|
if (FModuleManager::Get().IsModuleLoaded("AssetTools"))
|
|
{
|
|
FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools");
|
|
IAssetTools& AssetTools = AssetToolsModule.Get();
|
|
for (auto action : CreatedAssetTypeActions)
|
|
{
|
|
AssetTools.UnregisterAssetTypeActions(action.ToSharedRef());
|
|
}
|
|
}
|
|
CreatedAssetTypeActions.Empty();
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|
|
|
|
IMPLEMENT_MODULE(FProjectFishEditorModule, ProjectFishEditor) |