mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 04:55:15 +08:00
50 lines
1.7 KiB
Rust
50 lines
1.7 KiB
Rust
use bat_adapters::unity::{Unity2021_3Adapter, UnityAdapterRegistry};
|
|
use bat_adapters::unity::RawAssetBundle;
|
|
use std::sync::Arc;
|
|
|
|
fn main() {
|
|
println!("🎮 BlueArchiveToolkit - Unity 适配器演示");
|
|
println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
|
|
// 创建 Unity Adapter
|
|
let adapter = Unity2021_3Adapter::new();
|
|
println!("✅ Unity Adapter: {}", adapter.name());
|
|
println!(" 支持版本: 2021.3.0 - 2021.3.99");
|
|
|
|
// 模拟 UnityFS 文件头
|
|
println!("\n📦 测试 Unity 版本检测...");
|
|
let mut bundle_data = Vec::new();
|
|
bundle_data.extend_from_slice(b"UnityFS\0");
|
|
bundle_data.extend_from_slice(&[0, 0, 0, 8]);
|
|
bundle_data.extend_from_slice(b"5.x.x\02021.3.56f2\0");
|
|
|
|
let bundle = RawAssetBundle {
|
|
data: bundle_data,
|
|
path: Some("test.bundle".to_string()),
|
|
};
|
|
|
|
if adapter.can_handle(&bundle) {
|
|
println!(" ✅ 可以处理 Unity 2021.3.56f2");
|
|
} else {
|
|
println!(" ❌ 不支持此版本");
|
|
}
|
|
|
|
// 测试 Registry
|
|
println!("\n🔄 测试 Adapter Registry...");
|
|
let mut registry = UnityAdapterRegistry::new();
|
|
registry.register(Arc::new(Unity2021_3Adapter::new()));
|
|
println!(" 注册的适配器数量: {}", registry.count());
|
|
|
|
match registry.select_adapter(&bundle) {
|
|
Ok(selected) => {
|
|
println!(" ✅ 自动选择的适配器: {}", selected.name());
|
|
}
|
|
Err(e) => {
|
|
println!(" ❌ 选择失败: {}", e);
|
|
}
|
|
}
|
|
|
|
println!("\n✅ 演示完成!");
|
|
println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
|
}
|