anvil_region/
lib.rs

1//! Region file format storage for chunks.
2//!
3//! More information about format can be found https://wiki.vg/Region_Files.
4//!
5//! # Example
6//!
7//! ## Read
8//!
9//! ```
10//! use anvil_region::provider::{FolderRegionProvider, RegionProvider};
11//! use anvil_region::position::{RegionPosition, RegionChunkPosition};
12//!
13//! let provider = FolderRegionProvider::new("test/region");
14//!
15//! let region_position = RegionPosition::from_chunk_position(4, 2);
16//! let region_chunk_position = RegionChunkPosition::from_chunk_position(4, 2);
17//!
18//! let mut region = provider.get_region(region_position).unwrap();
19//!
20//! let chunk_compound_tag = region.read_chunk(region_chunk_position).unwrap();
21//! let level_compound_tag = chunk_compound_tag.get_compound_tag("Level").unwrap();
22//!
23//! assert_eq!(level_compound_tag.get_i32("xPos").unwrap(), 4);
24//! assert_eq!(level_compound_tag.get_i32("zPos").unwrap(), 2);
25//! ```
26//!
27//! ## Write
28//!
29//! ```
30//! use anvil_region::provider::{FolderRegionProvider, RegionProvider};
31//! use nbt::CompoundTag;
32//! use anvil_region::position::{RegionPosition, RegionChunkPosition};
33//!
34//! let provider = FolderRegionProvider::new("test/region");
35//!
36//! let region_position = RegionPosition::from_chunk_position(31, 16);
37//! let region_chunk_position = RegionChunkPosition::from_chunk_position(31, 16);
38//!
39//! let mut region = provider.get_region(region_position).unwrap();
40//!
41//! let mut chunk_compound_tag = CompoundTag::new();
42//! let mut level_compound_tag = CompoundTag::new();
43//!
44//! // To simplify example we add only coordinates.
45//! // Full list of required tags https://minecraft.gamepedia.com/Chunk_format.
46//! level_compound_tag.insert_i32("xPos", 31);
47//! level_compound_tag.insert_i32("zPos", 16);
48//!
49//! chunk_compound_tag.insert_compound_tag("Level", level_compound_tag);
50//!
51//! region.write_chunk(region_chunk_position, chunk_compound_tag);
52//! ```
53pub mod error;
54pub mod position;
55pub mod provider;
56pub mod region;