mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Start modifying gallery, add icons to game filter listbox
This commit is contained in:
parent
0baba1bfff
commit
e6b746a6ec
@ -32,7 +32,7 @@ namespace Wabbajack
|
||||
|
||||
public ReadOnlyObservableCollection<ModListMetadataVM> ModLists => _filteredModLists;
|
||||
|
||||
private const string ALL_GAME_TYPE = "All";
|
||||
private const string ALL_GAME_IDENTIFIER = "All games";
|
||||
|
||||
[Reactive] public IErrorResponse Error { get; set; }
|
||||
|
||||
@ -48,15 +48,20 @@ namespace Wabbajack
|
||||
|
||||
public class GameTypeEntry
|
||||
{
|
||||
public GameTypeEntry(string humanFriendlyName, int amount)
|
||||
public GameTypeEntry(GameMetaData gameMetaData, int amount)
|
||||
{
|
||||
HumanFriendlyName = humanFriendlyName;
|
||||
GameMetaData = gameMetaData;
|
||||
IsAllGamesEntry = gameMetaData == null;
|
||||
GameIdentifier = IsAllGamesEntry ? ALL_GAME_IDENTIFIER : gameMetaData?.HumanFriendlyGameName;
|
||||
Amount = amount;
|
||||
FormattedName = $"{HumanFriendlyName} ({Amount})";
|
||||
FormattedName = IsAllGamesEntry ? $"{ALL_GAME_IDENTIFIER} ({Amount})" : $"{gameMetaData.HumanFriendlyGameName} ({Amount})";
|
||||
}
|
||||
public string HumanFriendlyName { get; set; }
|
||||
public int Amount { get; set; }
|
||||
public string FormattedName { get; set; }
|
||||
public bool IsAllGamesEntry { get; set; }
|
||||
public GameMetaData GameMetaData { get; private set; }
|
||||
public int Amount { get; private set; }
|
||||
public string FormattedName { get; private set; }
|
||||
public string GameIdentifier { get; private set; }
|
||||
public static GameTypeEntry GetAllGamesEntry(int amount) => new(null, amount);
|
||||
}
|
||||
|
||||
[Reactive] public List<GameTypeEntry> GameTypeEntries { get; set; }
|
||||
@ -68,8 +73,8 @@ namespace Wabbajack
|
||||
get => _selectedGameTypeEntry;
|
||||
set
|
||||
{
|
||||
RaiseAndSetIfChanged(ref _selectedGameTypeEntry, value == null ? GameTypeEntries?.FirstOrDefault(gte => gte.HumanFriendlyName == ALL_GAME_TYPE) : value);
|
||||
GameType = _selectedGameTypeEntry?.HumanFriendlyName;
|
||||
RaiseAndSetIfChanged(ref _selectedGameTypeEntry, value == null ? GameTypeEntries?.FirstOrDefault(gte => gte.IsAllGamesEntry) : value);
|
||||
GameType = _selectedGameTypeEntry?.GameIdentifier;
|
||||
}
|
||||
}
|
||||
|
||||
@ -156,7 +161,7 @@ namespace Wabbajack
|
||||
.Select<string, Func<ModListMetadataVM, bool>>(selected =>
|
||||
{
|
||||
_filteringOnGame = true;
|
||||
if (selected is null or ALL_GAME_TYPE) return _ => true;
|
||||
if (selected is null or ALL_GAME_IDENTIFIER) return _ => true;
|
||||
return item => item.Metadata.Game.MetaData().HumanFriendlyGameName == selected;
|
||||
})
|
||||
.StartWith(_ => true);
|
||||
@ -176,8 +181,8 @@ namespace Wabbajack
|
||||
var previousGameType = GameType;
|
||||
SelectedGameTypeEntry = null;
|
||||
GameTypeEntries = new(GetGameTypeEntries());
|
||||
var nextEntry = GameTypeEntries.FirstOrDefault(gte => previousGameType == gte.HumanFriendlyName);
|
||||
SelectedGameTypeEntry = nextEntry != default ? nextEntry : GameTypeEntries.FirstOrDefault(gte => GameType == ALL_GAME_TYPE);
|
||||
var nextEntry = GameTypeEntries.FirstOrDefault(gte => previousGameType == gte.GameIdentifier);
|
||||
SelectedGameTypeEntry = nextEntry != default ? nextEntry : GameTypeEntries.FirstOrDefault(gte => GameType == ALL_GAME_IDENTIFIER);
|
||||
}
|
||||
_filteringOnGame = false;
|
||||
})
|
||||
@ -217,7 +222,7 @@ namespace Wabbajack
|
||||
RxApp.MainThreadScheduler.Schedule(await _settingsManager.Load<FilterSettings>("modlist_gallery"),
|
||||
(_, s) =>
|
||||
{
|
||||
SelectedGameTypeEntry = GameTypeEntries?.FirstOrDefault(gte => gte.HumanFriendlyName.Equals(s.GameType));
|
||||
SelectedGameTypeEntry = GameTypeEntries?.FirstOrDefault(gte => gte.GameIdentifier.Equals(s.GameType));
|
||||
ShowNSFW = s.ShowNSFW;
|
||||
ShowUnofficialLists = s.ShowUnofficialLists;
|
||||
Search = s.Search;
|
||||
@ -251,9 +256,9 @@ namespace Wabbajack
|
||||
{
|
||||
return ModLists.Select(fm => fm.Metadata)
|
||||
.GroupBy(m => m.Game)
|
||||
.Select(g => new GameTypeEntry(g.Key.MetaData().HumanFriendlyGameName, g.Count()))
|
||||
.OrderBy(gte => gte.HumanFriendlyName)
|
||||
.Prepend(new GameTypeEntry(ALL_GAME_TYPE, ModLists.Count))
|
||||
.Select(g => new GameTypeEntry(g.Key.MetaData(), g.Count()))
|
||||
.OrderBy(gte => gte.GameMetaData.HumanFriendlyGameName)
|
||||
.Prepend(GameTypeEntry.GetAllGamesEntry(ModLists.Count))
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
@ -24,8 +24,9 @@ namespace Wabbajack
|
||||
private readonly ILogger<HomeVM> _logger;
|
||||
private readonly Client _wjClient;
|
||||
|
||||
public HomeVM(Client wjClient)
|
||||
public HomeVM(ILogger<HomeVM> logger, Client wjClient)
|
||||
{
|
||||
_logger = logger;
|
||||
_wjClient = wjClient;
|
||||
BrowseCommand = ReactiveCommand.Create(() => NavigateToGlobal.Send(ScreenType.ModListGallery));
|
||||
VisitModlistWizardCommand = ReactiveCommand.Create(() =>
|
||||
|
@ -9,31 +9,22 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:rxui="http://reactiveui.net"
|
||||
xmlns:system="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:ic="clr-namespace:FluentIcons.WPF;assembly=FluentIcons.WPF"
|
||||
d:DesignHeight="450"
|
||||
d:DesignWidth="900"
|
||||
x:TypeArguments="local:ModListGalleryVM"
|
||||
mc:Ignorable="d">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="47" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Rectangle Grid.Row="1" Grid.RowSpan="3"
|
||||
Margin="6,0">
|
||||
<Rectangle.Fill>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Offset="0" Color="#123700B3" />
|
||||
<GradientStop Offset="1" Color="#00000000" />
|
||||
</LinearGradientBrush>
|
||||
</Rectangle.Fill>
|
||||
</Rectangle>
|
||||
<Border Grid.Row="1"
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="3*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border Grid.Column="1"
|
||||
BorderBrush="Transparent"
|
||||
BorderThickness="1,0,1,1">
|
||||
BorderThickness="0">
|
||||
<ScrollViewer Background="Transparent" VerticalScrollBarVisibility="Auto">
|
||||
<ItemsControl
|
||||
x:Name="ModListGalleryControl"
|
||||
Margin="0,10,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Visible">
|
||||
<ItemsControl.ItemsPanel>
|
||||
@ -49,26 +40,28 @@
|
||||
</ItemsControl>
|
||||
</ScrollViewer>
|
||||
</Border>
|
||||
<mahapps:ProgressRing Grid.Row="1"
|
||||
<mahapps:ProgressRing Grid.Column="1"
|
||||
x:Name="LoadingRing"
|
||||
Visibility="Collapsed" />
|
||||
<StackPanel Grid.Row="1"
|
||||
<StackPanel Grid.Column="1"
|
||||
x:Name="NoneFound"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Orientation="Vertical"
|
||||
Visibility="Collapsed">
|
||||
<iconPacks:PackIconControl
|
||||
Width="50"
|
||||
Height="50"
|
||||
Margin="0,0,0,10"
|
||||
HorizontalAlignment="Center"
|
||||
<ic:SymbolIcon
|
||||
Grid.Column="1"
|
||||
Foreground="{StaticResource Triadic2Brush}"
|
||||
Kind="{x:Static iconPacks:PackIconMaterialKind.Cancel}" />
|
||||
VerticalAlignment="Top"
|
||||
Symbol="DismissCircle"
|
||||
IsFilled="False"
|
||||
FontSize="72"
|
||||
/>
|
||||
<TextBlock
|
||||
FontSize="14"
|
||||
FontSize="24"
|
||||
Margin="0, 10, 0, 0"
|
||||
Foreground="{StaticResource ForegroundBrush}"
|
||||
Text="No Matches" />
|
||||
Text="No modlists matching specified criteria" />
|
||||
</StackPanel>
|
||||
<iconPacks:PackIconControl Grid.Row="1"
|
||||
x:Name="ErrorIcon"
|
||||
@ -80,29 +73,30 @@
|
||||
Kind="{x:Static iconPacks:PackIconMaterialKind.AlertCircle}"
|
||||
ToolTip="Error loading modlist gallery"
|
||||
Visibility="Collapsed" />
|
||||
<local:TopProgressView Grid.Row="0" Grid.RowSpan="2"
|
||||
<!--<local:TopProgressView Grid.Row="0" Grid.RowSpan="2"
|
||||
Title="Browsing Modlists"
|
||||
ShadowMargin="False" />
|
||||
<WrapPanel Grid.Row="0"
|
||||
Height="25"
|
||||
Margin="5,5,5,10"
|
||||
HorizontalAlignment="Right"
|
||||
Orientation="Horizontal">
|
||||
<Label
|
||||
Margin="0,0,0,0"
|
||||
VerticalAlignment="Center"
|
||||
Content="Game"
|
||||
ToolTip="Select a game" />
|
||||
ShadowMargin="False" />-->
|
||||
<StackPanel Grid.Row="0"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
Background="Green"
|
||||
Orientation="Vertical">
|
||||
<ComboBox
|
||||
Width="150"
|
||||
Margin="0,0,10,0"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="{StaticResource ForegroundBrush}"
|
||||
ItemsSource="{Binding GameTypeEntries, Mode=TwoWay}"
|
||||
SelectedItem="{Binding SelectedGameTypeEntry, Mode=TwoWay}"
|
||||
DisplayMemberPath="FormattedName"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
ToolTip="Select a game" />
|
||||
ToolTip="Filter modlists on game">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="{Binding GameMetaData.IconSource}" Stretch="UniformToFill" Height="32" Width="32"/>
|
||||
<TextBlock Margin="10, 0, 0, 0" Text="{Binding FormattedName}" VerticalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
<TextBlock
|
||||
Margin="0,0,5,0"
|
||||
VerticalAlignment="Center"
|
||||
@ -140,21 +134,16 @@
|
||||
<Button
|
||||
x:Name="ClearFiltersButton"
|
||||
Margin="0,0,10,0"
|
||||
Style="{StaticResource IconBareButtonStyle}"
|
||||
ToolTip="Clear All Filters">
|
||||
<iconPacks:Material Kind="FilterRemove" />
|
||||
Style="{StaticResource LargeButtonStyle}"
|
||||
ToolTip="Reset filters to the default options"
|
||||
FontSize="24">
|
||||
<Button.Content>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<ic:SymbolIcon Symbol="FilterDismiss" />
|
||||
<TextBlock Margin="10, 0, 0, 0">Reset filters</TextBlock>
|
||||
</StackPanel>
|
||||
</Button.Content>
|
||||
</Button>
|
||||
</WrapPanel>
|
||||
<Button Grid.Row="0"
|
||||
x:Name="BackButton"
|
||||
Width="30"
|
||||
Height="30"
|
||||
Margin="7,5,0,0"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
Style="{StaticResource IconCircleButtonStyle}"
|
||||
ToolTip="Back to main menu">
|
||||
<iconPacks:PackIconMaterial Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Kind="ArrowLeft" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</rxui:ReactiveUserControl>
|
||||
|
@ -13,9 +13,11 @@ namespace Wabbajack
|
||||
|
||||
this.WhenActivated(dispose =>
|
||||
{
|
||||
/*
|
||||
this.WhenAny(x => x.ViewModel.BackCommand)
|
||||
.BindToStrict(this, x => x.BackButton.Command)
|
||||
.DisposeWith(dispose);
|
||||
*/
|
||||
this.WhenAny(x => x.ViewModel.ModLists)
|
||||
.BindToStrict(this, x => x.ModListGalleryControl.ItemsSource)
|
||||
.DisposeWith(dispose);
|
||||
|
@ -51,4 +51,8 @@ public class GameMetaData
|
||||
public Game[] CanSourceFrom { get; set; } = Array.Empty<Game>();
|
||||
|
||||
public string HumanFriendlyGameName => Game.GetDescription();
|
||||
/// <summary>
|
||||
/// Can be an URI to an ICO / PNG, preferred size 32x32
|
||||
/// </summary>
|
||||
public string IconSource { get; set; } = @"Resources/Icons/wabbajack.ico";
|
||||
}
|
@ -26,7 +26,8 @@ public static class GameRegistry
|
||||
{
|
||||
"Morrowind.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "Morrowind.exe".ToRelativePath()
|
||||
MainExecutable = "Morrowind.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/661c1c090ff5831a647202397c61d73c/24/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -43,7 +44,8 @@ public static class GameRegistry
|
||||
{
|
||||
"oblivion.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "Oblivion.exe".ToRelativePath()
|
||||
MainExecutable = "Oblivion.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/e403262769f74b83009bffb6e3c0a3b7/32/32x32.png"
|
||||
}
|
||||
},
|
||||
|
||||
@ -61,7 +63,8 @@ public static class GameRegistry
|
||||
{
|
||||
"Fallout3.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "Fallout3.exe".ToRelativePath()
|
||||
MainExecutable = "Fallout3.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/9fc14d103064494b6a2be4dbd1dcdf32/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -78,7 +81,8 @@ public static class GameRegistry
|
||||
{
|
||||
"FalloutNV.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "FalloutNV.exe".ToRelativePath()
|
||||
MainExecutable = "FalloutNV.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/f7c0dc716cd86f8d162c366d370baf14/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -95,7 +99,8 @@ public static class GameRegistry
|
||||
"tesv.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "TESV.exe".ToRelativePath(),
|
||||
CommonlyConfusedWith = new[] {Game.SkyrimSpecialEdition, Game.SkyrimVR}
|
||||
CommonlyConfusedWith = new[] {Game.SkyrimSpecialEdition, Game.SkyrimVR},
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/58ee2794cc87707943624dc8db2ff5a0/8/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -118,7 +123,8 @@ public static class GameRegistry
|
||||
"SkyrimSE.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "SkyrimSE.exe".ToRelativePath(),
|
||||
CommonlyConfusedWith = new[] {Game.Skyrim, Game.SkyrimVR}
|
||||
CommonlyConfusedWith = new[] {Game.Skyrim, Game.SkyrimVR},
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/e1b90346c92331860b1391257a106bb1/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -136,7 +142,8 @@ public static class GameRegistry
|
||||
"Fallout4.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "Fallout4.exe".ToRelativePath(),
|
||||
CommonlyConfusedWith = new[] {Game.Fallout4VR}
|
||||
CommonlyConfusedWith = new[] {Game.Fallout4VR},
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/73640de25b7d656733ce2f808a330f18/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -154,7 +161,8 @@ public static class GameRegistry
|
||||
},
|
||||
MainExecutable = "SkyrimVR.exe".ToRelativePath(),
|
||||
CommonlyConfusedWith = new[] {Game.Skyrim, Game.SkyrimSpecialEdition},
|
||||
CanSourceFrom = new[] {Game.SkyrimSpecialEdition}
|
||||
CanSourceFrom = new[] {Game.SkyrimSpecialEdition},
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/0e003154a81256e3cf5732f8d0d7efaa/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -171,7 +179,8 @@ public static class GameRegistry
|
||||
"TESV.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "TESV.exe".ToRelativePath(),
|
||||
CommonlyConfusedWith = new[] {Game.EnderalSpecialEdition}
|
||||
CommonlyConfusedWith = new[] {Game.EnderalSpecialEdition},
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/6505e8a0c0e1a90d8da8879e49a437f0.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -189,7 +198,8 @@ public static class GameRegistry
|
||||
"SkyrimSE.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "SkyrimSE.exe".ToRelativePath(),
|
||||
CommonlyConfusedWith = new[] {Game.Enderal}
|
||||
CommonlyConfusedWith = new[] {Game.Enderal},
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/104c6f99020b85465ae361a92d09a8d1.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -206,7 +216,8 @@ public static class GameRegistry
|
||||
},
|
||||
MainExecutable = "Fallout4VR.exe".ToRelativePath(),
|
||||
CommonlyConfusedWith = new[] {Game.Fallout4},
|
||||
CanSourceFrom = new[] {Game.Fallout4}
|
||||
CanSourceFrom = new[] {Game.Fallout4},
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/5f9ce39aec46f3e8e8aebbc722d8ceeb/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -224,7 +235,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"_windowsnosteam\Darkest.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"_windowsnosteam\Darkest.exe".ToRelativePath()
|
||||
MainExecutable = @"_windowsnosteam\Darkest.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/b1d2128cee734a257c5e0d5c73bbdd1b.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -241,7 +253,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"Binaries\Win32\Dishonored.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"Binaries\Win32\Dishonored.exe".ToRelativePath()
|
||||
MainExecutable = @"Binaries\Win32\Dishonored.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/6fcd734d28ae00944f8f7c68a219bbc5/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -258,7 +271,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"System\witcher.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"System\witcher.exe".ToRelativePath()
|
||||
MainExecutable = @"System\witcher.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/fd72ecaa23aa0a514a53c6a16eabb9c6.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -276,7 +290,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"bin\x64\witcher3.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"bin\x64\witcher3.exe".ToRelativePath()
|
||||
MainExecutable = @"bin\x64\witcher3.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/2af9b1a840b4ecd522fe1cda88c8385e/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -294,7 +309,8 @@ public static class GameRegistry
|
||||
{
|
||||
"Stardew Valley.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "Stardew Valley.exe".ToRelativePath()
|
||||
MainExecutable = "Stardew Valley.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/2119b8d43eafcf353e07d7cb5554170b/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -312,7 +328,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"bin\Win64\KingdomCome.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"bin\Win64\KingdomCome.exe".ToRelativePath()
|
||||
MainExecutable = @"bin\Win64\KingdomCome.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/1bdde90ebfdef547440410e79b1877bf.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -329,7 +346,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"MW5Mercs\Binaries\Win64\MechWarrior-Win64-Shipping.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"MW5Mercs\Binaries\Win64\MechWarrior-Win64-Shipping.exe".ToRelativePath()
|
||||
MainExecutable = @"MW5Mercs\Binaries\Win64\MechWarrior-Win64-Shipping.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/c59bb6bab3096620efe78bdeb031f027/8/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -345,7 +363,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"Binaries\NMS.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"Binaries\NMS.exe".ToRelativePath()
|
||||
MainExecutable = @"Binaries\NMS.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/970e789e0a92eab99bcabf36dfa6050c/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -362,7 +381,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"bin_ship\daorigins.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"bin_ship\daorigins.exe".ToRelativePath()
|
||||
MainExecutable = @"bin_ship\daorigins.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/b55d7ce2adb9449fc4dae6115cbbe30f/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -378,7 +398,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"bin_ship\DragonAge2.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"bin_ship\DragonAge2.exe".ToRelativePath()
|
||||
MainExecutable = @"bin_ship\DragonAge2.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/a6a946f7265ed7f28a6425ee76621c3a/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -394,7 +415,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"DragonAgeInquisition.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"DragonAgeInquisition.exe".ToRelativePath()
|
||||
MainExecutable = @"DragonAgeInquisition.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/b98004311446c60521a8831075423c20.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -411,7 +433,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"KSP_x64.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"KSP_x64.exe".ToRelativePath()
|
||||
MainExecutable = @"KSP_x64.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/2ee4162f4a89db5fa43b3b08900ee370.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -425,7 +448,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"tModLoader.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"tModLoader.exe".ToRelativePath()
|
||||
MainExecutable = @"tModLoader.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/e658047c67a80c47b5ba982ab520b59a.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -443,7 +467,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"bin\x64\Cyberpunk2077.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"bin\x64\Cyberpunk2077.exe".ToRelativePath()
|
||||
MainExecutable = @"bin\x64\Cyberpunk2077.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/2d45da15db966ba887cf4e573989fcc8/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -459,7 +484,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"Game\Bin\TS4_x64.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"Game\Bin\TS4_x64.exe".ToRelativePath()
|
||||
MainExecutable = @"Game\Bin\TS4_x64.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/9fc664916bce863561527f06a96f5ff3/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -477,7 +503,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"DDDA.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"DDDA.exe".ToRelativePath()
|
||||
MainExecutable = @"DDDA.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/a830839bbb4a4022a84ff2b8af5c46e0.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -492,7 +519,8 @@ public static class GameRegistry
|
||||
{
|
||||
"nw.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "nw.exe".ToRelativePath()
|
||||
MainExecutable = "nw.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/37286bc401299e97a564f6b42792eb6d.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -509,7 +537,8 @@ public static class GameRegistry
|
||||
{
|
||||
"valheim.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = "valheim.exe".ToRelativePath()
|
||||
MainExecutable = "valheim.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/dd055f53a45702fe05e449c30ac80df9/32/32x32.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -531,7 +560,8 @@ public static class GameRegistry
|
||||
{
|
||||
@"bin\Win64_Shipping_Client\Bannerlord.exe".ToRelativePath()
|
||||
},
|
||||
MainExecutable = @"bin\Win64_Shipping_Client\Bannerlord.exe".ToRelativePath()
|
||||
MainExecutable = @"bin\Win64_Shipping_Client\Bannerlord.exe".ToRelativePath(),
|
||||
IconSource = "https://cdn2.steamgriddb.com/icon/811cf46d61c9ae564bf7fa4b5abc639b.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user