diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-10-12 00:03:16 +0200 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-10-12 00:03:16 +0200 |
| commit | bab30b167f8d81df92ee0f3dd6f1c1b3dfaeb9b0 (patch) | |
| tree | 2d69741912aed51084df8b1b5f44d8fe1787639e /server/data/src/entities.rs | |
| parent | 94fab766512de7b3be8123c4238a7902ce7b35c4 (diff) | |
| download | hurrycurry-bab30b167f8d81df92ee0f3dd6f1c1b3dfaeb9b0.tar hurrycurry-bab30b167f8d81df92ee0f3dd6f1c1b3dfaeb9b0.tar.bz2 hurrycurry-bab30b167f8d81df92ee0f3dd6f1c1b3dfaeb9b0.tar.zst | |
Fix bug where unknown order item was optimized out
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) +} |