diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-09-30 02:08:54 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-09-30 02:08:54 +0200 | 
| commit | d2c793ec7632a5da8065fd52436cfd676cc96a7b (patch) | |
| tree | 3868f0f858bc9766925723b6479315bacde4b040 /server/src/data/mod.rs | |
| parent | 5033c326094edc1ff4234b994e95d987cb937fc4 (diff) | |
| download | hurrycurry-d2c793ec7632a5da8065fd52436cfd676cc96a7b.tar hurrycurry-d2c793ec7632a5da8065fd52436cfd676cc96a7b.tar.bz2 hurrycurry-d2c793ec7632a5da8065fd52436cfd676cc96a7b.tar.zst  | |
Tile placeable items client side and interactable empty special case
Diffstat (limited to 'server/src/data/mod.rs')
| -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,  |