Files
BusyRabbit/Plugins/UnrealSharp/Source/UnrealSharpEditor/Plugins/CSPluginTemplateDescription.cpp
wyatt 648386cd73 Lua向C#逻辑迁移 一期 #13
将整个插件代码上传
2025-10-26 21:48:39 +08:00

36 lines
1.3 KiB
C++

#include "CSPluginTemplateDescription.h"
#include "Interfaces/IPluginManager.h"
#include "UnrealSharpEditor/UnrealSharpEditor.h"
void FCSPluginTemplateDescription::OnPluginCreated(const TSharedPtr<IPlugin> NewPlugin)
{
FPluginTemplateDescription::OnPluginCreated(NewPlugin);
const FString ModuleName = FString::Printf(TEXT("Managed%s"), *NewPlugin->GetName());
const FString ProjectPath = NewPlugin->GetBaseDir() / "Script";
const FString GlueProjectName = FString::Printf(TEXT("%s.Glue"), *NewPlugin->GetName());
if (bRequiresGlue)
{
CreateCodeModule(GlueProjectName, ProjectPath, GlueProjectName, NewPlugin->GetBaseDir(), false);
}
CreateCodeModule(ModuleName, ProjectPath, GlueProjectName, NewPlugin->GetBaseDir(), bRequiresGlue);
}
void FCSPluginTemplateDescription::CreateCodeModule(const FString& ModuleName, const FString& ProjectPath,
const FString& GlueProjectName, const FString& PluginPath, const bool bIncludeGlueProject)
{
TMap<FString, FString> Arguments;
Arguments.Add(TEXT("GlueProjectName"), GlueProjectName);
if (!bIncludeGlueProject)
{
Arguments.Add(TEXT("SkipIncludeProjectGlue"), TEXT("true"));
}
FUnrealSharpEditorModule::Get().AddNewProject(ModuleName, ProjectPath, PluginPath, Arguments);
}