Skip to content

Commit ae9621e

Browse files
committed
淦我重建个项目还能直接把我启动器搞成了一次性的是吧(╬▔皿▔)╯
1 parent 81bd544 commit ae9621e

40 files changed

+1218
-247
lines changed
52.2 KB
Binary file not shown.

.vs/BadMC_Launcher/v17/.futdcache.v2

3.74 KB
Binary file not shown.

.vs/BadMC_Launcher/v17/DocumentLayout.backup.json

Lines changed: 506 additions & 88 deletions
Large diffs are not rendered by default.

.vs/BadMC_Launcher/v17/DocumentLayout.json

Lines changed: 500 additions & 89 deletions
Large diffs are not rendered by default.

BadMC_Launcher.Benchmarks/BadMC_Launcher.Benchmarks.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<IsPackable>false</IsPackable>
77
<GenerateProgramFile>false</GenerateProgramFile>
88
<IsTestProject>true</IsTestProject>
9+
<Platforms>AnyCPU;ARM64;x64;x86</Platforms>
910
</PropertyGroup>
1011

1112
<ItemGroup>
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
using System.Collections.ObjectModel;
22
using BadMC_Launcher.Classes;
3+
using BadMC_Launcher.Servicess;
34
using BadMC_Launcher.Servicess.Settings;
45
using BenchmarkDotNet.Attributes;
56
using static System.Runtime.InteropServices.JavaScript.JSType;
67

78
namespace BadMC_Launcher.Benchmarks;
89

