Pumpkin/pumpkin-world/src/lib.rs
2025-02-20 18:42:20 +01:00

59 lines
1.5 KiB
Rust

use generation::proto_chunk::ProtoChunk;
use pumpkin_util::math::vector2::Vector2;
pub mod biome;
pub mod block;
pub mod chunk;
pub mod coordinates;
pub mod cylindrical_chunk_iterator;
pub mod dimension;
mod generation;
pub mod item;
pub mod level;
mod lock;
pub mod loot;
mod noise_router;
pub mod world_info;
pub const WORLD_HEIGHT: usize = 384;
pub const WORLD_LOWEST_Y: i16 = -64;
pub const WORLD_MAX_Y: i16 = WORLD_HEIGHT as i16 - WORLD_LOWEST_Y.abs();
pub const DIRECT_PALETTE_BITS: u32 = 15;
#[macro_export]
macro_rules! global_path {
($path:expr) => {{
use std::path::Path;
Path::new(env!("CARGO_MANIFEST_DIR"))
.parent()
.unwrap()
.join(file!())
.parent()
.unwrap()
.join($path)
}};
}
#[macro_export]
macro_rules! read_data_from_file {
($path:expr) => {{
use std::fs;
use $crate::global_path;
serde_json::from_str(&fs::read_to_string(global_path!($path)).expect("no data file"))
.expect("failed to decode data")
}};
}
// TODO: is there a way to do in-file benches?
pub use generation::{
GlobalRandomConfig, noise_router::proto_noise_router::GlobalProtoNoiseRouter,
};
pub use noise_router::NOISE_ROUTER_ASTS;
pub fn bench_create_and_populate_noise(
base_router: &GlobalProtoNoiseRouter,
random_config: &GlobalRandomConfig,
) {
let mut chunk = ProtoChunk::new(Vector2::new(0, 0), base_router, random_config);
chunk.populate_noise();
}