private WFR _WCC_CookData(WF_Settings settings) { settings.LOGGER.LogString($"--------------------------------------------------------------------------"); settings.LOGGER.LogString($"-- WCC_LITE: COOK pm: {settings.PATCH_MODE}"); settings.LOGGER.LogString($"--------------------------------------------------------------------------"); try { WFR result = WFR.WFR_Error; // setup *all* seedfiles for cooking: hubs, dlc string sp = $"{settings.SEEDFILE_PREFIX}*.files"; var seedfiles = Directory.GetFiles(settings.DIR_TMP(), sp, SearchOption.TopDirectoryOnly); foreach (var file in seedfiles) { WCC_SEEDFILES += $"-seed={file}"; } // Note: trimdir MUST be lowercased! WCC_Command cmd = new cook() { Platform = platform.pc, trimdir = Path.Combine("dlc", $"dlc{settings.MODNAME_LC()}"), outdir = settings.DIR_COOKED_DLC() }; // run as arguments because of multiple seedfiles string args = cmd.CommandLine; args += $" {WCC_SEEDFILES}"; result = WCC_Task.RunArgsSync(cmd.Name, args); //cleanup if (Directory.Exists(settings.DIR_COOKED_FILES_DB())) { Directory.Delete(settings.DIR_COOKED_FILES_DB()); } //move to prevent beeing packed into mod if (File.Exists(Path.Combine(settings.DIR_COOKED_DLC(), "cook.db"))) { File.Move(Path.Combine(settings.DIR_COOKED_DLC(), "cook.db"), Path.Combine(settings.DIR_COOKED_FILES_DB(), "cook.db")); } settings.LOGGER.LogString("done."); return(result); } catch (Exception ex) { settings.LOGGER.LogString(ex.ToString()); throw ex; } }
private WFR _WCC_GenerateTextureCache(WF_Settings settings) { settings.LOGGER.LogString($"--------------------------------------------------------------------------"); settings.LOGGER.LogString($"-- WCC_LITE: GENERATE TEXTURE CACHE pm: {settings.PATCH_MODE}"); settings.LOGGER.LogString($"--------------------------------------------------------------------------"); if (!Directory.Exists(Path.Combine(settings.DIR_UNCOOKED_TEXTURES(), settings.DIR_DLC_GAMEPATH()))) { settings.LOGGER.LogString($"WARNING: no textures found in {Path.Combine(settings.DIR_UNCOOKED_TEXTURES(), settings.DIR_DLC_GAMEPATH())}"); return(WFR.WFR_Error); } try { WFR result_cook = WFR.WFR_Error; WFR result_cache = WFR.WFR_Error; if (Directory.Exists(settings.DIR_COOKED_TEXTURES_DB())) { Directory.Delete(settings.DIR_COOKED_TEXTURES_DB()); } // cook textures WCC_Command cook = new cook() { Platform = platform.pc, mod = settings.DIR_UNCOOKED_TEXTURES(), basedir = settings.DIR_UNCOOKED_TEXTURES(), outdir = settings.DIR_COOKED_DLC() }; result_cook = WCC_Task.RunCommandSync(cook); if (result_cook == WFR.WFR_Error) { return(WFR.WFR_Error); } // move so it is separated from "normal" files cook.db if (File.Exists(Path.Combine(settings.DIR_COOKED_DLC(), "cook.db"))) { File.Delete(Path.Combine(settings.DIR_COOKED_DLC(), "cook.db")); } // build texture cache WCC_Command buildcache = new buildcache() { builder = cachebuilder.textures, DataBase = settings.DIR_COOKED_TEXTURES_DB(), basedir = settings.DIR_UNCOOKED_TEXTURES(), Out = Path.Combine(settings.DIR_DLC_CONTENT(), "texture.cache"), Platform = platform.pc }; result_cache = WCC_Task.RunCommandSync(buildcache); if (result_cache == WFR.WFR_Error) { return(WFR.WFR_Error); } settings.LOGGER.LogString("done."); return(WFR.WFR_Finished); } catch (Exception ex) { settings.LOGGER.LogString(ex.ToString()); throw ex; } }