anime-launcher-sdk/src/env_emulation.rs
Observer KRypt0n_ c38fc3206a
0.5.9
- added environment emulation feature
- updated core library to 1.5.1
2023-04-06 22:06:53 +02:00

77 lines
1.8 KiB
Rust

use serde::{Serialize, Deserialize};
use enum_ordinalize::Ordinalize;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Ordinalize)]
pub enum Environment {
/// `config.ini` format:
///
/// ```ini
/// [General]
/// channel=1
/// cps=mihoyo
/// game_version=[game version]
/// sub_channel=0
/// ```
PC,
/// `config.ini` format:
///
/// ```ini
/// [General]
/// channel=1
/// cps=pcseaepic
/// game_version=[game version]
/// # plugin_sdk_version=2.14.2 (??? not used now)
/// sub_channel=3
/// ```
Epic,
/// `config.ini` format:
///
/// ```ini
/// [General]
/// channel=1
/// cps=pcgoogle
/// game_version=[game version]
/// sub_channel=6
/// ```
Android
}
impl Default for Environment {
#[inline]
fn default() -> Self {
Self::PC
}
}
impl Environment {
/// Generate `config.ini`'s content
pub fn generate_config(&self, game_version: impl AsRef<str>) -> String {
match self {
Self::PC => [
"[General]",
"channel=1",
"cps=mihoyo",
&format!("game_version={}", game_version.as_ref()),
"sub_channel=0"
].join("\n"),
Self::Epic => [
"[General]",
"channel=1",
"cps=pcseaepic",
&format!("game_version={}", game_version.as_ref()),
"sub_channel=3"
].join("\n"),
Self::Android => [
"[General]",
"channel=1",
"cps=pcgoogle",
&format!("game_version={}", game_version.as_ref()),
"sub_channel=6"
].join("\n")
}
}
}