7 个版本 (4 个破坏性更新)
0.5.0 | 2024 年 5 月 12 日 |
---|---|
0.4.0 | 2024 年 5 月 9 日 |
0.3.1 | 2024 年 5 月 8 日 |
0.2.0 | 2024 年 4 月 26 日 |
0.1.1 | 2023 年 3 月 3 日 |
#802 in 编码
每月 36 次下载
49KB
847 行
rustmatica
一个用于处理 Minecraft litematic 文件的 Rust 包。
概述
此包的两个主要类型是 Litematic
和 Region
。请参阅它们的文档以获取更多信息。
examples
目录 包含一些基本示例,说明如何使用此包。
与 mcdata
一起使用
rustmatica
与 mcdata
紧密耦合,并利用其 traits 来处理方块状态、实体和方块实体。默认情况下,蓝图将使用 mcdata
的 "通用" 类型,这些类型使用 fastnbt::Value
存储大部分数据。
use rustmatica::Litematic;
use mcdata::util::UVec3;
// type must be declared explicitly for Rust to use the default generics
let schem: Litematic = Litematic::read_file("test_files/axolotl.litematic")?;
// block has type `mcdata::GenericBlockState`
let block = schem.regions[0].get_block(UVec3::new(1, 0, 1));
assert_eq!(block.name, "minecraft:water");
// properties aren't typed
assert_eq!(block.properties["level"], "0");
# Ok::<(), rustmatica::Error>(())
但是,当启用某些 cargo 功能时,mcdata
也提供更具体的数据类型。要使用这些类型,请添加一个类似于下面的自定义依赖项到 mcdata
mcdata = { version = "<version>", features = ["latest", "block-states"] }
然后您可以使用 mcdata::latest::BlockState
类型来代替
use rustmatica::Litematic;
use mcdata::{util::UVec3, latest::BlockState};
use bounded_integer::BoundedU8;
let schem: Litematic<BlockState> = Litematic::read_file("test_files/axolotl.litematic")?;
// block has type `BlockState`
let block = schem.regions[0].get_block(UVec3::new(1, 0, 1));
assert_eq!(block, &BlockState::Water {
level: BoundedU8::new(0).unwrap(),
});
# Ok::<(), rustmatica::Error>(())
依赖项
~7MB
~121K SLoC