From 5bf50cd276a568f55fb1d5aedef96e614bed015b Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 20 Jun 2024 14:00:38 +0200 Subject: generated recipes, adjust duration, rename items, other stuff --- server/src/data.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'server/src/data.rs') diff --git a/server/src/data.rs b/server/src/data.rs index fd268cb5..9c200e5b 100644 --- a/server/src/data.rs +++ b/server/src/data.rs @@ -31,7 +31,10 @@ pub struct RecipeDecl { #[derive(Debug, Clone, Deserialize)] pub struct InitialMap { map: Vec, - tiles: HashMap, + tiles: HashMap, + items: HashMap, + chef_spawn: char, + customer_spawn: char, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -55,7 +58,7 @@ pub struct Gamedata { pub item_names: Vec, pub tile_names: Vec, #[serde(skip)] - pub initial_map: HashMap, + pub initial_map: HashMap)>, pub chef_spawn: Vec2, pub customer_spawn: Vec2, } @@ -121,17 +124,17 @@ pub fn build_gamedata( for (y, line) in map_in.map.iter().enumerate() { for (x, tile) in line.trim().char_indices() { let pos = IVec2::new(x as i32, y as i32); - let mut tilename = map_in.tiles[&tile.to_string()].clone(); - if tilename == "chef-spawn" { + if tile == map_in.chef_spawn { chef_spawn = pos.as_vec2(); - tilename = "floor".to_owned(); } - if tilename == "customer-spawn" { + if tile == map_in.customer_spawn { customer_spawn = pos.as_vec2(); - tilename = "floor".to_owned(); } + let tilename = map_in.tiles[&tile].clone(); + let itemname = map_in.items.get(&tile).cloned(); let tile = TileIndex(register(&tile_names, tilename)); - initial_map.insert(pos, tile); + let item = itemname.map(|i| ItemIndex(register(&item_names, i))); + initial_map.insert(pos, (tile, item)); } } -- cgit v1.2.3-70-g09d2