diff --git a/Nerfed.Builder/Builder/Builder.cs b/Nerfed.Builder/Builder/Builder.cs index 07a2252..292e26f 100644 --- a/Nerfed.Builder/Builder/Builder.cs +++ b/Nerfed.Builder/Builder/Builder.cs @@ -37,65 +37,69 @@ public void Run(BuildArgs args) CollectAssetFiles(absContentPath, absContentPath, ref contentFiles); } - string importPath = $"{args.ProjectPath}/{PathUtil.ImportFolderName}"; - - ParallelOptions parallelOptions = new ParallelOptions + if (contentFiles.Count > 0) { - MaxDegreeOfParallelism = contentFiles.Count - }; - Parallel.ForEach(contentFiles, parallelOptions, relativeFile => - { - try + string importPath = $"{args.ProjectPath}/{PathUtil.ImportFolderName}"; + + ParallelOptions parallelOptions = new ParallelOptions { - string inFile = $"{args.ProjectPath}/{PathUtil.ContentFolderName}/{relativeFile}"; + MaxDegreeOfParallelism = contentFiles.Count + }; - if (!File.Exists(inFile)) - { - Console.Error.WriteLine($"Asset file '{relativeFile}' not found"); - return; - } - - string outFile = $"{importPath}/{relativeFile}{PathUtil.ImportedFileExtension}"; - - FileInfo inFileInfo = new FileInfo(inFile); - FileInfo outFileInfo = new FileInfo(outFile); - - if (!FileUtil.IsNewer(inFileInfo, outFileInfo)) - { - // File has not changed since last build, no need to build this one. - return; - } - - string outDir = Path.GetDirectoryName(outFile); - if (!Directory.Exists(outDir)) - { - Directory.CreateDirectory(outDir); - } - - string ext = Path.GetExtension(inFile).ToLower(); - if (importers.TryGetValue(ext, out IImporter importer)) - { - importer.Import(inFile, outFile); - } - else - { - rawFileImporter.Import(inFile, outFile); - } - - Console.WriteLine(relativeFile); - } - catch (Exception e) + Parallel.ForEach(contentFiles, parallelOptions, relativeFile => { - Console.Error.WriteLine($"Import error on asset '{relativeFile}': {e.Message}"); - } - }); + try + { + string inFile = $"{args.ProjectPath}/{PathUtil.ContentFolderName}/{relativeFile}"; + + if (!File.Exists(inFile)) + { + Console.Error.WriteLine($"Asset file '{relativeFile}' not found"); + return; + } + + string outFile = $"{importPath}/{relativeFile}{PathUtil.ImportedFileExtension}"; + + FileInfo inFileInfo = new FileInfo(inFile); + FileInfo outFileInfo = new FileInfo(outFile); + + if (!FileUtil.IsNewer(inFileInfo, outFileInfo)) + { + // File has not changed since last build, no need to build this one. + return; + } + + string outDir = Path.GetDirectoryName(outFile); + if (!Directory.Exists(outDir)) + { + Directory.CreateDirectory(outDir); + } + + string ext = Path.GetExtension(inFile).ToLower(); + if (importers.TryGetValue(ext, out IImporter importer)) + { + importer.Import(inFile, outFile); + } + else + { + rawFileImporter.Import(inFile, outFile); + } + + Console.WriteLine(relativeFile); + } + catch (Exception e) + { + Console.Error.WriteLine($"Import error on asset '{relativeFile}': {e.Message}"); + } + }); + } Console.WriteLine($"Build content completed in {stopwatch.Elapsed.TotalSeconds:F2} seconds"); } private void CopyLibs(string projectPath) { - string libDir = $"{Directory.GetCurrentDirectory()}/../../Native/"; + string libDir = $"{AppDomain.CurrentDomain.BaseDirectory}/../../Native/"; if (OperatingSystem.IsWindows()) { libDir += "x64"; diff --git a/Nerfed.Editor/Nerfed.Editor.csproj b/Nerfed.Editor/Nerfed.Editor.csproj index cfa3c24..a9bcbe6 100644 --- a/Nerfed.Editor/Nerfed.Editor.csproj +++ b/Nerfed.Editor/Nerfed.Editor.csproj @@ -27,4 +27,8 @@ + + + +