diff options
Diffstat (limited to 'server/data/src/entities.rs')
| -rw-r--r-- | server/data/src/entities.rs | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/server/data/src/entities.rs b/server/data/src/entities.rs index 68dbe479..04d4e1c5 100644 --- a/server/data/src/entities.rs +++ b/server/data/src/entities.rs @@ -16,11 +16,12 @@ */ -use hurrycurry_protocol::glam::{IVec2, Vec2}; +use hurrycurry_protocol::{ + ItemIndex, TileIndex, + glam::{IVec2, Vec2}, +}; use serde::{Deserialize, Serialize}; -use crate::ItemTileRegistry; - #[derive(Debug, Clone, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum EntityDecl { @@ -39,6 +40,8 @@ pub enum EntityDecl { }, Customers { scaling_factor: Option<f32>, + #[serde(default = "default_item")] + unknown_order: ItemIndex, }, Map { name: String, @@ -49,6 +52,7 @@ pub enum EntityDecl { Gate { condition: GateCondition, pos: IVec2, + blocker_tile: TileIndex, }, Tram { length: usize, @@ -68,16 +72,6 @@ pub enum EntityDecl { }, } -impl EntityDecl { - pub(crate) fn run_register(&self, reg: &ItemTileRegistry) { - match self { - Self::Gate { .. } => drop(reg.register_tile("fence".into())), - Self::Customers { .. } => drop(reg.register_item("unknown-order".into())), - _ => (), - } - } -} - #[derive(Debug, Clone, Deserialize, Serialize)] #[serde(rename_all = "kebab-case")] pub enum GateCondition { @@ -97,3 +91,6 @@ pub struct EnvironmentEffect { fn default_onoff() -> f32 { 40. } +fn default_item() -> ItemIndex { + ItemIndex(usize::MAX) +} |