mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2026-03-22 06:08:52 +00:00
53 lines
1.7 KiB
Rust
53 lines
1.7 KiB
Rust
use babylonia_terminal_sdk::game_config::GameConfig;
|
|
|
|
use crate::messages::{
|
|
config::{
|
|
ConfigInput, ConfigOutput, GetLaunchOptionsInput, GetLaunchOptionsOutput,
|
|
SetLaunchOptionsInput,
|
|
},
|
|
error::ReportError,
|
|
};
|
|
|
|
pub async fn listen_config() {
|
|
let mut receiver = ConfigInput::get_dart_signal_receiver().unwrap();
|
|
while let Some(_) = receiver.recv().await {
|
|
let config = GameConfig::get_config().await;
|
|
ConfigOutput {
|
|
config_path: config.config_dir.to_str().unwrap().to_string(),
|
|
}
|
|
.send_signal_to_dart();
|
|
}
|
|
}
|
|
|
|
pub async fn listen_get_launch_options() {
|
|
let mut receiver = GetLaunchOptionsInput::get_dart_signal_receiver().unwrap();
|
|
while let Some(_) = receiver.recv().await {
|
|
let launch_options_result = GameConfig::get_launch_options().await;
|
|
if let Err(err) = launch_options_result {
|
|
ReportError {
|
|
error_message: format!("Failed to get launch options :\n{:?}", err),
|
|
}
|
|
.send_signal_to_dart();
|
|
continue;
|
|
}
|
|
|
|
GetLaunchOptionsOutput {
|
|
launch_options: launch_options_result.unwrap(),
|
|
}
|
|
.send_signal_to_dart();
|
|
}
|
|
}
|
|
|
|
pub async fn listen_set_launch_options() {
|
|
let mut receiver = SetLaunchOptionsInput::get_dart_signal_receiver().unwrap();
|
|
while let Some(dart_signal) = receiver.recv().await {
|
|
let result = GameConfig::set_launch_options(dart_signal.message.launch_options).await;
|
|
if let Err(err) = result {
|
|
ReportError {
|
|
error_message: format!("Failed to set launch options :\n{:?}", err),
|
|
}
|
|
.send_signal_to_dart();
|
|
}
|
|
}
|
|
}
|