PageDownloadForge.xaml.vb 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. Public Class PageDownloadForge
  2. Private Sub LoaderInit() Handles Me.Initialized
  3. PageLoaderInit(Load, PanLoad, PanMain, CardTip, DlForgeListLoader, AddressOf Load_OnFinish)
  4. End Sub
  5. Private Sub Init() Handles Me.Loaded
  6. PanBack.ScrollToHome()
  7. End Sub
  8. Private Sub Load_OnFinish()
  9. '结果数据化
  10. Try
  11. '排序
  12. Dim Versions = Sort(DlForgeListLoader.Output.Value, AddressOf VersionSortBoolean)
  13. '清空当前
  14. PanMain.Children.Clear()
  15. '转化为 UI
  16. For Each Version As String In Versions
  17. '增加卡片
  18. Dim NewCard As New MyCard With {.Title = Version.Replace("_p", " P"), .Margin = New Thickness(0, 0, 0, 15), .SwapType = 5}
  19. Dim NewStack As New StackPanel With {.Margin = New Thickness(20, MyCard.SwapedHeight, 18, 0), .VerticalAlignment = VerticalAlignment.Top, .RenderTransform = New TranslateTransform(0, 0), .Tag = Version}
  20. NewCard.Children.Add(NewStack)
  21. NewCard.SwapControl = NewStack
  22. NewCard.IsSwaped = True
  23. PanMain.Children.Add(NewCard)
  24. Next
  25. ''非官方源警示
  26. 'If Setup.Get("ToolDownloadOutOfDate") AndAlso Not DlForgeListLoader.Output.IsOfficial Then
  27. ' Dim CardWarn As New MyCard With {.Title = "过期提示", .Margin = New Thickness(0, 0, 0, 15)}
  28. ' CardWarn.Children.Add(New TextBlock With {
  29. ' .Margin = New Thickness(25, MyCard.SwapedHeight, 15, 15), .VerticalAlignment = VerticalAlignment.Top, .HorizontalAlignment = HorizontalAlignment.Left, .TextTrimming = TextTrimming.None, .TextWrapping = TextWrapping.Wrap,
  30. ' .Text = "获取官方源失败,正在使用 " & DlForgeListLoader.Output.SourceName & " 镜像源,版本列表可能并非最新。" & vbCrLf & "官方源错误原因:" & If(DlForgeListLoader.Output.OfficialError, New Exception("连接服务器超时")).Message})
  31. ' PanMain.Children.Insert(0, CardWarn)
  32. 'End If
  33. Catch ex As Exception
  34. Log(ex, "可视化版本列表出错", LogLevel.Feedback)
  35. End Try
  36. End Sub
  37. 'Forge 版本列表加载
  38. Public Sub Forge_Click(sender As MyLoading, e As MouseButtonEventArgs)
  39. If sender.State.LoadingState = MyLoading.MyLoadingState.Error Then
  40. CType(sender.State, LoaderTask(Of String, List(Of DlForgeVersionEntry))).Start(IsForceRestart:=True)
  41. End If
  42. End Sub
  43. Public Sub Forge_StateChanged(sender As MyLoading, newState As MyLoading.MyLoadingState, oldState As MyLoading.MyLoadingState)
  44. If newState <> MyLoading.MyLoadingState.Stop Then Exit Sub
  45. Dim Card As MyCard = CType(sender.Parent, FrameworkElement).Parent
  46. Dim Loader As LoaderTask(Of String, List(Of DlForgeVersionEntry)) = sender.State
  47. '载入列表
  48. Card.SwapControl.Children.Clear()
  49. Card.SwapControl.Tag = Loader.Output
  50. Card.SwapType = 6
  51. Card.StackInstall()
  52. End Sub
  53. Public Sub DownloadStart(sender As MyListItem, e As Object)
  54. McDownloadForge(sender.Tag)
  55. End Sub
  56. '介绍栏
  57. Private Sub BtnWeb_Click(sender As Object, e As EventArgs) Handles BtnWeb.Click
  58. OpenWebsite("https://files.minecraftforge.net")
  59. End Sub
  60. End Class