Esempio n. 1
0
        public static ModificationInfo Parse(string[] commandLineArgs)
        {
            ModificationInfo info = new ModificationInfo();

            for (int i = 0; i < commandLineArgs.Length; i++)
            {
                string param    = commandLineArgs[i];
                string next     = (i < commandLineArgs.Length - 1) ? commandLineArgs[i + 1] : null;
                bool   skipNext = false;

                if (param.Equals(CommonSwitches.TerraTechDir, StringComparison.OrdinalIgnoreCase))
                {
                    info.TerraTechRoot = next;
                    skipNext           = true;
                }

                if (param.Equals(CommonSwitches.AssemblyHash, StringComparison.OrdinalIgnoreCase))
                {
                    info.AcceptedHashes.Add(next);
                    skipNext = true;
                }

                if (param.Equals(CommonSwitches.AssemblyOutput, StringComparison.OrdinalIgnoreCase))
                {
                    info.AssemblyCSharpOutputPath = next;
                    skipNext = true;
                }

                if (param.Equals(CommonSwitches.AccessFile, StringComparison.OrdinalIgnoreCase))
                {
                    info.AccessFilePath = next;
                    skipNext            = true;
                }

                if (param.Equals(CommonSwitches.NuterraData, StringComparison.OrdinalIgnoreCase))
                {
                    info.NuterraData = next;
                    skipNext         = true;
                }

                if (param.Equals(CommonSwitches.NuterraAssembly, StringComparison.OrdinalIgnoreCase))
                {
                    info.NuterraAssembly = next;
                    skipNext             = true;
                }

                if (skipNext)
                {
                    i++;
                }
            }
            info.InitDefaults();

            return(info);
        }