include extras

This commit is contained in:
2024-06-20 22:34:38 +02:00
parent 4ea4a70e50
commit 3be25d7070
6 changed files with 33 additions and 20 deletions

View File

@@ -39,10 +39,13 @@ public class ModpackInstaller(ModpackConfig updateConfig, ModpackInfo modpackInf
public async Task<UpdateCheckResult> Check(UpdateCheckOptions options)
{
var result = new UpdateCheckResult();
var hasConfig = modpackInfo.Exists;
InstallInfos installInfos = null;
UpdateInfos updateInfos = null;
var hasConfig = modpackInfo.Exists;
var result = new UpdateCheckResult
{
HasExtras = options.IncludeExtraActions
};
if (updateConfig.Maintenance && !options.IgnoreMaintenance)
{
@@ -174,6 +177,7 @@ public class ModpackInstaller(ModpackConfig updateConfig, ModpackInfo modpackInf
// Save new modpack info
modpackInfo.Version = checkResult.LatestVersion;
modpackInfo.ConfigUrl = updateConfig.ConfigUrl;
modpackInfo.IncludeExtras = checkResult.HasExtras;
modpackInfo.Save();
// Delete cached zip files

View File

@@ -11,4 +11,5 @@ public class UpdateCheckResult
public bool HasError { get; set; }
public bool IsInMaintenance { get; set; }
public bool HasUpdates => !IsInstalled || CurrentVersion < LatestVersion;
public bool HasExtras { get; set; }
}

View File

@@ -11,6 +11,7 @@ public class ModpackInfo
[JsonConverter(typeof(VersionConverter))]
public Version Version { get; set; }
public string ConfigUrl { get; set; }
public bool IncludeExtras { get; set; }
[JsonIgnore]
public string LocaLPath { get; private set; }
[JsonIgnore]

View File

@@ -9,6 +9,7 @@ public class AppConfig : IChildSettings, ISettingsIdentifier
public string LastMinecraftProfilePath { get; set; }
public string LastConfigFilePath { get; set; }
public bool LastIncludeExtras { get; set; }
public List<string> KeepLocalFiles { get; } = [];
public void Reset()

View File

@@ -43,12 +43,12 @@ namespace ModpackUpdater
RadTextBoxControl_ModpackConfig = new Telerik.WinControls.UI.RadTextBoxControl();
RadButton_Install = new Telerik.WinControls.UI.RadButton();
RadButton_CheckForUpdates = new Telerik.WinControls.UI.RadButton();
RadButton_EditModpackConfig = new Telerik.WinControls.UI.RadButton();
RadButton_PasteModpackConfig = new Telerik.WinControls.UI.RadButton();
RadButton_SearchModpackConfig = new Telerik.WinControls.UI.RadButton();
RadButton_SearchMinecraftProfileFolder = new Telerik.WinControls.UI.RadButton();
tableLayoutPanel1 = new TableLayoutPanel();
radButton_RefreshConfig = new Telerik.WinControls.UI.RadButton();
radCheckBox_IncludeExtras = new Telerik.WinControls.UI.RadCheckBox();
((System.ComponentModel.ISupportInitialize)RadLabel1).BeginInit();
((System.ComponentModel.ISupportInitialize)RadLabel2).BeginInit();
((System.ComponentModel.ISupportInitialize)RadLabel3).BeginInit();
@@ -57,12 +57,12 @@ namespace ModpackUpdater
((System.ComponentModel.ISupportInitialize)RadTextBoxControl_ModpackConfig).BeginInit();
((System.ComponentModel.ISupportInitialize)RadButton_Install).BeginInit();
((System.ComponentModel.ISupportInitialize)RadButton_CheckForUpdates).BeginInit();
((System.ComponentModel.ISupportInitialize)RadButton_EditModpackConfig).BeginInit();
((System.ComponentModel.ISupportInitialize)RadButton_PasteModpackConfig).BeginInit();
((System.ComponentModel.ISupportInitialize)RadButton_SearchModpackConfig).BeginInit();
((System.ComponentModel.ISupportInitialize)RadButton_SearchMinecraftProfileFolder).BeginInit();
tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)radButton_RefreshConfig).BeginInit();
((System.ComponentModel.ISupportInitialize)radCheckBox_IncludeExtras).BeginInit();
((System.ComponentModel.ISupportInitialize)this).BeginInit();
SuspendLayout();
//
@@ -158,19 +158,6 @@ namespace ModpackUpdater
RadButton_CheckForUpdates.TextImageRelation = TextImageRelation.ImageBeforeText;
RadButton_CheckForUpdates.Click += ButtonX_CheckForUpdates_Click;
//
// RadButton_EditModpackConfig
//
RadButton_EditModpackConfig.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
RadButton_EditModpackConfig.ImageAlignment = ContentAlignment.MiddleRight;
RadButton_EditModpackConfig.Location = new Point(3, 147);
RadButton_EditModpackConfig.Name = "RadButton_EditModpackConfig";
RadButton_EditModpackConfig.Size = new Size(144, 24);
RadButton_EditModpackConfig.TabIndex = 8;
RadButton_EditModpackConfig.Text = "Edit modpack config";
RadButton_EditModpackConfig.TextAlignment = ContentAlignment.MiddleLeft;
RadButton_EditModpackConfig.TextImageRelation = TextImageRelation.ImageBeforeText;
RadButton_EditModpackConfig.Visible = false;
//
// RadButton_PasteModpackConfig
//
RadButton_PasteModpackConfig.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
@@ -226,7 +213,6 @@ namespace ModpackUpdater
tableLayoutPanel1.Controls.Add(RadButton_CheckForUpdates, 2, 5);
tableLayoutPanel1.Controls.Add(RadLabel1, 0, 0);
tableLayoutPanel1.Controls.Add(RadLabel2, 0, 2);
tableLayoutPanel1.Controls.Add(RadButton_EditModpackConfig, 0, 5);
tableLayoutPanel1.Controls.Add(RadTextBoxControl_MinecraftProfileFolder, 1, 0);
tableLayoutPanel1.Controls.Add(RadTextBoxControl_ModpackConfig, 1, 2);
tableLayoutPanel1.Controls.Add(RadLabel_Status, 1, 4);
@@ -236,6 +222,7 @@ namespace ModpackUpdater
tableLayoutPanel1.Controls.Add(RadButton_PasteModpackConfig, 3, 3);
tableLayoutPanel1.Controls.Add(RadButton_Install, 5, 5);
tableLayoutPanel1.Controls.Add(radButton_RefreshConfig, 2, 3);
tableLayoutPanel1.Controls.Add(radCheckBox_IncludeExtras, 0, 5);
tableLayoutPanel1.Dock = DockStyle.Fill;
tableLayoutPanel1.Location = new Point(0, 0);
tableLayoutPanel1.Name = "tableLayoutPanel1";
@@ -261,6 +248,17 @@ namespace ModpackUpdater
radButton_RefreshConfig.Text = "Reload";
radButton_RefreshConfig.Click += RadButton_RefreshConfig_Click;
//
// radCheckBox_IncludeExtras
//
radCheckBox_IncludeExtras.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
radCheckBox_IncludeExtras.AutoSize = false;
radCheckBox_IncludeExtras.Location = new Point(3, 147);
radCheckBox_IncludeExtras.Name = "radCheckBox_IncludeExtras";
radCheckBox_IncludeExtras.Size = new Size(144, 24);
radCheckBox_IncludeExtras.TabIndex = 12;
radCheckBox_IncludeExtras.Text = "Include extra files";
radCheckBox_IncludeExtras.ToggleStateChanged += RadCheckBox_IncludeExtras_ToggleStateChanged;
//
// Form1
//
AutoScaleBaseSize = new Size(7, 15);
@@ -284,12 +282,12 @@ namespace ModpackUpdater
((System.ComponentModel.ISupportInitialize)RadTextBoxControl_ModpackConfig).EndInit();
((System.ComponentModel.ISupportInitialize)RadButton_Install).EndInit();
((System.ComponentModel.ISupportInitialize)RadButton_CheckForUpdates).EndInit();
((System.ComponentModel.ISupportInitialize)RadButton_EditModpackConfig).EndInit();
((System.ComponentModel.ISupportInitialize)RadButton_PasteModpackConfig).EndInit();
((System.ComponentModel.ISupportInitialize)RadButton_SearchModpackConfig).EndInit();
((System.ComponentModel.ISupportInitialize)RadButton_SearchMinecraftProfileFolder).EndInit();
tableLayoutPanel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)radButton_RefreshConfig).EndInit();
((System.ComponentModel.ISupportInitialize)radCheckBox_IncludeExtras).EndInit();
((System.ComponentModel.ISupportInitialize)this).EndInit();
ResumeLayout(false);
}
@@ -302,11 +300,11 @@ namespace ModpackUpdater
internal Telerik.WinControls.UI.RadTextBoxControl RadTextBoxControl_ModpackConfig;
internal Telerik.WinControls.UI.RadButton RadButton_Install;
internal Telerik.WinControls.UI.RadButton RadButton_CheckForUpdates;
internal Telerik.WinControls.UI.RadButton RadButton_EditModpackConfig;
internal Telerik.WinControls.UI.RadButton RadButton_SearchModpackConfig;
internal Telerik.WinControls.UI.RadButton RadButton_SearchMinecraftProfileFolder;
internal Telerik.WinControls.UI.RadButton RadButton_PasteModpackConfig;
private TableLayoutPanel tableLayoutPanel1;
private Telerik.WinControls.UI.RadButton radButton_RefreshConfig;
private Telerik.WinControls.UI.RadCheckBox radCheckBox_IncludeExtras;
}
}