910
public class UnitTest1 {
10-
MinecraftConfigService MinecraftService = new MinecraftConfigService();
1111

1212
[Benchmark]
13-
public void Test1() {
14-
13+
public async void Test1() {
14+
await ThemeSettingService.GetBingWallpaperUrl();
1515
}
1616
}

BadMC_Launcher.Tests/BadMC_Launcher.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<TargetFramework>net9.0</TargetFramework>
55
<IsPackable>false</IsPackable>
66
<IsTestProject>true</IsTestProject>
7+
<Platforms>AnyCPU;ARM64;x64;x86</Platforms>
78
</PropertyGroup>
89

910
<ItemGroup>

BadMC_Launcher.sln

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,67 @@ EndProject
2727
Global
2828
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2929
Debug|Any CPU = Debug|Any CPU
30+
Debug|ARM64 = Debug|ARM64
31+
Debug|x64 = Debug|x64
32+
Debug|x86 = Debug|x86
3033
Release|Any CPU = Release|Any CPU
34+
Release|ARM64 = Release|ARM64
35+
Release|x64 = Release|x64
36+
Release|x86 = Release|x86
3137
EndGlobalSection
3238
GlobalSection(ProjectConfigurationPlatforms) = postSolution
3339
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3440
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|Any CPU.Build.0 = Debug|Any CPU
3541
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
42+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|ARM64.ActiveCfg = Debug|ARM64
43+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|ARM64.Build.0 = Debug|ARM64
44+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|x64.ActiveCfg = Debug|x64
45+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|x64.Build.0 = Debug|x64
46+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|x86.ActiveCfg = Debug|x86
47+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Debug|x86.Build.0 = Debug|x86
3648
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|Any CPU.ActiveCfg = Release|Any CPU
3749
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|Any CPU.Build.0 = Release|Any CPU
3850
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|Any CPU.Deploy.0 = Release|Any CPU
51+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|ARM64.ActiveCfg = Release|ARM64
52+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|ARM64.Build.0 = Release|ARM64
53+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|x64.ActiveCfg = Release|x64
54+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|x64.Build.0 = Release|x64
55+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|x86.ActiveCfg = Release|x86
56+
{34CC7E35-3490-48B5-808A-8F20B6A0EA27}.Release|x86.Build.0 = Release|x86
3957
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4058
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|Any CPU.Build.0 = Debug|Any CPU
4159
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
60+
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|ARM64.ActiveCfg = Debug|ARM64
61+
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|ARM64.Build.0 = Debug|ARM64
62+
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|x64.ActiveCfg = Debug|x64
63+
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|x64.Build.0 = Debug|x64
64+
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|x86.ActiveCfg = Debug|x86
65+
{37934AC8-0922-44DC-A250-022CB8486987}.Debug|x86.Build.0 = Debug|x86
4266
{37934AC8-0922-44DC-A250-022CB8486987}.Release|Any CPU.ActiveCfg = Release|Any CPU
4367
{37934AC8-0922-44DC-A250-022CB8486987}.Release|Any CPU.Build.0 = Release|Any CPU
4468
{37934AC8-0922-44DC-A250-022CB8486987}.Release|Any CPU.Deploy.0 = Release|Any CPU
69+
{37934AC8-0922-44DC-A250-022CB8486987}.Release|ARM64.ActiveCfg = Release|ARM64
70+
{37934AC8-0922-44DC-A250-022CB8486987}.Release|ARM64.Build.0 = Release|ARM64
71+
{37934AC8-0922-44DC-A250-022CB8486987}.Release|x64.ActiveCfg = Release|x64
72+
{37934AC8-0922-44DC-A250-022CB8486987}.Release|x64.Build.0 = Release|x64
73+
{37934AC8-0922-44DC-A250-022CB8486987}.Release|x86.ActiveCfg = Release|x86
74+
{37934AC8-0922-44DC-A250-022CB8486987}.Release|x86.Build.0 = Release|x86
4575
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4676
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
77+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Debug|ARM64.ActiveCfg = Debug|ARM64
78+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Debug|ARM64.Build.0 = Debug|ARM64
79+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Debug|x64.ActiveCfg = Debug|x64
80+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Debug|x64.Build.0 = Debug|x64
81+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Debug|x86.ActiveCfg = Debug|x86
82+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Debug|x86.Build.0 = Debug|x86
4783
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
4884
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Release|Any CPU.Build.0 = Release|Any CPU
85+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Release|ARM64.ActiveCfg = Release|ARM64
86+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Release|ARM64.Build.0 = Release|ARM64
87+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Release|x64.ActiveCfg = Release|x64
88+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Release|x64.Build.0 = Release|x64
89+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Release|x86.ActiveCfg = Release|x86
90+
{C4CC53B8-E8A1-4402-B95F-5991F38C47CC}.Release|x86.Build.0 = Release|x86
4991
EndGlobalSection
5092
GlobalSection(SolutionProperties) = preSolution
5193
HideSolutionNode = FALSE
@@ -56,5 +98,6 @@ Global
5698
EndGlobalSection
5799
GlobalSection(ExtensibilityGlobals) = postSolution
58100
RESX_ExcelExportMode = MultipleSheets
101+
SolutionGuid = {9BB97DAE-986F-449E-8D4B-1E61C2D6974E}
59102
EndGlobalSection
60103
EndGlobal

BadMC_Launcher/App.xaml.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using BadMC_Launcher.Classes;
22
using BadMC_Launcher.Classes.MainSearch;
3+
using BadMC_Launcher.Models.Datas;
4+
using BadMC_Launcher.Services;
35
using BadMC_Launcher.Services.ViewServices;
46
using BadMC_Launcher.Servicess;
57
using BadMC_Launcher.Servicess.Settings;
@@ -87,6 +89,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) {
8789
services.AddSingleton<ThemeSettingService>();
8890
services.AddSingleton<MainSideBarManagerService>();
8991
services.AddSingleton<MainMenuService>();
92+
services.AddSingleton<AppAssetsService>();
9093
services.AddTransient<SingleMinecraftConfigService>();
9194
})
9295
);

BadMC_Launcher/BadMC_Launcher.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
<Project Sdk="Uno.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>net9.0-desktop;net9.0</TargetFrameworks>
4-
<TargetFrameworks Condition=" $([MSBuild]::IsOSPlatform('windows')) ">$(TargetFrameworks);net9.0-windows10.0.26100</TargetFrameworks>
5-
<TargetFrameworks Condition=" !$([MSBuild]::IsOSPlatform('linux')) ">$(TargetFrameworks);net9.0-ios;net9.0-maccatalyst</TargetFrameworks>
3+
<TargetFrameworks>net9.0-maccatalyst;net9.0-windows10.0.26100;net9.0-desktop;net9.0</TargetFrameworks>
64
<LangVersion>preview</LangVersion>
75

