diff options
Diffstat (limited to 'server/src/entity/campaign.rs')
| -rw-r--r-- | server/src/entity/campaign.rs | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/server/src/entity/campaign.rs b/server/src/entity/campaign.rs new file mode 100644 index 00000000..c4c8ab52 --- /dev/null +++ b/server/src/entity/campaign.rs @@ -0,0 +1,41 @@ +/* +    Hurry Curry! - a game about cooking +    Copyright 2024 metamuffin + +    This program is free software: you can redistribute it and/or modify +    it under the terms of the GNU Affero General Public License as published by +    the Free Software Foundation, version 3 of the License only. + +    This program is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    GNU Affero General Public License for more details. + +    You should have received a copy of the GNU Affero General Public License +    along with this program.  If not, see <https://www.gnu.org/licenses/>. + +*/ +use super::{Entity, EntityContext}; +use anyhow::Result; +use hurrycurry_protocol::glam::Vec2; + +#[derive(Debug, Default, Clone)] +pub struct Map { +    pub location: Vec2, +    pub name: String, +} + +impl Entity for Map { +    fn tick(&mut self, c: EntityContext) -> Result<()> { +        let mut activate = false; +        c.game +            .players_spatial_index +            .query(self.location, 0.5, |_, _| activate = true); + +        if activate { +            *c.load_map = Some(self.name.clone()); +        } + +        Ok(()) +    } +} | 
