diff options
Diffstat (limited to 'server/data/src')
| -rw-r--r-- | server/data/src/entities.rs | 4 | ||||
| -rw-r--r-- | server/data/src/lib.rs | 10 | ||||
| -rw-r--r-- | server/data/src/registry.rs | 6 |
3 files changed, 17 insertions, 3 deletions
diff --git a/server/data/src/entities.rs b/server/data/src/entities.rs index 04d4e1c5..fdd451a0 100644 --- a/server/data/src/entities.rs +++ b/server/data/src/entities.rs @@ -70,6 +70,10 @@ pub enum EntityDecl { speed: Option<f32>, points: Vec<Vec2>, }, + TagMinigame { + #[serde(default = "default_item")] + tag_item: ItemIndex, + }, } #[derive(Debug, Clone, Deserialize, Serialize)] diff --git a/server/data/src/lib.rs b/server/data/src/lib.rs index 78ec21b3..445e59b9 100644 --- a/server/data/src/lib.rs +++ b/server/data/src/lib.rs @@ -214,8 +214,14 @@ fn build_data( } for mut e in map_in.entities.clone() { - if let EntityDecl::Customers { unknown_order, .. } = &mut e { - *unknown_order = reg.register_item("unknown-order".to_owned()) + match &mut e { + EntityDecl::Customers { unknown_order, .. } => { + *unknown_order = reg.register_item("unknown-order".to_owned()) + } + EntityDecl::TagMinigame { tag_item } => { + *tag_item = reg.register_item("lettuce".to_owned()) + } + _ => (), } entities.push(e); } diff --git a/server/data/src/registry.rs b/server/data/src/registry.rs index e7dc7f77..9d513c90 100644 --- a/server/data/src/registry.rs +++ b/server/data/src/registry.rs @@ -80,8 +80,12 @@ pub(crate) fn filter_unused_tiles_and_items(data: &mut Gamedata, serverdata: &mu } for e in &serverdata.entity_decls { match e { - EntityDecl::Gate { blocker_tile: blocker, .. } => used_tiles.insert(*blocker), + EntityDecl::Gate { + blocker_tile: blocker, + .. + } => used_tiles.insert(*blocker), EntityDecl::Customers { unknown_order, .. } => used_items.insert(*unknown_order), + EntityDecl::TagMinigame { tag_item, .. } => used_items.insert(*tag_item), _ => false, }; } |