diff -r b273b43b16d2 -r 8354b390f1a2 rust/hedgewars-engine/src/world.rs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rust/hedgewars-engine/src/world.rs Wed Nov 07 15:59:51 2018 +0100 @@ -0,0 +1,44 @@ +use integral_geometry::{Point, Rect, Size}; +use land2d::Land2D; +use landgen::{ + outline_template::OutlineTemplate, template_based::TemplatedLandGenerator, + LandGenerationParameters, LandGenerator, +}; +use lfprng::LaggedFibonacciPRNG; + +pub struct World { + random_numbers_gen: LaggedFibonacciPRNG, + preview: Land2D, +} + +impl World { + pub fn new() -> Self { + Self { + random_numbers_gen: LaggedFibonacciPRNG::new(&[]), + preview: Land2D::new(Size::new(0, 0), 0), + } + } + + pub fn preview(&self) -> &Land2D { + &self.preview + } + + pub fn generate_preview(&mut self) { + fn template() -> OutlineTemplate { + let mut template = OutlineTemplate::new(Size::new(4096, 2048)); + template.islands = vec![vec![ + Rect::from_size_coords(100, 2050, 1, 1), + Rect::from_size_coords(100, 500, 400, 1200), + Rect::from_size_coords(3600, 500, 400, 1200), + Rect::from_size_coords(3900, 2050, 1, 1), + ]]; + template.fill_points = vec![Point::new(1, 0)]; + + template + } + + let params = LandGenerationParameters::new(0 as u8, 255, 5, false, false); + let landgen = TemplatedLandGenerator::new(template()); + self.preview = landgen.generate_land(¶ms, &mut self.random_numbers_gen); + } +}