diff options
Diffstat (limited to 'server/data/src/lib.rs')
| -rw-r--r-- | server/data/src/lib.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/server/data/src/lib.rs b/server/data/src/lib.rs index ef0f9bb6..80b2f75b 100644 --- a/server/data/src/lib.rs +++ b/server/data/src/lib.rs @@ -115,7 +115,7 @@ pub struct DemandDecl { #[derive(Debug, Clone, Default)] #[rustfmt::skip] pub struct Serverdata { - pub initial_map: HashMap<IVec2, (TileIndex, Option<ItemIndex>)>, + pub initial_map: HashMap<IVec2, (Vec<TileIndex>, Option<ItemIndex>)>, pub chef_spawn: Vec2, pub customer_spawn: Option<Vec2>, pub score_baseline: i64, @@ -152,6 +152,7 @@ fn build_data( let mut tile_walkable = HashSet::new(); let mut exclusive_tiles = BTreeMap::<TileIndex, HashSet<ItemIndex>>::new(); let mut tile_placeable_items = BTreeMap::new(); + let mut tile_placeable_any = HashSet::new(); let mut tile_interactable_empty = HashSet::new(); for (y, line) in map_in.map.iter().enumerate() { for (x, char) in line.chars().enumerate() { @@ -168,7 +169,7 @@ fn build_data( tiles_used.insert(tile); let item = tile_spec.item.clone().map(|i| reg.register_item(i)); items_used.extend(item); - initial_map.insert(pos, (tile, item)); + initial_map.insert(pos, (vec![tile], item)); if tile_spec.chef_spawn { chef_spawn = Some(pos.as_vec2() + Vec2::splat(0.5)); @@ -285,8 +286,9 @@ fn build_data( let mut data = Gamedata { current_map: map_name, maps, - tile_walkable, + tile_collide: tile_walkable, tile_placeable_items, + tile_placeable_any, tile_interactable_empty, flags: map_in.flags, recipes, |