86
<OutputType>Exe</OutputType>
@@ -58,6 +56,7 @@
5856
Mvvm;
5957
ThemeService;
6058
</UnoFeatures>
59+
<Platforms>AnyCPU;ARM64;x64;x86</Platforms>
6160
</PropertyGroup>
6261
<ItemGroup>
6362
<None Remove="Assets\Icons\appicon_foreground.png" />
@@ -69,8 +68,10 @@
6968
<PackageReference Include="CommunityToolkit.Labs.WinUI.TokenView" />
7069
<PackageReference Include="CommunityToolkit.WinUI.Behaviors" />
7170
<PackageReference Include="CommunityToolkit.WinUI.Controls.MetadataControl" />
71+
<PackageReference Include="CommunityToolkit.WinUI.Controls.Primitives" />
7272
<PackageReference Include="CommunityToolkit.WinUI.Controls.TokenizingTextBox" />
7373
<PackageReference Include="CommunityToolkit.WinUI.Converters" />
74+
<PackageReference Include="CommunityToolkit.WinUI.Extensions" />
7475
<PackageReference Include="CommunityToolkit.WinUI.Triggers" />
7576
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" />
7677
<PackageReference Include="MinecraftLaunch" />

BadMC_Launcher/BadMC_Launcher.csproj.user

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,46 @@
22
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
44
<_UnoSelectedTargetFramework>net9.0-windows10.0.26100</_UnoSelectedTargetFramework>
5-
<ActiveDebugProfile>BadMC_Launcher (WinAppSDK Packaged)</ActiveDebugProfile>
5+
<ActiveDebugProfile>BadMC_Launcher (WinAppSDK Unpackaged)</ActiveDebugProfile>
66
<ActiveDebugFramework>net9.0-windows10.0.26100</ActiveDebugFramework>
77
<IsFirstTimeProjectOpen>False</IsFirstTimeProjectOpen>
88
</PropertyGroup>
99
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-maccatalyst|AnyCPU'">
1010
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
1111
</PropertyGroup>
12+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-maccatalyst|x86'">
13+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
14+
</PropertyGroup>
15+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-maccatalyst|x64'">
16+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
17+
</PropertyGroup>
18+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-maccatalyst|ARM64'">
19+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
20+
</PropertyGroup>
1221
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-maccatalyst|AnyCPU'">
1322
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
1423
</PropertyGroup>
24+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-maccatalyst|x86'">
25+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
26+
</PropertyGroup>
27+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-maccatalyst|x64'">
28+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
29+
</PropertyGroup>
30+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net9.0-maccatalyst|ARM64'">
31+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
32+
</PropertyGroup>
1533
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-desktop|AnyCPU'">
1634
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
1735
</PropertyGroup>
36+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-desktop|x86'">
37+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
38+
</PropertyGroup>
39+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-desktop|x64'">
40+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
41+
</PropertyGroup>
42+
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-desktop|ARM64'">
43+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
44+
</PropertyGroup>
1845
<ItemGroup>
1946
<ApplicationDefinition Update="App.xaml">
2047
<SubType>Designer</SubType>

