feat(artemis): add support for ぱんみみそふと TXT scripts

- Updated main.rs to include new configuration options for artemis-panmimisoft.
- Modified asb.rs to handle both .asb and .iet file extensions.
- Introduced new module for panmimisoft scripts and implemented TxtBuilder for parsing.
- Enhanced the parser to support new tag structures and attributes specific to ぱんみみそふと scripts.
- Updated types.rs to reflect changes in configuration options and script types.
- Adjusted mod.rs to register the new TxtBuilder for panmimisoft.
This commit is contained in:
2025-08-28 20:35:11 +08:00
parent bb27378450
commit 7b3b852483
11 changed files with 210 additions and 61 deletions

View File

@@ -344,14 +344,14 @@ pub struct ExtraConfig {
/// Use another parser to parse the script.
/// Should only be used when the default parser not works well.
pub will_plus_ws2_no_disasm: bool,
#[cfg(feature = "artemis")]
#[cfg(feature = "artemis-panmimisoft")]
/// Artemis Engine blacklist tag names for TXT script.
/// This is used to ignore these tags when finding names in Artemis TXT script.
pub artemis_txt_blacklist_names: std::sync::Arc<std::collections::HashSet<String>>,
#[cfg(feature = "artemis")]
/// Specify the language of Artemis TXT script.
/// This is used to ignore these tags when finding names in Artemis TXT (ぱんみみそふと) script.
pub artemis_panmimisoft_txt_blacklist_names: std::sync::Arc<std::collections::HashSet<String>>,
#[cfg(feature = "artemis-panmimisoft")]
/// Specify the language of Artemis TXT (ぱんみみそふと) script.
/// If not specified, the first language will be used.
pub artemis_txt_lang: Option<String>,
pub artemis_panmimisoft_txt_lang: Option<String>,
}
#[derive(Clone, Copy, Debug, ValueEnum, PartialEq, Eq, PartialOrd, Ord)]
@@ -363,9 +363,9 @@ pub enum ScriptType {
#[cfg(feature = "artemis")]
/// Artemis Engine ASB script
ArtemisAsb,
#[cfg(feature = "artemis")]
/// Artemis Engine TXT script
ArtemisTxt,
#[cfg(feature = "artemis-panmimisoft")]
/// Artemis Engine TXT (ぱんみみそふと) script
ArtemisPanmimisoftTxt,
#[cfg(feature = "artemis-arc")]
#[value(alias("pfs"))]
/// Artemis archive (pfs)