View File

@@ -113,6 +113,7 @@ public partial class Form1
LoadUpdateConfigFile(modpackInfo.ConfigUrl);
else
RadButton_CheckForUpdates.PerformClick();
radCheckBox_IncludeExtras.Checked = modpackInfo.IncludeExtras;
}
else
ClearStatus();
@@ -261,10 +262,12 @@ public partial class Form1
{
AppConfig.Instance.LastMinecraftProfilePath = RadTextBoxControl_MinecraftProfileFolder.Text;
AppConfig.Instance.LastConfigFilePath = RadTextBoxControl_ModpackConfig.Text;
AppConfig.Instance.LastIncludeExtras = radCheckBox_IncludeExtras.Checked;
}
private void Form1_Load(object sender, EventArgs e)
{
radCheckBox_IncludeExtras.Checked = updateOptions.IncludeExtraActions || AppConfig.Instance.LastIncludeExtras;
if (Directory.Exists(AppConfig.Instance.LastMinecraftProfilePath))
LoadMinecraftProfile(AppConfig.Instance.LastMinecraftProfilePath);
if (!string.IsNullOrWhiteSpace(AppConfig.Instance.LastConfigFilePath))
@@ -282,4 +285,9 @@ public partial class Form1
Application.Restart();
}
}
private void RadCheckBox_IncludeExtras_ToggleStateChanged(object sender, StateChangedEventArgs args)
{
updateOptions.IncludeExtraActions = radCheckBox_IncludeExtras.Checked;
}
}