PageDownloadForge.xaml.vb 3.2 KB

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