PageDownloadNeoForge.xaml.vb 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. Public Class PageDownloadNeoForge
  2. Private Sub LoaderInit() Handles Me.Initialized
  3. PageLoaderInit(Load, PanLoad, PanMain, CardTip, DlNeoForgeListLoader, 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. Dim Versions = Sort(DlNeoForgeListLoader.Output.Value, AddressOf VersionSortBoolean)
  12. PanMain.Children.Clear()
  13. For Each Version As String In Versions
  14. '增加卡片
  15. Dim NewCard As New MyCard With {.Title = Version.Replace("_p", " P"), .Margin = New Thickness(0, 0, 0, 15), .SwapType = 13}
  16. Dim NewStack As New StackPanel With {.Margin = New Thickness(20, MyCard.SwapedHeight, 18, 0), .VerticalAlignment = VerticalAlignment.Top, .RenderTransform = New TranslateTransform(0, 0), .Tag = Version}
  17. NewCard.Children.Add(NewStack)
  18. NewCard.SwapControl = NewStack
  19. NewCard.IsSwaped = True
  20. PanMain.Children.Add(NewCard)
  21. Next
  22. Catch ex As Exception
  23. Log(ex, "可视化 NeoForge 版本列表出错", LogLevel.Feedback)
  24. End Try
  25. End Sub
  26. Public Sub NeoForge_StateChanged(sender As MyLoading, newState As MyLoading.MyLoadingState, oldState As MyLoading.MyLoadingState)
  27. If newState <> MyLoading.MyLoadingState.Stop Then Exit Sub
  28. Dim Card As MyCard = CType(sender.Parent, FrameworkElement).Parent
  29. Dim Loader As LoaderTask(Of String, List(Of DlNeoForgeVersionEntry)) = sender.State
  30. '载入列表
  31. Card.SwapControl.Children.Clear()
  32. Card.SwapControl.Tag = Loader.Output
  33. Card.SwapType = 14
  34. Card.StackInstall()
  35. End Sub
  36. Public Sub NeoForge_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 DlNeoForgeVersionEntry))).Start(IsForceRestart:=True)
  39. End If
  40. End Sub
  41. Private Sub NeoForge_Selected(sender As MyListItem, e As EventArgs)
  42. McDownloadForgeSave(True, sender.Tag)
  43. End Sub
  44. Public Sub DownloadStart(sender As MyListItem, e As Object)
  45. McDownloadForge(True, sender.Tag)
  46. End Sub
  47. Private Sub BtnWeb_Click(sender As Object, e As EventArgs) Handles BtnWeb.Click
  48. OpenWebsite("https://neoforged.net/")
  49. End Sub
  50. End Class