Esempio n. 1
0
 void ForLoop(int j, Block Target, analyze A)
 {
     for (int i = 0; i < j; i += 1)
     {
         A(Target);
     }
 }
Esempio n. 2
0
        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;
            }
        }