2个版本
0.1.1 | 2021年12月28日 |
---|---|
0.1.0 | 2021年12月28日 |
#925 in 游戏
每月21次下载
用于 mc-vanilla
220KB
5K SLoC
Minecraft RS
用于Minecraft数据操作的纯Rust包。这个Cargo工作区旨在将数据结构从实际实现中分离出来。这个仓库中的两个主要包是 core 和 vanilla,目前它们是crates.io上唯一可用的。
其他包如 worldgen、runtime 和 server 由于保持最新版本的更新工作量太大,目前没有积极维护。worldgen包的维护稍好一些,但仍然是一个玩具包,目前只实现了1.2.5版本(不包含生成结构)。
核心包
核心crate定义了Minecraft使用的最重要和强制性的数据结构,这包括块、生物群系、高度图、实体的优化结构定义。这些小型结构的主要目标是静态定义,以便在运行时不占用时间,这也允许使用它们的指针进行简单的等价性测试。它们还具有文本标识符,格式为Minecraft的常规格式命名空间:键
。一旦静态定义,它们需要添加一个运行时注册表,将它们的静态指针关联到一个线性正整数ID,该ID可以用于在运行时内部高效地序列化和反序列化这些结构 运行时内部,对于静态文件的序列化,整数ID映射到文本标识符,这是必要的,因为整数ID可能在crate的不同运行之间发生变化。
这些全局注册表被包装在一个“级别环境”结构中,该结构用于存储在级别内的块。这个crate还提供了一种为级别获取块的方法,并预定义了一个 anvils 块源,用于加载以 anvils 格式保存的Minecraft世界。
Vanilla crate
vanilla提供用于与全局注册表一起使用的静态实例定义,它还提供了一个WithVanilla
特质,该特质在每个支持vanilla变体的结构上实现,例如块、生物群系和级别环境。
依赖项
~3.5MB
~61K SLoC