BadMC_Launcher/Classes/MainSearch/MainMenuSearchMinecraftEntryFilter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public IEnumerable<MainMenuSearchResultItem> Search(string searchText) {
2525
var viewItem = pathEntry.GetMinecraftItem(minecraftEntry);
2626
if (viewItem != null) {
2727
returnList.Add(new MainMenuSearchResultItem() {
28-
ItemTitle = viewItem.GetMinecraftName(),
28+
ItemTitle = viewItem.MinecraftId,
2929
ItemSubTitle = viewItem.MinecraftEntry.MinecraftFolderPath,
3030
ItemIcon = new Image() {
3131
Source = viewItem.MinecraftImage,
@@ -41,7 +41,7 @@ public IEnumerable<MainMenuSearchResultItem> Search(string searchText) {
4141

4242
public Action NavigateTo(MinecraftItem minecraftItem) {
4343
return () => {
44-
Debug.WriteLine($"诶诶还妹写呢Σ(っ °Д °;)っ {minecraftItem.GetMinecraftName()}");
44+
Debug.WriteLine($"诶诶还妹写呢Σ(っ °Д °;)っ {minecraftItem.MinecraftId}");
4545
};
4646
//throw new NotImplementedException("诶诶还妹写呢Σ(っ °Д °;)っ");
4747
//TODO: 弹出特定的版本页面

BadMC_Launcher/Classes/Minecraft/MinecraftItem.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
namespace BadMC_Launcher.Classes.Minecraft;
1818
public class MinecraftItem {
19-
public string MinecraftName { get => MinecraftEntry.Id; init; } = string.Empty;
19+
public string MinecraftId => MinecraftEntry.Id;
2020

2121
public required MinecraftEntry MinecraftEntry { get; set; }
2222

@@ -25,6 +25,4 @@ public class MinecraftItem {
2525
public required HashSet<MetadataItem> MinecraftTags { get; init; }
2626

2727
public bool IsStarred { get; set; }
28-
29-
public string GetMinecraftName() => MinecraftEntry.Id;
3028
}

BadMC_Launcher/Classes/Minecraft/MinecraftPathEntry.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class MinecraftPathEntry {
2121

2222
public MinecraftPathEntry() {
2323
}
24-
public required string MinecraftName {
24+
public required string MinecraftId {
2525
get => minecraftName;
2626
set {
2727
minecraftName = value;

BadMC_Launcher/Constants/Enums/BackgroundTypeEnum.cs renamed to BadMC_Launcher/Enums/BackgroundTypeEnum.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Text;
55
using System.Threading.Tasks;
66

7-
namespace BadMC_Launcher.Constants.Enums;
7+
namespace BadMC_Launcher.Enums;
88
public enum BackgroundTypeEnum {
99
SolidColor,
1010
StaticImage,

BadMC_Launcher/Constants/Enums/MainMenuItemSizeEnum.cs renamed to BadMC_Launcher/Enums/MainMenuItemSizeEnum.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Text;
55
using System.Threading.Tasks;
66

7-
namespace BadMC_Launcher.Constants.Enums;
7+
namespace BadMC_Launcher.Enums;
88

99
public enum MainMenuItemSizeEnum {
1010
Small,

BadMC_Launcher/Constants/Enums/MessengerTokenEnum.cs renamed to BadMC_Launcher/Enums/MessengerTokenEnum.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Text;
55
using System.Threading.Tasks;
66

7-
namespace BadMC_Launcher.Constants.Enums;
7+
namespace BadMC_Launcher.Enums;
88
public enum MessengerTokenEnum {
99
//MainPage
1010
//Func Token

BadMC_Launcher/Constants/Enums/MinecraftEntryImageEnum.cs renamed to BadMC_Launcher/Enums/MinecraftEntryImageEnum.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Text;
55
using System.Threading.Tasks;
66

7-
namespace BadMC_Launcher.Constants.Enums;
7+
namespace BadMC_Launcher.Enums;
88
public enum MinecraftEntryImageEnum {
99
Creeper,
1010
Drowned,

BadMC_Launcher/Constants/Enums/SharechTypeEnum.cs renamed to BadMC_Launcher/Enums/SharechTypeEnum.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Text;
55
using System.Threading.Tasks;
66

7-
namespace BadMC_Launcher.Constants.Enums;
7+
namespace BadMC_Launcher.Enums;
88

99
public enum SharechTypeEnum {
1010
}

BadMC_Launcher/Constants/Enums/ThemeTypeEnum.cs renamed to BadMC_Launcher/Enums/ThemeTypeEnum.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Text;
55
using System.Threading.Tasks;
66

7-
namespace BadMC_Launcher.Constants.Enums;
7+
namespace BadMC_Launcher.Enums;
88
public enum ThemeTypeEnum {
99
Light,
1010
Dark

BadMC_Launcher/Extensions/MinecraftEntryExtension.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@
55
using System.Linq;
66
using System.Text;
77
using System.Threading.Tasks;
8-
using BadMC_Launcher.Constants.Enums;
8+
using BadMC_Launcher.Enums;
99
using CommunityToolkit.WinUI.Controls;
10+
using Microsoft.UI.Xaml.Media.Imaging;
1011
using MinecraftLaunch.Base.Enums;
1112
using MinecraftLaunch.Base.Models.Game;
1213
using Uno.Extensions.Specialized;
1314

1415
namespace BadMC_Launcher.Extensions;
1516
public static class MinecraftEntryExtension {
16-
public static MinecraftEntryImageEnum GetMinecraftImage(this MinecraftEntry minecraftEntry) {
17+
public static MinecraftEntryImageEnum GetMinecraftImageEnum(this MinecraftEntry minecraftEntry) {
1718
if (File.Exists(Path.Combine(minecraftEntry.MinecraftFolderPath, @"BadBCConfigs\icon.png"))) {
1819
return MinecraftEntryImageEnum.Custom;
1920
}
@@ -59,8 +60,10 @@ public static MinecraftEntryImageEnum GetMinecraftImage(this MinecraftEntry mine
5960
return minecraftEntryImage;
6061
}
6162
}
63+
//TODO: 正式版别忘了改.png
6264
throw new NotImplementedException("欸等一下Σ(っ °Д °;)っ我们还没支持这个类型呢你怎么就给(*#……*!&@%!*……@");
6365
}
66+
6467
public static IEnumerable<MetadataItem> GetMinecraftEntryTags(this MinecraftEntry minecraftEntry) {
6568
var tags = new HashSet<MetadataItem>() { new MetadataItem() { Label = $"{minecraftEntry.Version.Type} {minecraftEntry.Version.VersionId}" } };
6669
if (minecraftEntry is ModifiedMinecraftEntry modifiedEntry) {

BadMC_Launcher/Extensions/MinecraftPathEntryExtension.cs

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
using System.Text;
66
using System.Threading.Tasks;
77
using BadMC_Launcher.Classes.Minecraft;
8-
using BadMC_Launcher.Constants.Enums;
8+
using BadMC_Launcher.Enums;
9+
using BadMC_Launcher.Services;
910
using CommunityToolkit.WinUI.Controls;
1011
using Microsoft.UI.Xaml.Media.Imaging;
1112
using MinecraftLaunch.Base.Models.Game;
@@ -27,24 +28,32 @@ public static class MinecraftPathEntryExtension {
2728
try {
2829
if (minecraftEntry != null) {
2930
var isStarred = false;
30-
string path;
31-
32-
var minecraftEntryImageEnum = minecraftEntry.GetMinecraftImage();
31+
var minecraftEntryImageEnum = minecraftEntry.GetMinecraftImageEnum();
32+
BitmapImage? image = null;
3333
if (minecraftEntryImageEnum == MinecraftEntryImageEnum.Custom) {
34-
path = Path.Combine(minecraftEntry.MinecraftFolderPath, @"BadBCConfigs\icon.png");
35-
if (!File.Exists(path)) {
36-
throw new FileNotFoundException($"\"{path}\" is not found.");
34+
var path = Path.Combine(minecraftEntry.MinecraftFolderPath, @"BadBCConfigs\icon.png");
35+
if (File.Exists(path)) {
36+
image = new(new Uri(path));
3737
}
3838
}
3939
else {
40-
path = @$"ms-appx:///Assets/Icons/MinecraftIcons/{minecraftEntryImageEnum.ToString().ToLower()}.png";
40+
if (App.GetService<AppAssetsService>().MinecraftImageInstance[minecraftEntryImageEnum].Value.TryGetTarget(out BitmapImage? instance)) {
41+
image = instance;
42+
}
43+
}
44+
45+
if (image == null) {
46+
//TODO: Dialog Ex
47+
image = new(new Uri($@"ms-appx:///Assets/Icons/MinecraftIcons/{MinecraftEntryImageEnum.Unknown.ToString().ToLower()}.png"));
4148
}
49+
4250
if (minecraftPath.StarredMinecraftIds != null) {
4351
isStarred = minecraftPath.StarredMinecraftIds.IndexOf(minecraftEntry.Id) >= 0;
4452
}
53+
4554
return new MinecraftItem() {
4655
MinecraftEntry = minecraftEntry,
47-
MinecraftImage = new BitmapImage() { UriSource = new Uri(path) },
56+
MinecraftImage = image,
4857
MinecraftTags = (HashSet<MetadataItem>)minecraftEntry.GetMinecraftEntryTags(),
4958
IsStarred = isStarred
5059
};
@@ -65,7 +74,7 @@ public static IEnumerable<MinecraftItem> GetMinecraftItems(this MinecraftPathEnt
6574
string path;
6675

6776
//Get Minecraft Icon
68-
var minecraftEntryImageEnum = entry.GetMinecraftImage();
77+
var minecraftEntryImageEnum = entry.GetMinecraftImageEnum();
6978
if (minecraftEntryImageEnum == MinecraftEntryImageEnum.Custom) {
7079
path = Path.Combine(entry.MinecraftFolderPath, @"BadBCConfigs\icon.png");
7180
if (!File.Exists(path)) {

BadMC_Launcher/GlobalUsings.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
global using System.Diagnostics;
2-
global using BadMC_Launcher.Constants;
32
global using BadMC_Launcher.Servicess;
43
global using CommunityToolkit.Mvvm.ComponentModel;
54
global using Microsoft.Extensions.DependencyInjection;

0 commit comments

Comments
 (0)