| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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
|