minetestworld 0.3.1

Read Minetest worlds
Documentation

minetestworld

This crate lets you read minetest worlds in a low-level way.

Build Crates.io Documentation dependency status

Usage

As this crate returns async-std based futures, you have to specify that along the dependencies:

[dependencies]
minetestworld = "0.3"
async-std = "1"

Here is an example that reads all nodes of a specific map block:

use minetestworld::{World, Position};
use async_std::task;

fn main() {
    let blockpos = Position {
        x: -13,
        y: -8,
        z: 2,
    };
    task::block_on(async {
        let world = World::new("TestWorld");
        let mapdata = world.get_map().await.unwrap();
        for (pos, node) in mapdata.iter_mapblock_nodes(blockpos).await.unwrap() {
            println!("{pos:?}, {node:?}");
        }
    });
}

See https://github.com/UgnilJoZ/minetest-worldmapper for a real-world example.