void ForLoop(int j, Block Target, analyze A) { for (int i = 0; i < j; i += 1) { A(Target); } }
private WFR _WCC_analyze(WF_Settings settings) { settings.LOGGER.LogString($"--------------------------------------------------------------------------"); settings.LOGGER.LogString($"-- WCC_LITE: ANALYZE FILES pm: {settings.PATCH_MODE}"); settings.LOGGER.LogString($"--------------------------------------------------------------------------"); try { if (!Directory.Exists(settings.DIR_TMP())) { Directory.CreateDirectory(settings.DIR_TMP()); } // process all worlds IF any world was generated if (settings.ENCODE_WORLD || settings.WCC_ANALYZE_WORLD) { //get all folders inside the levels directory string levelDir = Path.Combine(settings.DIR_UNCOOKED(), settings.DIR_DLC_GAMEPATH(), "levels"); var levels = Directory.GetDirectories(levelDir); for (int i = 0; i < levels.Length; i++) { string level = levels[i]; //path string worldname = Path.GetDirectoryName(level); settings.LOGGER.LogString($"analyze world for: {worldname}..."); //check i w2w file in subfolder? string worldfile = Path.Combine(levelDir, worldname, $"{worldname}.w2w"); if (File.Exists(worldfile)) { //LOG WCC_LITE: ANALYZE WORLD FOR !WORLDNAME! //call wcc_lite WCC_Command cmd = new analyze() { Analyzer = analyzers.world, Object = Path.Combine(settings.DIR_DLC_GAMEPATH(), "levels", worldname, $"{worldname}.w2w"), Out = Path.Combine(settings.DIR_TMP(), $"{settings.SEEDFILE_PREFIX}world.{worldname}.files") }; WFR result = WCC_Task.RunCommandSync(cmd); //if any wcc operation fails return if (result == WFR.WFR_Error) { return(WFR.WFR_Error); } } } } else //process dlc IF something changed { if (settings.ENCODE_QUEST || settings.WCC_IMPORT_MODELS) { //LOG WCC_LITE: ANALYZE DLC //call wcc_lite WCC_Command cmd = new analyze() { Analyzer = analyzers.r4dlc, reddlc = Path.Combine(settings.DIR_DLC_GAMEPATH(), $"dlc{settings.MODNAME}.reddlc"), Out = Path.Combine(settings.DIR_TMP(), $"{settings.SEEDFILE_PREFIX}dlc{settings.MODNAME}.files") }; return(WCC_Task.RunCommandSync(cmd)); } } settings.LOGGER.LogString("done."); return(WFR.WFR_Finished); } catch (Exception ex) { settings.LOGGER.LogString(ex.ToString()); throw ex; } }