aboutsummaryrefslogtreecommitdiff
path: root/server/data/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-10-15 16:30:20 +0200
committermetamuffin <metamuffin@disroot.org>2025-10-15 16:30:20 +0200
commita47a61ec1ffb0d597783870a053cbe0760544301 (patch)
treed2516f94445eb1f27614bf5618cbc5e4298eee7b /server/data/src
parentf9be1a87bbdfdfbeb316cc335b7a2dbbf42b06f2 (diff)
downloadhurrycurry-a47a61ec1ffb0d597783870a053cbe0760544301.tar
hurrycurry-a47a61ec1ffb0d597783870a053cbe0760544301.tar.bz2
hurrycurry-a47a61ec1ffb0d597783870a053cbe0760544301.tar.zst
Add tag minigame (hidden map + entity)
Diffstat (limited to 'server/data/src')
-rw-r--r--server/data/src/entities.rs4
-rw-r--r--server/data/src/lib.rs10
-rw-r--r--server/data/src/registry.rs6
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,
};
}