Files
UnrealEngineUWP/Engine/Plugins/Runtime/GeometryCache/Source/GeometryCacheEd/Private/GeometryCacheEdModule.cpp
henrik karlsson 9183978e29 [Engine/Plugins]
* Removed includes (using IWYU) in private files

#preflight 63c79978ac35a0e9dabbe408
#rb none

[CL 23770038 by henrik karlsson in ue5-main branch]
2023-01-19 00:48:07 -05:00

58 lines
2.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "GeometryCacheEdModule.h"
#include "AssetTypeActions_GeometryCache.h"
#include "GeometryCache.h"
#include "GeometryCacheAssetBroker.h"
#include "GeometryCacheComponent.h"
#include "GeometryCacheModule.h"
#include "GeometryCacheThumbnailRenderer.h"
#include "NiagaraEditorModule.h"
#include "NiagaraGeometryCacheRendererProperties.h"
IMPLEMENT_MODULE(FGeometryCacheEdModule, GeometryCacheEd)
void FGeometryCacheEdModule::StartupModule()
{
LLM_SCOPE_BYTAG(GeometryCache);
FAssetToolsModule& AssetToolsModule = FAssetToolsModule::GetModule();
IAssetTools& AssetTools = AssetToolsModule.Get();
AssetAction = new FAssetTypeActions_GeometryCache();
AssetTools.RegisterAssetTypeActions(MakeShareable(AssetAction));
AssetBroker = new FGeometryCacheAssetBroker();
FComponentAssetBrokerage::RegisterBroker(MakeShareable(AssetBroker), UGeometryCacheComponent::StaticClass(), true, true);
UThumbnailManager::Get().RegisterCustomRenderer(UGeometryCache::StaticClass(), UGeometryCacheThumbnailRenderer::StaticClass());
FNiagaraEditorModule& NiagaraEditorModule = FNiagaraEditorModule::Get();
NiagaraEditorModule.RegisterRendererCreationInfo(FNiagaraRendererCreationInfo(
UNiagaraGeometryCacheRendererProperties::StaticClass()->GetDisplayNameText(),
FText::FromString(UNiagaraGeometryCacheRendererProperties::StaticClass()->GetDescription()),
UNiagaraGeometryCacheRendererProperties::StaticClass()->GetClassPathName(),
FNiagaraRendererCreationInfo::FRendererFactory::CreateLambda([](UObject* OuterEmitter)
{
UNiagaraGeometryCacheRendererProperties* NewRenderer = NewObject<UNiagaraGeometryCacheRendererProperties>(OuterEmitter, NAME_None, RF_Transactional);
if(ensure(NewRenderer->GeometryCaches.Num() == 1))
{
FSoftObjectPath DefaultGeometryCache(TEXT("GeometryCache'/Niagara/DefaultAssets/GeometryCache/DefaultGeometryCacheAsset.DefaultGeometryCacheAsset'"));
NewRenderer->GeometryCaches[0].GeometryCache = Cast<UGeometryCache>(DefaultGeometryCache.TryLoad());
}
return NewRenderer;
})));
}
void FGeometryCacheEdModule::ShutdownModule()
{
if (UObjectInitialized())
{
FAssetToolsModule& AssetToolsModule = FAssetToolsModule::GetModule();
IAssetTools& AssetTools = AssetToolsModule.Get();
AssetTools.UnregisterAssetTypeActions(AssetAction->AsShared());
FComponentAssetBrokerage::UnregisterBroker(MakeShareable(AssetBroker));
UThumbnailManager::Get().UnregisterCustomRenderer(UGeometryCache::StaticClass());
}
}