launcher/pages/trainer/
tasks.rs1use supreme_dependencies::{
2 check_dependencies_exist, check_hd_fonts_needed, start_install_dependencies,
3 start_install_hd_fonts,
4};
5use supreme_fs::GameStorage;
6
7use crate::tasks::{TaskEvent, TaskHandle, spawn_task};
8
9#[must_use]
10pub fn start_trainer_checks(
11 ctx: eframe::egui::Context,
12 storage: &GameStorage,
13) -> TaskHandle<super::TrainerData> {
14 let storage = storage.clone();
15 spawn_task(ctx, move |tx| {
16 let deps = check_dependencies_exist(&storage);
17 let hd = if deps {
18 check_hd_fonts_needed(&storage)
19 } else {
20 false
21 };
22
23 let _ = tx.send(TaskEvent::PageData(super::TrainerData::DependenciesCheck(
24 deps,
25 )));
26 let _ = tx.send(TaskEvent::PageData(super::TrainerData::HdFontsCheck(hd)));
27
28 Ok(super::TrainerData::DependenciesCheck(deps))
29 })
30}
31
32#[must_use]
33pub fn start_install_deps(ctx: eframe::egui::Context, storage: &GameStorage) -> TaskHandle<()> {
34 let storage = storage.clone();
35 spawn_task(ctx, move |tx| {
36 let rx = start_install_dependencies(&storage);
37 for event in rx {
38 let _ = tx.send(TaskEvent::from(event).map(|()| ()));
39 }
40 Ok(())
41 })
42}
43
44#[must_use]
45pub fn start_install_fonts(ctx: eframe::egui::Context, storage: &GameStorage) -> TaskHandle<()> {
46 let storage = storage.clone();
47 spawn_task(ctx, move |tx| {
48 let rx = start_install_hd_fonts(&storage);
49 for event in rx {
50 let _ = tx.send(TaskEvent::from(event).map(|()| ()));
51 }
52 Ok(())
53 })
54}