Terraria.ModLoader.ModCompile.BuildAll C# (CSharp) Method

BuildAll() static private method

static private BuildAll ( string modFolders, IBuildStatus status ) : bool
modFolders string
status IBuildStatus
return bool
        internal static bool BuildAll(string[] modFolders, IBuildStatus status) {
            var modList = new List<LoadingMod>();
            foreach (var modFolder in modFolders) {
                var mod = ReadProperties(modFolder, status);
                if (mod == null)
                    return false;

                modList.Add(mod);
            }

            foreach (var modFile in FindMods()) {
                if (modList.Exists(m => m.Name == modFile.name))
                    continue;

                modList.Add(new LoadingMod(modFile, BuildProperties.ReadModFile(modFile)));
            }

            List<BuildingMod> modsToBuild;
            try {
                var sortedModList = TopoSort(modList, true);
                modsToBuild = sortedModList.OfType<BuildingMod>().ToList();
            }
            catch (ModSortingException e) {
                ErrorLogger.LogDependencyError(e.Message);
                return false;
            }

            int num = 0;
            foreach (var mod in modsToBuild) {
                status.SetProgress(num++, modsToBuild.Count);
                if (!Build(mod, status))
                    return false;
            }

            return true;
        }

Usage Example

Ejemplo n.º 1
0
 internal static void BuildAllMods()
 {
     ThreadPool.QueueUserWorkItem(_ =>
     {
         PostBuildMenu(ModCompile.BuildAll(FindModSources(), Interface.buildMod));
     });
 }