This commit is contained in:
LTCat
2026-10-17 03:39:13 +08:00
parent 9dcb799fb0
commit ade6e04c6e
65 changed files with 6989 additions and 2643 deletions
+34 -20
View File
@@ -11,6 +11,13 @@ Public Class FormMain
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
'统计更新日志条目
If BuildType = BuildTypes.Release Then
If LastVersion < 411 Then 'Release 2.14.0.0
FeatureList.Add(New KeyValuePair(Of Integer, String)(5, "新增:允许修改、添加、移除、更新已安装版本的 MC 版本以及各个组件,可从版本设置中进入"))
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:启动游戏时允许按 Esc 取消"))
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:允许复制主页的启动日志中的内容"))
FeatureCount += 19
BugCount += 26
End If
If LastVersion < 408 Then 'Release 2.13.1.1
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:版本设置中,添加打开截图文件夹的快捷方式"))
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:导出整合包时,可以勾选导出光影设置文件"))
@@ -93,6 +100,13 @@ Public Class FormMain
'3:BUG+ IMP* FEAT-
'2:BUG* IMP-
'1:BUG-
If LastVersion < 412 Then 'Snapshot 2.14.0.0
FeatureList.Add(New KeyValuePair(Of Integer, String)(5, "新增:允许修改、添加、移除、更新已安装版本的 MC 版本以及各个组件,可从版本设置中进入"))
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:启动游戏时允许按 Esc 取消"))
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:允许复制主页的启动日志中的内容"))
FeatureCount += 19
BugCount += 26
End If
If LastVersion < 410 Then 'Snapshot 2.13.1.1
If LastVersion = 409 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:更新 Mod 时可能更新成另一个 Mod 加载器的版本"))
FeatureCount += 2
@@ -786,7 +800,7 @@ Public Class FormMain
If PanMsg.Children.Any Then
If e.Key = Key.Enter Then
CType(PanMsg.Children(0), Object).Btn1_Click()
ElseIf e.Key = Key.Escape OrElse (e.Key = Key.W AndAlso Keyboard.Modifiers.HasFlag(ModifierKeys.Control)) Then
ElseIf e.Key = Key.Escape Then
Dim Msg As Object = PanMsg.Children(0)
If TypeOf Msg IsNot MyMsgInput AndAlso TypeOf Msg IsNot MyMsgSelect AndAlso Msg.Btn3.Visibility = Visibility.Visible Then
Msg.Btn3_Click()
@@ -803,13 +817,13 @@ Public Class FormMain
' 在没有弹窗时:继续检查……
'==========================
'按 ESC:启动中则取消启动,否则返回上一级
'按 ESC 取消启动,或返回上一级
If e.Key = Key.Escape Then
If McLaunchLoader.State = LoadState.Loading Then
McLaunchCancel()
Else
TriggerPageBack()
If PageCurrent = FormMain.PageType.Launch AndAlso McLaunchLoader.State = LoadState.Loading Then
FrmLaunchLeft.BtnCancel_Click()
Return
End If
TriggerPageBack()
End If
'更改隐藏版本可见性
If e.Key = Key.F11 AndAlso PageCurrent = FormMain.PageType.InstanceSelect Then
@@ -834,11 +848,6 @@ Public Class FormMain
If TypeOf PageRight Is IRefreshable Then CType(PageRight, IRefreshable).Refresh()
Return
End If
'Ctrl + w 关闭程序
If e.Key = Key.W AndAlso Keyboard.Modifiers.HasFlag(ModifierKeys.Control) Then
EndProgram(True)
Return
End If
'调用启动游戏
If e.Key = Key.Enter AndAlso PageCurrent = FormMain.PageType.Launch Then
If IsAprilEnabled AndAlso Not IsAprilGiveup Then
@@ -1026,14 +1035,14 @@ Public Class FormMain
If FilePathList.Count > 1 Then
'必须要求全部为 jar 文件
For Each File In PathList
If Not {"jar", "litemod", "disabled", "old"}.Contains(File.AfterLast(".").Lower) Then
If Not {"jar", "litemod", "disabled", "old"}.Contains(PathUtils.GetExtension(File)) Then
Hint("一次请只拖入一个文件!", HintType.Red)
Return
End If
Next
End If
'主页
Dim Extension As String = FilePath.AfterLast(".").Lower
Dim Extension As String = PathUtils.GetExtension(FilePath)
If Extension = "xaml" Then
Logger.Info("文件后缀为 XAML,作为主页加载")
If FileUtils.Exists(Paths.Base & "PCL\Custom.xaml") Then
@@ -1054,9 +1063,9 @@ Public Class FormMain
If PageInstanceMod.InstallMods(PathList) Then Return
'安装整合包
If {"zip", "rar", "mrpack"}.Any(Function(t) t = Extension) Then '部分压缩包是 zip 格式但后缀为 rar,总之试一试
Logger.Info("文件为压缩包,尝试作为整合包安装")
Hint("检测到压缩包拖入,正在准备安装……")
Hint("正在读取压缩包……")
Try
Logger.Info("文件为压缩包,尝试作为整合包安装")
ModpackInstall(FilePath)
RunInUi(Sub() FrmMain.PageChange(FormMain.PageType.TaskManager))
Return
@@ -1067,7 +1076,7 @@ Public Class FormMain
End If
'RAR 处理
If Extension = "rar" Then
Hint("PCL 无法处理 rar 格式的压缩包,请在解压后重新压缩为 zip 格式再试!")
Hint("PCL 无法处理 rar 格式的压缩包,请在解压后重新压缩为 zip 格式再试!", HintType.Red)
Return
End If
'错误报告分析
@@ -1083,7 +1092,7 @@ Public Class FormMain
Logger.Error(ex, "自主错误报告分析失败")
End Try
'未知操作
Hint("PCL 无法确定应当执行的文件拖拽操作……")
Hint("PCL 无法确定适合的操作……", HintType.Red)
End Sub, "文件拖拽")
End Sub
@@ -1225,9 +1234,10 @@ Public Class FormMain
OtherTest = 2
InstanceOverall = 0
InstanceSetup = 1
InstanceMod = 2
InstanceModDisabled = 3
InstanceExport = 4
InstanceModify = 2
InstanceMod = 3
InstanceModDisabled = 4
InstanceExport = 5
End Enum
''' <summary>
''' 获取次级页面的名称。若并非次级页面则返回空字符串,故可以以此判断是否为次级页面。
@@ -1392,6 +1402,10 @@ Public Class FormMain
''' </summary>
Private Sub PageChangeActual(Stack As PageStackData, Optional SubType As PageSubType = -1)
If PageCurrent = Stack AndAlso (PageCurrentSub = SubType OrElse SubType = -1) Then Return
If Stack.Page = PageType.InstanceSetup AndAlso PageInstanceLeft.Instance IsNot Nothing AndAlso McInstanceLock.IsLocked(PageInstanceLeft.Instance) Then
Hint("该版本正在被修改,暂时无法进入版本设置!", HintType.Red)
Return
End If
AniControlEnabled += 1
Try