extern crate image;
use std::{
fs::File,
io::{BufWriter, Write},
thread::sleep,
time::{Duration, Instant},
};
use cubiomes::{
enums::{Dimension, MCVersion},
generator::{Generator, GeneratorFlags},
noise::SurfaceNoiseRelease,
};
fn main() {
let seed: i64 = -4804349823814383506;
let mc_version = MCVersion::MC_1_21_WD;
let path = "heightmap.png";
let generator = Generator::new(
mc_version,
seed,
Dimension::DIM_OVERWORLD,
GeneratorFlags::empty(),
);
let now = Instant::now();
let surface_noise = SurfaceNoiseRelease::new(Dimension::DIM_OVERWORLD, seed);
let img = generator
.generate_heightmap_image(256, 1024, 256, 256, 40.0, 100.0, &surface_noise.into())
.expect("Overworld should always exist");
sleep(Duration::from_millis(100).saturating_sub(now.elapsed()));
let mut file = BufWriter::new(File::create(path).expect("Failed to open file"));
img.write_to(&mut file, image::ImageFormat::Png)
.expect("Failed to write file");
file.flush().expect("Failed to flush file")
}