mirror of
https://github.com/lifegpc/msg-tool.git
synced 2026-06-09 06:18:46 +08:00
Add features for each script type
This commit is contained in:
@@ -18,10 +18,16 @@ impl FixedFormatter {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "circus")]
|
||||
fn is_circus(&self) -> bool {
|
||||
matches!(self.typ, Some(ScriptType::Circus))
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "circus"))]
|
||||
fn is_circus(&self) -> bool {
|
||||
false
|
||||
}
|
||||
|
||||
pub fn format(&self, message: &str) -> String {
|
||||
let mut result = String::new();
|
||||
let vec: Vec<_> = UnicodeSegmentation::graphemes(message, true).collect();
|
||||
|
||||
@@ -1,15 +1,22 @@
|
||||
pub mod base;
|
||||
#[cfg(feature = "bgi")]
|
||||
pub mod bgi;
|
||||
#[cfg(feature = "circus")]
|
||||
pub mod circus;
|
||||
#[cfg(feature = "escude")]
|
||||
pub mod escude;
|
||||
|
||||
pub use base::{Script, ScriptBuilder};
|
||||
|
||||
lazy_static::lazy_static! {
|
||||
pub static ref BUILDER: Vec<Box<dyn ScriptBuilder + Sync + Send>> = vec![
|
||||
#[cfg(feature = "circus")]
|
||||
Box::new(circus::script::CircusMesScriptBuilder::new()),
|
||||
#[cfg(feature = "bgi")]
|
||||
Box::new(bgi::script::BGIScriptBuilder::new()),
|
||||
#[cfg(feature = "escude")]
|
||||
Box::new(escude::archive::EscudeBinArchiveBuilder::new()),
|
||||
#[cfg(feature = "escude")]
|
||||
Box::new(escude::script::EscudeBinScriptBuilder::new()),
|
||||
];
|
||||
pub static ref ALL_EXTS: Vec<String> =
|
||||
|
||||
@@ -182,13 +182,17 @@ pub struct ExtraConfig {
|
||||
#[derive(Clone, Copy, Debug, ValueEnum, PartialEq, Eq, PartialOrd, Ord)]
|
||||
/// Script type
|
||||
pub enum ScriptType {
|
||||
#[cfg(feature = "circus")]
|
||||
/// Circus MES script
|
||||
Circus,
|
||||
#[cfg(feature = "bgi")]
|
||||
#[value(alias("ethornell"))]
|
||||
/// Buriko General Interpreter/Ethornell Script
|
||||
BGI,
|
||||
#[cfg(feature = "escude")]
|
||||
/// Escude bin archive
|
||||
EscudeArc,
|
||||
#[cfg(feature = "escude")]
|
||||
/// Escude bin script
|
||||
Escude,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user