1#[cfg(feature = "artemis")]
3pub mod artemis;
4pub mod base;
5#[cfg(feature = "bgi")]
6pub mod bgi;
7#[cfg(feature = "cat-system")]
8pub mod cat_system;
9#[cfg(feature = "circus")]
10pub mod circus;
11#[cfg(feature = "emote-img")]
12pub mod emote;
13#[cfg(feature = "entis-gls")]
14pub mod entis_gls;
15#[cfg(feature = "escude")]
16pub mod escude;
17#[cfg(feature = "ex-hibit")]
18pub mod ex_hibit;
19#[cfg(feature = "favorite")]
20pub mod favorite;
21#[cfg(feature = "hexen-haus")]
22pub mod hexen_haus;
23#[cfg(feature = "kirikiri")]
24pub mod kirikiri;
25#[cfg(feature = "musica")]
26pub mod musica;
27#[cfg(feature = "qlie")]
28pub mod qlie;
29#[cfg(feature = "silky")]
30pub mod silky;
31#[cfg(feature = "softpal")]
32pub mod softpal;
33#[cfg(feature = "will-plus")]
34pub mod will_plus;
35#[cfg(feature = "yaneurao")]
36pub mod yaneurao;
37#[cfg(feature = "yuris")]
38pub mod yuris;
39
40pub use base::{Script, ScriptBuilder};
41
42lazy_static::lazy_static! {
43 pub static ref BUILDER: Vec<Box<dyn ScriptBuilder + Sync + Send>> = vec![
45 #[cfg(feature = "circus")]
46 Box::new(circus::script::CircusMesScriptBuilder::new()),
47 #[cfg(feature = "bgi")]
48 Box::new(bgi::script::BGIScriptBuilder::new()),
49 #[cfg(feature = "bgi")]
50 Box::new(bgi::bsi::BGIBsiScriptBuilder::new()),
51 #[cfg(feature = "bgi")]
52 Box::new(bgi::bp::BGIBpScriptBuilder::new()),
53 #[cfg(feature = "bgi-arc")]
54 Box::new(bgi::archive::v1::BgiArchiveBuilder::new()),
55 #[cfg(feature = "bgi-arc")]
56 Box::new(bgi::archive::v2::BgiArchiveBuilder::new()),
57 #[cfg(feature = "bgi-arc")]
58 Box::new(bgi::archive::dsc::DscBuilder::new()),
59 #[cfg(feature = "bgi-img")]
60 Box::new(bgi::image::img::BgiImageBuilder::new()),
61 #[cfg(feature = "bgi-img")]
62 Box::new(bgi::image::cbg::BgiCBGBuilder::new()),
63 #[cfg(feature = "escude-arc")]
64 Box::new(escude::archive::EscudeBinArchiveBuilder::new()),
65 #[cfg(feature = "escude")]
66 Box::new(escude::script::EscudeBinScriptBuilder::new()),
67 #[cfg(feature = "escude")]
68 Box::new(escude::list::EscudeBinListBuilder::new()),
69 #[cfg(feature = "yaneurao-itufuru")]
70 Box::new(yaneurao::itufuru::script::ItufuruScriptBuilder::new()),
71 #[cfg(feature = "yaneurao-itufuru")]
72 Box::new(yaneurao::itufuru::archive::ItufuruArchiveBuilder::new()),
73 #[cfg(feature = "cat-system-arc")]
74 Box::new(cat_system::archive::int::CSIntArcBuilder::new()),
75 #[cfg(feature = "cat-system-img")]
76 Box::new(cat_system::image::hg3::Hg3ImageBuilder::new()),
77 #[cfg(feature = "kirikiri")]
78 Box::new(kirikiri::scn::ScnScriptBuilder::new()),
79 #[cfg(feature = "kirikiri")]
80 Box::new(kirikiri::simple_crypt::SimpleCryptBuilder::new()),
81 #[cfg(feature = "kirikiri")]
82 Box::new(kirikiri::ks::KsBuilder::new()),
83 #[cfg(feature = "kirikiri-img")]
84 Box::new(kirikiri::image::tlg::TlgImageBuilder::new()),
85 #[cfg(feature = "emote-img")]
86 Box::new(emote::pimg::PImgBuilder::new()),
87 #[cfg(feature = "emote-img")]
88 Box::new(emote::dref::DrefBuilder::new()),
89 #[cfg(feature = "kirikiri")]
90 Box::new(kirikiri::mdf::MdfBuilder::new()),
91 #[cfg(feature = "will-plus")]
92 Box::new(will_plus::ws2::Ws2ScriptBuilder::new()),
93 #[cfg(feature = "cat-system")]
94 Box::new(cat_system::cst::CstScriptBuilder::new()),
95 #[cfg(feature = "artemis-arc")]
96 Box::new(artemis::archive::pfs::ArtemisArcBuilder::new()),
97 #[cfg(feature = "artemis")]
98 Box::new(artemis::ast::AstScriptBuilder::new()),
99 #[cfg(feature = "artemis")]
100 Box::new(artemis::asb::ArtemisAsbBuilder::new()),
101 #[cfg(feature = "hexen-haus")]
102 Box::new(hexen_haus::bin::BinScriptBuilder::new()),
103 #[cfg(feature = "circus-img")]
104 Box::new(circus::image::crx::CrxImageBuilder::new()),
105 #[cfg(feature = "cat-system")]
106 Box::new(cat_system::cstl::CstlScriptBuilder::new()),
107 #[cfg(feature = "circus-arc")]
108 Box::new(circus::archive::pck::PckArchiveBuilder::new()),
109 #[cfg(feature = "circus-audio")]
110 Box::new(circus::audio::pcm::PcmBuilder::new()),
111 #[cfg(feature = "ex-hibit")]
112 Box::new(ex_hibit::rld::RldScriptBuilder::new()),
113 #[cfg(feature = "circus-arc")]
114 Box::new(circus::archive::dat::DatArchiveBuilder::new()),
115 #[cfg(feature = "circus-arc")]
116 Box::new(circus::archive::crm::CrmArchiveBuilder::new()),
117 #[cfg(feature = "circus-img")]
118 Box::new(circus::image::crxd::CrxdImageBuilder::new()),
119 #[cfg(feature = "bgi-audio")]
120 Box::new(bgi::audio::audio::BgiAudioBuilder::new()),
121 #[cfg(feature = "entis-gls")]
122 Box::new(entis_gls::srcxml::SrcXmlScriptBuilder::new()),
123 #[cfg(feature = "softpal-arc")]
124 Box::new(softpal::arc::pac::SoftpalPacBuilder::new()),
125 #[cfg(feature = "softpal-arc")]
126 Box::new(softpal::arc::pac::SoftpalPacBuilder::new_amuse()),
127 #[cfg(feature = "softpal")]
128 Box::new(softpal::scr::SoftpalScriptBuilder::new()),
129 #[cfg(feature = "artemis-panmimisoft")]
130 Box::new(artemis::panmimisoft::txt::TxtBuilder::new()),
131 #[cfg(feature = "kirikiri")]
132 Box::new(kirikiri::tjs_ns0::TjsNs0Builder::new()),
133 #[cfg(feature = "kirikiri")]
134 Box::new(kirikiri::tjs2::Tjs2Builder::new()),
135 #[cfg(feature = "silky")]
136 Box::new(silky::mes::MesBuilder::new()),
137 #[cfg(feature = "favorite")]
138 Box::new(favorite::hcb::HcbScriptBuilder::new()),
139 #[cfg(feature = "silky")]
140 Box::new(silky::map::MapBuilder::new()),
141 #[cfg(feature = "emote-img")]
142 Box::new(emote::psb::PsbBuilder::new()),
143 #[cfg(feature = "softpal-img")]
144 Box::new(softpal::img::pgd::ge::PgdGeBuilder::new()),
145 #[cfg(feature = "softpal-img")]
146 Box::new(softpal::img::pgd::pgd3::Pgd3Builder::new()),
147 #[cfg(feature = "ex-hibit-arc")]
148 Box::new(ex_hibit::arc::grp::ExHibitGrpArchiveBuilder::new()),
149 #[cfg(feature = "hexen-haus-arc")]
150 Box::new(hexen_haus::archive::arcc::HexenHausArccArchiveBuilder::new()),
151 #[cfg(feature = "artemis-arc")]
152 Box::new(artemis::archive::pf2::ArtemisPf2Builder::new()),
153 #[cfg(feature = "hexen-haus-arc")]
154 Box::new(hexen_haus::archive::wag::HexenHausWagArchiveBuilder::new()),
155 #[cfg(feature = "hexen-haus-img")]
156 Box::new(hexen_haus::img::png::PngImageBuilder::new()),
157 #[cfg(feature = "hexen-haus-arc")]
158 Box::new(hexen_haus::archive::odio::HexenHausOdioArchiveBuilder::new()),
159 #[cfg(feature = "will-plus-img")]
160 Box::new(will_plus::img::wip::WillPlusWipImageBuilder::new()),
161 #[cfg(feature = "artemis")]
162 Box::new(artemis::txt::ArtemisTxtBuilder::new()),
163 #[cfg(feature = "kirikiri-arc")]
164 Box::new(kirikiri::archive::xp3::Xp3ArchiveBuilder::new()),
165 #[cfg(feature = "musica")]
166 Box::new(musica::sc::MusicaBuilder::new()),
167 #[cfg(feature = "musica-arc")]
168 Box::new(musica::archive::paz::PazArcBuilder::new()),
169 #[cfg(feature = "entis-gls")]
170 Box::new(entis_gls::csx::CSXScriptBuilder::new()),
171 #[cfg(feature = "qlie")]
172 Box::new(qlie::script::QlieScriptBuilder::new()),
173 #[cfg(feature = "qlie-arc")]
174 Box::new(qlie::archive::pack::QliePackArchiveBuilder::new()),
175 #[cfg(feature = "qlie-img")]
176 Box::new(qlie::image::dpng::DpngImageBuilder::new()),
177 #[cfg(feature = "qlie-img")]
178 Box::new(qlie::image::abmp10::Abmp10ImageBuilder::new()),
179 #[cfg(feature = "yuris")]
180 Box::new(yuris::yscm::YSCMBuilder::new()),
181 #[cfg(feature = "yuris")]
182 Box::new(yuris::yser::YSERBuilder::new()),
183 #[cfg(feature = "yuris")]
184 Box::new(yuris::yscfg::YSCFGBuilder::new()),
185 #[cfg(feature = "yuris")]
186 Box::new(yuris::ystb::YSTBBuilder::new()),
187 #[cfg(feature = "yuris")]
188 Box::new(yuris::txt::YurisTxtBuilder::new()),
189 #[cfg(feature = "yuris-img")]
190 Box::new(yuris::img::ydg::YDGImageBuilder::new()),
191 #[cfg(feature = "yuris")]
192 Box::new(yuris::ystl::YSTLBuilder::new()),
193 #[cfg(feature = "yuris")]
194 Box::new(yuris::yslb::YSLBBuilder::new()),
195 #[cfg(feature = "yuris")]
196 Box::new(yuris::ysvr::YSVRBuilder::new()),
197 #[cfg(feature = "yuris")]
198 Box::new(yuris::ystd::YSTDBuilder::new()),
199 #[cfg(feature = "yuris-arc")]
200 Box::new(yuris::arc::ypf::YpfBuilder::new()),
201 ];
202 pub static ref ALL_EXTS: Vec<String> =
204 BUILDER.iter().flat_map(|b| b.extensions()).map(|s| s.to_string()).collect();
205 pub static ref ARCHIVE_EXTS: Vec<String> =
207 BUILDER.iter().filter(|b| b.is_archive()).flat_map(|b| b.extensions()).map(|s| s.to_string()).collect();
208}