/
linkfly
/
MasterKnight
Обзор
Документация
Войти
/
linkfly
/
MasterKnight
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
Plugins/Developer/RiderLink/Source/RiderShaderInfo/RiderShaderInfo.cpp
37 строк
1 KB
Сергей Катревич
lesson-9 in progress, RiderLink added
29 дек 2025, 08:07
29 дек 2025, 08:07
04d607e
Код
Авторство
О чём код?
#include "RiderShaderInfo.h" #include "HAL/FileManager.h" #include "Interfaces/IPluginManager.h" #include "Misc/FileHelper.h" #include "Modules/ModuleManager.h" #include "ShaderCore.h" IMPLEMENT_MODULE(FRiderShaderInfoModule, RiderShaderInfo); void FRiderShaderInfoModule::StartupModule() { const TSharedPtr<IPlugin> Plugin = IPluginManager::Get().FindPlugin(TEXT("RiderLink")); if(!Plugin.IsValid()) return; const FString MappingFile = FPaths::Combine(Plugin->GetBaseDir(), TEXT("Intermediate"), TEXT("FileSystemMappings.ini")); const FString TmpMappingFile = FPaths::Combine(Plugin->GetBaseDir(), TEXT("Intermediate"), TEXT("~FileSystemMappings.ini")); const TMap<FString, FString> ShaderMappings = AllShaderSourceDirectoryMappings(); const TArray<FString> Mappings = [&ShaderMappings]()->TArray<FString> { TArray<FString> Result; for(const TTuple<FString, FString>& Pair : ShaderMappings) { Result.Add(FString::Printf(TEXT("%s=%s"), *Pair.Key, *FPaths::ConvertRelativePathToFull(Pair.Value))); } return Result; }(); if(IFileManager::Get().FileExists(*MappingFile)) { TArray<FString> Result; FFileHelper::LoadFileToStringArray(Result, *MappingFile); if(Mappings == Result) return; } FFileHelper::SaveStringArrayToFile(Mappings, *TmpMappingFile); IFileManager::Get().Move(*MappingFile, *TmpMappingFile, true, true); }