aboutsummaryrefslogtreecommitdiff
path: root/server/data/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/data/src/lib.rs')
-rw-r--r--server/data/src/lib.rs8
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,