diff options
Diffstat (limited to 'server/src/data.rs')
-rw-r--r-- | server/src/data.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/server/src/data.rs b/server/src/data.rs index 5f35a360..c5ed25ad 100644 --- a/server/src/data.rs +++ b/server/src/data.rs @@ -23,7 +23,7 @@ use crate::{ use anyhow::{anyhow, bail, Result}; use hurrycurry_protocol::{ glam::{IVec2, Vec2}, - DemandIndex, ItemIndex, RecipeIndex, TileIndex, + DemandIndex, ItemIndex, MapMetadata, RecipeIndex, TileIndex, }; use serde::{Deserialize, Serialize}; use std::{ @@ -105,7 +105,7 @@ pub struct Gamedata { pub tile_names: Vec<String>, pub tile_collide: Vec<bool>, pub tile_interact: Vec<bool>, - pub map_names: HashSet<String>, + pub map: HashMap<String, MapMetadata>, #[serde(skip)] pub recipes: Vec<Recipe>, #[serde(skip)] pub demands: Vec<Demand>, #[serde(skip)] pub initial_map: HashMap<IVec2, (TileIndex, Option<ItemIndex>)>, @@ -116,7 +116,7 @@ pub struct Gamedata { #[derive(Debug, Deserialize, Default)] pub struct DataIndex { - pub maps: HashSet<String>, + pub maps: HashMap<String, MapMetadata>, pub demands: HashSet<String>, pub recipes: HashSet<String>, } @@ -137,7 +137,7 @@ impl DataIndex { } pub async fn read_map(&self, name: &str) -> Result<String> { - if !self.maps.contains(name) { + if !self.maps.contains_key(name) { bail!("unknown map: {name:?}"); } let path = data_dir().join(format!("maps/{name}.yaml")); @@ -167,7 +167,7 @@ impl DataIndex { let recipes_in = serde_yaml::from_str(&self.read_recipes(recipes).await?)?; let mut gd = Gamedata::build(spec, map_in, demands_in, recipes_in)?; - gd.map_names = self.maps.clone(); + gd.map = self.maps.clone(); Ok(gd) } } @@ -288,7 +288,7 @@ impl Gamedata { tile_collide, tile_interact, recipes, - map_names: HashSet::new(), + map: HashMap::new(), initial_map, item_names, entities, |