#element #deserialize #codec #section #read-file #packet #toolkit

wg-toolkit

Wargaming.net(BigWorld,Core 引擎)发布的各种二进制和文本格式工具包

6 个版本

0.4.1 2024年4月1日
0.4.0 2024年3月30日
0.2.0 2022年10月25日
0.1.2 2022年2月15日

游戏 中排名 #187

Download history 3/week @ 2024-04-09 51/week @ 2024-04-23

每月下载量 258
用于 wg-toolkit-cli

MIT 许可证

305KB
6K SLoC

WG Toolkit

提供 Wargaming.net(BigWorld,Core 引擎)发布的各种编解码器实现的工具包。这些编解码器是 Core 引擎(之前称为 BigWorld)的一部分,特别用于《坦克世界》。此工具包还提供网络协议的实现。

  • 工具包页面
  • 工具包文档
  • 打包 XML 编解码器
    • 反序列化
    • 序列化
  • 坦克模型编解码器
    • 视觉树反序列化
    • 顶点/索引反序列化
  • 编译空间编解码器 (进行中)
    • 反序列化某些部分
      • BWTB(头部表)
      • BWST(字符串表)
      • BWT2(地形2)
      • BWSG(静态几何形状)
      • BWCS(编译空间设置)
      • BWAL(资产列表)
  • 资源虚拟文件系统(只读)
    • 包索引
    • 从本地文件系统或包中读取文件
    • 从本地文件系统或包中读取目录项
  • 网络协议 (进行中)
    • 数据包编码和解码 (部分标志支持)
    • 向捆绑包中添加元素
    • 组装接收到的数据包
    • 遍历捆绑包中的元素

命令行界面

  • 工具包页面
  • 打包 XML
    • 反序列化和显示
    • 值编辑(字符串、整数、布尔值、浮点数)
  • 资源虚拟文件系统
    • 读取文件内容并将其复制到 stdout
    • 以可能的配置递归方式读取目录内容

WoT 命令行界面

尚未发布,尚未工作,但存在于代码库中,可能在某个时刻集成到 CLI 中。

贡献指南

向代码库贡献时,应遵循一些规则

  1. 每个主要功能都应该有自己的目录模块;
  2. 每个辅助功能,被核心功能内部使用,应位于其自己的文件模块中的 util 模块下。
  3. 当在自定义读取器和/或写入器上工作,但只实现其中之一时,请预先考虑如果两者都实现,您的模块应该如何构建;
  4. 捕获所有错误并将它们转发到公共接口;
  5. 自定义错误类型应全部使用thiserror::Error派生来定义;
  6. 当处理不提供懒读/写操作的自定义读取器或写入器时,请创建简单的公共函数,如直接输出的from_reader(reader: impl Read)to_writer(writer: impl Write)

致谢

感谢SkepticalFox提供的wot-space.bin-utils Python库,它直接启发了这个crate。

感谢SkaceKamen提供的wot-model-converter Python库,它对处理后的模型文件格式的开源工作。

依赖项

~9–20MB
~274K SLoC