// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "ExtensionsSystem/ChaosVDExtensionsManager.h" #include "Modules/ModuleManager.h" class FChaosVDExtension; class FChaosVDBuiltInExtensionsModule : public IModuleInterface { public: virtual void StartupModule() override; virtual void ShutdownModule() override; private: template void CreateAndRegisterExtensionInstance(); void UnregisterCreatedExtensions(); TArray> AvailableExtensions; }; template void FChaosVDBuiltInExtensionsModule::CreateAndRegisterExtensionInstance() { TSharedRef NewExtension = MakeShared(); FChaosVDExtensionsManager::Get().RegisterExtension(NewExtension); AvailableExtensions.Add(NewExtension); }