Region file format storage for chunks
Add this to your Cargo.toml
:
toml
[dependencies]
anvil-region = "0.7"
```rust use anvilregion::provider::{FolderRegionProvider, RegionProvider}; use anvilregion::position::{RegionPosition, RegionChunkPosition};
let provider = FolderRegionProvider::new("test/region");
let regionposition = RegionPosition::fromchunkposition(4, 2); let regionchunkposition = RegionChunkPosition::fromchunk_position(4, 2);
let mut region = provider.getregion(regionposition).unwrap();
let chunkcompoundtag = region.readchunk(regionchunkposition).unwrap(); let levelcompoundtag = chunkcompoundtag.getcompound_tag("Level").unwrap();
asserteq!(levelcompoundtag.geti32("xPos").unwrap(), 4); asserteq!(levelcompoundtag.geti32("zPos").unwrap(), 2); ```
```rust use anvilregion::provider::{FolderRegionProvider, RegionProvider}; use nbt::CompoundTag; use anvilregion::position::{RegionPosition, RegionChunkPosition};
let provider = FolderRegionProvider::new("test/region");
let regionposition = RegionPosition::fromchunkposition(31, 16); let regionchunkposition = RegionChunkPosition::fromchunk_position(31, 16);
let mut region = provider.getregion(regionposition).unwrap();
let mut chunkcompoundtag = CompoundTag::new(); let mut levelcompoundtag = CompoundTag::new();
// To simplify example we add only coordinates. // Full list of required tags https://minecraft.gamepedia.com/Chunkformat. levelcompoundtag.inserti32("xPos", 31); levelcompoundtag.insert_i32("zPos", 16);
chunkcompoundtag.insertcompoundtag("Level", levelcompoundtag);
region.writechunk(regionchunkposition, chunkcompound_tag); ```