equal
deleted
inserted
replaced
21 fn generate_land<T: Copy + PartialEq, I: Iterator<Item = u32>>( |
21 fn generate_land<T: Copy + PartialEq, I: Iterator<Item = u32>>( |
22 &self, |
22 &self, |
23 parameters: LandGenerationParameters<T>, |
23 parameters: LandGenerationParameters<T>, |
24 random_numbers: &mut I, |
24 random_numbers: &mut I, |
25 ) -> Land2D<T> { |
25 ) -> Land2D<T> { |
|
26 let mut land = Land2D::new(self.outline_template.size, parameters.basic); |
|
27 |
26 let mut points = |
28 let mut points = |
27 OutlinePoints::from_outline_template(&self.outline_template, random_numbers); |
29 OutlinePoints::from_outline_template(&self.outline_template, land.play_box(), land.size(), random_numbers); |
28 |
|
29 let mut land = Land2D::new(points.size, parameters.basic); |
|
30 |
|
31 let top_left = Point::new( |
|
32 (land.width() - land.play_width() / 2) as i32, |
|
33 (land.height() - land.play_height()) as i32, |
|
34 ); |
|
35 |
|
36 points.size = land.size(); |
|
37 |
|
38 points.iter_mut().for_each(|p| *p += top_left); |
|
39 |
30 |
40 // mirror |
31 // mirror |
41 if self.outline_template.can_mirror { |
32 if self.outline_template.can_mirror { |
42 if let Some(b) = random_numbers.next() { |
33 if let Some(b) = random_numbers.next() { |
43 if b & 1 != 0 { |
34 if b & 1 != 0 { |
70 points.draw(&mut land, parameters.basic); |
61 points.draw(&mut land, parameters.basic); |
71 |
62 |
72 land |
63 land |
73 } |
64 } |
74 } |
65 } |
75 |
|
76 #[test()] |
|
77 fn points_test() { |
|
78 let mut points = OutlinePoints { |
|
79 islands: vec![vec![]], |
|
80 fill_points: vec![Point::new(1, 1)], |
|
81 size: Size::square(100), |
|
82 }; |
|
83 |
|
84 points.iter_mut().for_each(|p| p.x = 2); |
|
85 assert_eq!(points.fill_points[0].x, 2); |
|
86 } |
|