|
|
|
@ -59,15 +59,22 @@ impl State {
|
|
|
|
|
self.world_pos = (self.world_pos.0 + delta.0, self.world_pos.1 + delta.1); |
|
|
|
|
|
|
|
|
|
// Update loaded chunks
|
|
|
|
|
match self.loaded_chunks.get(&self.world_pos) { |
|
|
|
|
Some(chunk) => self.view = chunk.to_vec(), |
|
|
|
|
let chunk = match self.loaded_chunks.get(&self.world_pos) { |
|
|
|
|
Some(chunk) => chunk, |
|
|
|
|
None => { |
|
|
|
|
self.loaded_chunks.insert( |
|
|
|
|
self.world_pos, |
|
|
|
|
map::new_chunk(crypto::hash_to_number(&self.world_pos)), |
|
|
|
|
); |
|
|
|
|
let new_chunk = map::new_chunk(crypto::hash_to_number(&self.world_pos)); |
|
|
|
|
self.loaded_chunks.insert(self.world_pos, new_chunk); |
|
|
|
|
self.loaded_chunks |
|
|
|
|
.get(&self.world_pos) |
|
|
|
|
.expect("Unexpectedly failed finding loaded chunk.") |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
self.view = chunk.to_vec(); |
|
|
|
|
|
|
|
|
|
dbg!("Loaded chunks: {:?}", &self.loaded_chunks.keys()); |
|
|
|
|
dbg!("Current position: {:?}", &self.world_pos); |
|
|
|
|
dbg!("Number of loaded chunks: {:?}", &self.loaded_chunks.len()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pub fn move_player(&mut self, delta: Point) { |
|
|
|
|