Region file format storage for chunks
Add this to your Cargo.toml
:
toml
[dependencies]
anvil-region = "0.5"
```rust use anvil_region::provider::{FolderRegionProvider, RegionProvider};
let provider = FolderRegionProvider::new("test/region");
let chunkx = 4; let chunkz = 2;
let regionx = chunkx >> 31; let regionz = chunkz >> 31;
let regionchunkx = (chunkx & 31) as u8; let regionchunkz = (chunkz & 31) as u8;
let mut region = provider.getregion(regionx, region_z).unwrap();
let chunkcompoundtag = region.readchunk(regionchunkx, regionchunkz).unwrap(); let levelcompoundtag = chunkcompoundtag.getcompound_tag("Level").unwrap();
asserteq!(levelcompoundtag.geti32("xPos").unwrap(), 4); asserteq!(levelcompoundtag.geti32("zPos").unwrap(), 2); ```
```rust use anvil_region::provider::{FolderRegionProvider, RegionProvider}; use nbt::CompoundTag;
let provider = FolderRegionProvider::new("test/region");
let chunkx = 31; let chunkz = 16;
let regionx = chunkx >> 31; let regionz = chunkz >> 31;
let regionchunkx = (chunkx & 31) as u8; let regionchunkz = (chunkz & 31) as u8;
let mut region = provider.getregion(regionx, region_z).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(regionchunkx, regionchunkz, chunkcompound_tag); ```