Removed Depot ID since they can be used independently from DLCs.
Improve log verbosity.
This commit is contained in:
parent
fd518e4504
commit
0c1c1226fb
@ -34,7 +34,7 @@ namespace GoldbergGUI.Core.Models
|
||||
/// </summary>
|
||||
public List<DlcApp> DlcList { get; set; }
|
||||
|
||||
//public List<Depot> Depots { get; set; }
|
||||
public List<int> Depots { get; set; }
|
||||
|
||||
public List<Group> SubscribedGroups { get; set; }
|
||||
|
||||
@ -67,10 +67,7 @@ namespace GoldbergGUI.Core.Models
|
||||
|
||||
public class DlcApp : SteamApp
|
||||
{
|
||||
/// <summary>
|
||||
/// ID of depot (optional)
|
||||
/// </summary>
|
||||
public int? DepotId { get; set; }
|
||||
//public int? DepotId { get; set; }
|
||||
//public string DepotName { get; set; }
|
||||
/// <summary>
|
||||
/// Path to DLC (relative to Steam API DLL) (optional)
|
||||
|
@ -29,6 +29,7 @@ namespace GoldbergGUI.Core.Services
|
||||
}
|
||||
|
||||
// ReSharper disable once UnusedType.Global
|
||||
// ReSharper disable once ClassNeverInstantiated.Global
|
||||
public class GoldbergService : IGoldbergService
|
||||
{
|
||||
private IMvxLog _log;
|
||||
@ -221,6 +222,7 @@ namespace GoldbergGUI.Core.Services
|
||||
}
|
||||
|
||||
var dlcTxt = Path.Combine(path, "steam_settings", "DLC.txt");
|
||||
var appPathTxt = Path.Combine(path, "steam_settings", "app_paths.txt");
|
||||
if (File.Exists(dlcTxt))
|
||||
{
|
||||
_log.Info("Getting DLCs...");
|
||||
@ -237,6 +239,20 @@ namespace GoldbergGUI.Core.Services
|
||||
Name = match.Groups["name"].Value
|
||||
});
|
||||
}
|
||||
|
||||
// ReSharper disable once InvertIf
|
||||
if (File.Exists(appPathTxt))
|
||||
{
|
||||
var appPathAllLinesAsync = await File.ReadAllLinesAsync(dlcTxt).ConfigureAwait(false);
|
||||
var appPathExpression = new Regex(@"(?<id>.*) *= *(?<appPath>.*)");
|
||||
foreach (var line in appPathAllLinesAsync)
|
||||
{
|
||||
var match = appPathExpression.Match(line);
|
||||
if (match.Success)
|
||||
dlcList[Convert.ToInt32(match.Groups["id"].Value)].AppPath =
|
||||
match.Groups["appPath"].Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -273,6 +289,7 @@ namespace GoldbergGUI.Core.Services
|
||||
{
|
||||
CopyDllFiles(path, x64Name);
|
||||
}
|
||||
_log.Info("DLL setup finished!");
|
||||
|
||||
// Create steam_settings folder if missing
|
||||
_log.Info("Saving settings...");
|
||||
@ -285,50 +302,81 @@ namespace GoldbergGUI.Core.Services
|
||||
await File.WriteAllTextAsync(Path.Combine(path, "steam_appid.txt"), c.AppId.ToString())
|
||||
.ConfigureAwait(false);
|
||||
|
||||
// DLC
|
||||
// DLC + App path
|
||||
if (c.DlcList.Count > 0)
|
||||
{
|
||||
var dlcString = "";
|
||||
c.DlcList.ForEach(x => dlcString += $"{x}\n");
|
||||
await File.WriteAllTextAsync(Path.Combine(path, "steam_settings", "DLC.txt"), dlcString)
|
||||
_log.Info("Saving DLC settings...");
|
||||
var dlcContent = "";
|
||||
//var depotContent = "";
|
||||
var appPathContent = "";
|
||||
c.DlcList.ForEach(x =>
|
||||
{
|
||||
dlcContent += $"{x}\n";
|
||||
//depotContent += $"{x.DepotId}\n";
|
||||
appPathContent += $"{x.AppId}={x.AppPath}\n";
|
||||
});
|
||||
await File.WriteAllTextAsync(Path.Combine(path, "steam_settings", "DLC.txt"), dlcContent)
|
||||
.ConfigureAwait(false);
|
||||
|
||||
/*if (!string.Equals(depotContent, ""))
|
||||
{
|
||||
await File.WriteAllTextAsync(Path.Combine(path, "steam_settings", "depots.txt"), depotContent)
|
||||
.ConfigureAwait(false);
|
||||
}*/
|
||||
|
||||
if (!string.Equals(appPathContent, ""))
|
||||
{
|
||||
await File.WriteAllTextAsync(Path.Combine(path, "steam_settings", "app_paths.txt"), appPathContent)
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
_log.Info("Saved DLC settings.");
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.Info("No DLC set! Removing DLC configuration files...");
|
||||
if (File.Exists(Path.Combine(path, "steam_settings", "DLC.txt")))
|
||||
File.Delete(Path.Combine(path, "steam_settings", "DLC.txt"));
|
||||
if (File.Exists(Path.Combine(path, "steam_settings", "app_paths.txt")))
|
||||
File.Delete(Path.Combine(path, "steam_settings", "app_paths.txt"));
|
||||
_log.Info("Removed DLC configuration files.");
|
||||
}
|
||||
|
||||
// Offline
|
||||
if (c.Offline)
|
||||
{
|
||||
_log.Info("Create offline.txt");
|
||||
await File.Create(Path.Combine(path, "steam_settings", "offline.txt")).DisposeAsync()
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.Info("Delete offline.txt if it exists");
|
||||
File.Delete(Path.Combine(path, "steam_settings", "offline.txt"));
|
||||
}
|
||||
|
||||
// Disable Networking
|
||||
if (c.DisableNetworking)
|
||||
{
|
||||
_log.Info("Create disable_networking.txt");
|
||||
await File.Create(Path.Combine(path, "steam_settings", "disable_networking.txt")).DisposeAsync()
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.Info("Delete disable_networking.txt if it exists");
|
||||
File.Delete(Path.Combine(path, "steam_settings", "disable_networking.txt"));
|
||||
}
|
||||
|
||||
// Disable Overlay
|
||||
if (c.DisableOverlay)
|
||||
{
|
||||
_log.Info("Create disable_overlay.txt");
|
||||
await File.Create(Path.Combine(path, "steam_settings", "disable_overlay.txt")).DisposeAsync()
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.Info("Delete disable_overlay.txt if it exists");
|
||||
File.Delete(Path.Combine(path, "steam_settings", "disable_overlay.txt"));
|
||||
}
|
||||
}
|
||||
@ -337,17 +385,21 @@ namespace GoldbergGUI.Core.Services
|
||||
{
|
||||
var steamApiDll = Path.Combine(path, $"{name}.dll");
|
||||
var originalDll = Path.Combine(path, $"{name}_o.dll");
|
||||
var guiBackup = Path.Combine(path, $"{name}.dll.GOLDBERGGUIBACKUP");
|
||||
var guiBackup = Path.Combine(path, $".{name}.dll.GOLDBERGGUIBACKUP");
|
||||
var goldbergDll = Path.Combine(_goldbergPath, $"{name}.dll");
|
||||
|
||||
if (!File.Exists(originalDll))
|
||||
{
|
||||
_log.Info("Back up original Steam API DLL...");
|
||||
File.Move(steamApiDll, originalDll);
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Move(steamApiDll, guiBackup, true);
|
||||
File.SetAttributes(guiBackup, FileAttributes.Hidden);
|
||||
}
|
||||
|
||||
_log.Info("Copy Goldberg DLL to target path...");
|
||||
File.Copy(goldbergDll, steamApiDll);
|
||||
}
|
||||
|
||||
@ -411,6 +463,7 @@ namespace GoldbergGUI.Core.Services
|
||||
var contentLength = headResponse.Content.Headers.ContentLength;
|
||||
await client.GetFileAsync(downloadUrl, fileStream).ContinueWith(async t =>
|
||||
{
|
||||
// ReSharper disable once AccessToDisposedClosure
|
||||
await fileStream.DisposeAsync().ConfigureAwait(false);
|
||||
var fileLength = new FileInfo(_goldbergZipPath).Length;
|
||||
// Environment.Exit(128);
|
||||
|
@ -56,12 +56,12 @@
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="App ID" Binding="{Binding AppId}" Width="80" />
|
||||
<DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="*" />
|
||||
<DataGridTextColumn Header="Depot ID" Binding="{Binding DepotId}" Width="80" Visibility="{Binding Source={x:Reference showOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}"/>
|
||||
<!--<DataGridTextColumn Header="Depot Name" Binding="{Binding DepotName}" Width="*" Visibility="{Binding Source={x:Reference showOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}" />-->
|
||||
<DataGridTextColumn Header="App Path" Binding="{Binding AppPath}" Width="*" Visibility="{Binding Source={x:Reference showOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}" />
|
||||
<!--<DataGridTextColumn Header="Depot ID" Binding="{Binding DepotId}" Width="80" Visibility="{Binding Source={x:Reference ShowOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}"/>
|
||||
<DataGridTextColumn Header="Depot Name" Binding="{Binding DepotName}" Width="*" Visibility="{Binding Source={x:Reference ShowOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}" />-->
|
||||
<DataGridTextColumn Header="App Path" Binding="{Binding AppPath}" Width="*" Visibility="{Binding Source={x:Reference ShowOptionalDlcSettings}, Path=IsChecked, Converter={StaticResource B2V}}" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
<CheckBox Grid.Row="1" x:Name="showOptionalDlcSettings" Margin="0,5,0,0" Content="Show optional settings"/>
|
||||
<CheckBox Grid.Row="1" x:Name="ShowOptionalDlcSettings" Margin="0,5,0,0" Content="Show optional settings"/>
|
||||
<Button Content="Get _DLCs for AppID" Command="{Binding GetListOfDlcCommand}" Grid.Row="1" Width="120" HorizontalAlignment="Right" Margin="0,5,0,0" Height="20"/>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
Loading…
Reference in New Issue
Block a user