From 7fc0484a680ab777174aec1c1ffcbb61cd19c479 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 30 Sep 2025 14:31:51 +0200 Subject: tile decl conveyors; migrate duplex --- server/src/data/mod.rs | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'server/src') diff --git a/server/src/data/mod.rs b/server/src/data/mod.rs index 2b3c9a69..74fae62c 100644 --- a/server/src/data/mod.rs +++ b/server/src/data/mod.rs @@ -91,6 +91,8 @@ struct TileArgs { customer_spawn: bool, #[clap(short = 'i', long)] item: Option, + #[clap(long)] + conveyor: Option, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -291,15 +293,33 @@ pub fn build_data( if tile_spec.customer_spawn { customer_spawn = Some(pos.as_vec2() + Vec2::splat(0.5)); } - if tile_spec.book { - entities.push(construct_entity(Some(pos), &EntityDecl::Book, ®)?); - } if tile_spec.walkable { tile_walkable.insert(tile); } if tile_spec.walkable || tile_spec.collider || tile_spec.exclusive { exclusive_tiles.entry(tile).or_default().extend(item); } + if tile_spec.book { + entities.push(construct_entity(Some(pos), &EntityDecl::Book, ®)?); + } + if let Some(off) = &tile_spec.conveyor { + let (x, y) = off + .split_once(",") + .ok_or(anyhow!("conveyor offset invalid format"))?; + let dir = IVec2::new(x.parse()?, y.parse()?); + entities.push(construct_entity( + Some(pos), + &EntityDecl::Conveyor { + dir: Some(dir), + filter: None, + filter_dir: None, + from: None, + speed: None, + to: None, + }, + ®, + )?); + } } } -- cgit v1.2.3-70-g09d2