68 lines
3.3 KiB
VB.net
68 lines
3.3 KiB
VB.net
Public Class PageDownloadForge
|
|
|
|
Private Sub LoaderInit() Handles Me.Initialized
|
|
PageLoaderInit(Load, PanLoad, PanMain, CardTip, DlForgeListLoader, AddressOf Load_OnFinish)
|
|
End Sub
|
|
Private Sub Init() Handles Me.Loaded
|
|
PanBack.ScrollToHome()
|
|
End Sub
|
|
|
|
Private Sub Load_OnFinish()
|
|
'结果数据化
|
|
Try
|
|
'排序
|
|
Dim Versions = Sort(DlForgeListLoader.Output.Value, AddressOf VersionSortBoolean)
|
|
'清空当前
|
|
PanMain.Children.Clear()
|
|
'转化为 UI
|
|
For Each Version As String In Versions
|
|
'增加卡片
|
|
Dim NewCard As New MyCard With {.Title = Version.Replace("_p", " P"), .Margin = New Thickness(0, 0, 0, 15), .SwapType = 5}
|
|
Dim NewStack As New StackPanel With {.Margin = New Thickness(20, MyCard.SwapedHeight, 18, 0), .VerticalAlignment = VerticalAlignment.Top, .RenderTransform = New TranslateTransform(0, 0), .Tag = Version}
|
|
NewCard.Children.Add(NewStack)
|
|
NewCard.SwapControl = NewStack
|
|
NewCard.IsSwaped = True
|
|
PanMain.Children.Add(NewCard)
|
|
Next
|
|
''非官方源警示
|
|
'If Setup.Get("ToolDownloadOutOfDate") AndAlso Not DlForgeListLoader.Output.IsOfficial Then
|
|
' Dim CardWarn As New MyCard With {.Title = "过期提示", .Margin = New Thickness(0, 0, 0, 15)}
|
|
' CardWarn.Children.Add(New TextBlock With {
|
|
' .Margin = New Thickness(25, MyCard.SwapedHeight, 15, 15), .VerticalAlignment = VerticalAlignment.Top, .HorizontalAlignment = HorizontalAlignment.Left, .TextTrimming = TextTrimming.None, .TextWrapping = TextWrapping.Wrap,
|
|
' .Text = "获取官方源失败,正在使用 " & DlForgeListLoader.Output.SourceName & " 镜像源,版本列表可能并非最新。" & vbCrLf & "官方源错误原因:" & If(DlForgeListLoader.Output.OfficialError, New Exception("连接服务器超时")).Message})
|
|
' PanMain.Children.Insert(0, CardWarn)
|
|
'End If
|
|
Catch ex As Exception
|
|
Log(ex, "可视化版本列表出错", LogLevel.Feedback)
|
|
End Try
|
|
End Sub
|
|
|
|
'Forge 版本列表加载
|
|
Public Sub Forge_Click(sender As MyLoading, e As MouseButtonEventArgs)
|
|
If sender.State.LoadingState = MyLoading.MyLoadingState.Error Then
|
|
CType(sender.State, LoaderTask(Of String, List(Of DlForgeVersionEntry))).Start(IsForceRestart:=True)
|
|
End If
|
|
End Sub
|
|
Public Sub Forge_StateChanged(sender As MyLoading, newState As MyLoading.MyLoadingState, oldState As MyLoading.MyLoadingState)
|
|
If newState <> MyLoading.MyLoadingState.Stop Then Exit Sub
|
|
|
|
Dim Card As MyCard = CType(sender.Parent, FrameworkElement).Parent
|
|
Dim Loader As LoaderTask(Of String, List(Of DlForgeVersionEntry)) = sender.State
|
|
'载入列表
|
|
Card.SwapControl.Children.Clear()
|
|
Card.SwapControl.Tag = Loader.Output
|
|
Card.SwapType = 6
|
|
Card.StackInstall()
|
|
End Sub
|
|
|
|
Public Sub DownloadStart(sender As MyListItem, e As Object)
|
|
McDownloadForge(sender.Tag)
|
|
End Sub
|
|
|
|
'介绍栏
|
|
Private Sub BtnWeb_Click(sender As Object, e As EventArgs) Handles BtnWeb.Click
|
|
OpenWebsite("https://files.minecraftforge.net")
|
|
End Sub
|
|
|
|
End Class
|