diff options
Diffstat (limited to 'server/src/data')
-rw-r--r-- | server/src/data/mod.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/server/src/data/mod.rs b/server/src/data/mod.rs index e5cd4552..17ebd5bf 100644 --- a/server/src/data/mod.rs +++ b/server/src/data/mod.rs @@ -307,6 +307,7 @@ pub fn build_data( maps.sort_by_key(|(_, m)| m.players); let mut tile_placeable_items = BTreeMap::new(); + let mut tile_interactable_empty = HashSet::new(); for tile_name in map_in.collider.iter().chain(map_in.walkable.iter()) { let tile = reg.register_tile(tile_name.to_string()); let whitelist = recipes @@ -314,7 +315,13 @@ pub fn build_data( .filter(|r| r.tile() == Some(tile)) .flat_map(|e| e.inputs()) .collect(); + let int_empty = recipes + .iter() + .any(|r| r.tile() == Some(tile) && r.inputs().is_empty()); tile_placeable_items.insert(tile, whitelist); + if int_empty { + tile_interactable_empty.insert(tile); + } } let tile_walkable = map_in .walkable @@ -338,6 +345,7 @@ pub fn build_data( maps, tile_walkable, tile_placeable_items, + tile_interactable_empty, recipes, item_names, demands, |