Exemplo n.º 1
0
        private async Task ForceUpdateCells()
        {
            await Task.Run(() =>
            {
                if (ModManager.IsReadOnly)
                {
                    return;
                }

                if (!updateCellsSemaphore.WaitOne(5000))
                {
                    return;
                }
                foreach (DataGridViewRow row in this.dataGridView1.Rows)
                {
                    if (row.Tag is Mod taggedMod)
                    {
                        if (taggedMod.CannotCurrentlyUpdate)
                        {
                            continue;
                        }
                        taggedMod.Enabled = (bool)row.Cells[0].Value;
                        if (TableHandler.ShouldContainOptionalColumn())
                        {
                            taggedMod.IsOptional = (bool)row.Cells[5].Value;
                        }
                        if (row.Cells[2].Value is string strVal)
                        {
                            Version changingVer = null;
                            if (strVal.Contains("Latest"))
                            {
                                taggedMod.ForceLatest = true;
                                changingVer           = taggedMod.AvailableVersions[0];
                            }
                            else
                            {
                                taggedMod.ForceLatest = false;
                                changingVer           = new Version(strVal);
                            }

                            SwitchVersionSync(taggedMod, changingVer);
                        }
                    }
                }
                ModManager.FullUpdate();
                updateCellsSemaphore.Release();
            }).ContinueWith(res =>
            {
                AMLUtils.InvokeUI(TableManager.Refresh);
            });
        }
Exemplo n.º 2
0
        public void IntegrateMods()
        {
            if (IsReadOnly || GamePath == null || InstallPath == null)
            {
                return;
            }

            List <string> optionalMods = new List <string>();

            foreach (Mod mod in Mods)
            {
                if (mod.Enabled && mod.IsOptional)
                {
                    optionalMods.Add(mod.CurrentModData.ModID);
                }
            }

            if (TableHandler.ShouldContainOptionalColumn())
            {
                OurIntegrator.OptionalModIDs = optionalMods;
            }
            OurIntegrator.IntegrateMods(InstallPath, Path.Combine(GamePath, "Astro", "Content", "Paks"));
        }
Exemplo n.º 3
0
 public bool ShouldSerializeIsOptional()
 {
     return(IsOptional || TableHandler.ShouldContainOptionalColumn());
 }