equal
deleted
inserted
replaced
25 } |
25 } |
26 } |
26 } |
27 |
27 |
28 pub struct World { |
28 pub struct World { |
29 random_numbers_gen: LaggedFibonacciPRNG, |
29 random_numbers_gen: LaggedFibonacciPRNG, |
|
30 feature_size: u8, |
30 preview: Option<Land2D<u8>>, |
31 preview: Option<Land2D<u8>>, |
31 game_state: Option<GameState>, |
32 game_state: Option<GameState>, |
32 map_renderer: Option<MapRenderer>, |
33 map_renderer: Option<MapRenderer>, |
33 gear_renderer: Option<GearRenderer>, |
34 gear_renderer: Option<GearRenderer>, |
34 camera: Camera, |
35 camera: Camera, |
37 |
38 |
38 impl World { |
39 impl World { |
39 pub fn new() -> Self { |
40 pub fn new() -> Self { |
40 Self { |
41 Self { |
41 random_numbers_gen: LaggedFibonacciPRNG::new(&[]), |
42 random_numbers_gen: LaggedFibonacciPRNG::new(&[]), |
|
43 feature_size: 5, |
42 preview: None, |
44 preview: None, |
43 game_state: None, |
45 game_state: None, |
44 map_renderer: None, |
46 map_renderer: None, |
45 gear_renderer: None, |
47 gear_renderer: None, |
46 camera: Camera::new(), |
48 camera: Camera::new(), |
71 |
73 |
72 pub fn set_seed(&mut self, seed: &[u8]) { |
74 pub fn set_seed(&mut self, seed: &[u8]) { |
73 self.random_numbers_gen = LaggedFibonacciPRNG::new(seed); |
75 self.random_numbers_gen = LaggedFibonacciPRNG::new(seed); |
74 } |
76 } |
75 |
77 |
|
78 pub fn set_feature_size(&mut self, feature_size: u8) { |
|
79 self.feature_size = feature_size; |
|
80 } |
|
81 |
76 pub fn preview(&self) -> &Option<Land2D<u8>> { |
82 pub fn preview(&self) -> &Option<Land2D<u8>> { |
77 &self.preview |
83 &self.preview |
78 } |
84 } |
79 |
85 |
80 pub fn generate_preview(&mut self) { |
86 pub fn generate_preview(&mut self) { |
89 template.fill_points = vec![Point::new(1, 0)]; |
95 template.fill_points = vec![Point::new(1, 0)]; |
90 |
96 |
91 template |
97 template |
92 } |
98 } |
93 |
99 |
94 let params = LandGenerationParameters::new(0u8, u8::max_value(), 5, false, false); |
100 // based on old engine min_distance... dunno if this is the correct place tho |
|
101 let distance_divisor = (self.feature_size as u32).pow(2) / 8 + 10; |
|
102 |
|
103 let params = LandGenerationParameters::new(0u8, u8::max_value(), distance_divisor, false, false); |
95 let landgen = TemplatedLandGenerator::new(template()); |
104 let landgen = TemplatedLandGenerator::new(template()); |
96 self.preview = Some(landgen.generate_land(¶ms, &mut self.random_numbers_gen)); |
105 self.preview = Some(landgen.generate_land(¶ms, &mut self.random_numbers_gen)); |
97 } |
106 } |
98 |
107 |
99 pub fn dispose_preview(&mut self) { |
108 pub fn dispose_preview(&mut self) { |