Skip to content

Commit 1b12302

Browse files
author
Tomasz Sterna
committed
A Master Dungeon Map
1 parent 450b6f5 commit 1b12302

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

src/map/dungeon.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
use super::Map;
2+
use serde::{Deserialize, Serialize};
3+
use std::collections::HashMap;
4+
5+
#[derive(Default, Serialize, Deserialize, Clone)]
6+
pub struct MasterDungeonMap {
7+
maps: HashMap<i32, Map>,
8+
}
9+
10+
impl MasterDungeonMap {
11+
pub fn new() -> Self {
12+
MasterDungeonMap {
13+
maps: HashMap::new(),
14+
}
15+
}
16+
17+
pub fn store_map(&mut self, map: &Map) {
18+
self.maps.insert(map.depth, map.clone());
19+
}
20+
21+
pub fn get_map(&self, depth: i32) -> Option<Map> {
22+
if self.maps.contains_key(&depth) {
23+
let mut result = self.maps[&depth].clone();
24+
result.tile_content = vec![Vec::new(); (result.width * result.height) as usize];
25+
Some(result)
26+
} else {
27+
None
28+
}
29+
}
30+
}

src/map/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ mod astar;
1212
pub use astar::a_star_search;
1313
mod themes;
1414
pub use themes::tile_glyph;
15+
pub mod dungeon;
1516

1617
#[derive(TypeUuid, Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
1718
#[uuid = "09e57cda-e925-47f0-a3f6-107c86fa76bd"]

0 commit comments

Comments
 (0)