55 lines
1.9 KiB
C++
Raw Normal View History

2025-06-24 15:01:58 +08:00
#include "ProjectFishEditor.h"
2025-08-29 16:26:42 +08:00
#include "AssetTypeActions_Base.h"
2025-06-24 15:01:58 +08:00
#include "DataTableRowSelectorCustomization.h"
2025-08-29 16:26:42 +08:00
#include "AssetActions/BagShapeAssetTypeAction.h"
2025-06-24 15:01:58 +08:00
#define LOCTEXT_NAMESPACE "FProjectFishEditorModule"
void FProjectFishEditorModule::StartupModule()
{
FPropertyEditorModule& PropModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
PropModule.RegisterCustomPropertyTypeLayout("SkillDataConfig"
, FOnGetPropertyTypeCustomizationInstance::CreateStatic(&FDataTableRowSelectorCustomization::MakeInstance));
2025-08-29 16:26:42 +08:00
//注册资源类型编辑器
RegisterAssetTypeActions();
2025-06-24 15:01:58 +08:00
}
void FProjectFishEditorModule::ShutdownModule()
{
if ( FPropertyEditorModule* PropModule = FModuleManager::GetModulePtr<FPropertyEditorModule>("PropertyEditor"))
{
PropModule->UnregisterCustomPropertyTypeLayout("SkillDataConfig");
}
2025-08-29 16:26:42 +08:00
UnregisterAssetTypeActions();
}
void FProjectFishEditorModule::RegisterAssetTypeActions()
{
FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools");
IAssetTools& AssetTools = AssetToolsModule.Get();
//BagShape
TSharedRef<FAssetTypeActions_Base> BagShapeAction = MakeShareable(new FBagShapeAssetTypeAction);
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();
2025-06-24 15:01:58 +08:00
}
#undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE(FProjectFishEditorModule, ProjectFishEditor)