20个版本 (11个破坏性版本)
0.12.4 | 2024年8月7日 |
---|---|
0.12.3 | 2024年7月18日 |
0.12.2 | 2024年4月30日 |
0.12.0 | 2023年12月13日 |
0.2.1 | 2021年3月12日 |
#92 in 压缩
每月422次下载
用于 9 个crate(8个直接使用)
435KB
10K SLoC
TwMap
还可以看看: TwGpu (渲染器),Python绑定,Blender插件
此库的目标
- 性能
- 合理的地图标准
- 兼容所有Teeworlds (0.7) 地图和DDNet (0.6) 地图
二进制地图格式在libtw2仓库中记录这里。
请注意,库支持编译为WebAssembly。从版本 0.10.0
开始,在WebAssembly中保存地图应产生相同的二进制输出。
用法
- 在您的
Cargo.toml
中添加twmap = 0.12.4
- 查看文档
支持的地图格式
- DDNet (0.6)
- Vanilla (0.7)
- MapDir
- 基于文件夹/目录的格式
- 嵌入的图像作为.png文件
- 嵌入的声音作为.opus文件
- 结构的其他部分作为.json文件
压缩
二进制地图数据的一部分使用zlib压缩,这是加载地图时的主要减速因素。为了补偿这一点,库在解析时不会加载层、图像和声音数据,而是可以手动完成。
如果您想再次保存地图,库会自动解压缩所有内容(这是在 save
方法中实现的)。但是,如果不是这种情况,您只想读取其中的一部分,则可以暂缓在地图结构体上执行 load
方法。相反,只需对您想读取的地图压缩部分执行 load
。
请注意,库提供的某些方法需要正确加载其部分内容。在处理部分未加载的地图时请记住这一点。
检查
此库在保存地图时对其地图结构体施加了许多约束。例如,每个地图必须有一个游戏组、游戏层,层名最多11个字节等。所有约束都是为了确保正确的保存和解析,这意味着库保证您得到良好行为的地图。
请注意,库提供的许多方法需要满足某些约束。当使用 parse_unchecked
而不是 parse
时请记住这一点,后者将省略大部分检查。
依赖项
~11–24MB
~307K SLoC