diff options
| author | metamuffin <metamuffin@disroot.org> | 2024-08-13 12:48:31 +0200 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2024-08-13 16:03:38 +0200 |
| commit | 16ff78180669411326d42ea32d4a9260c018236c (patch) | |
| tree | d7c6a7ab498bb1b4f9a3b3db99d54e8781216e05 /server/src/entity/player_portal.rs | |
| parent | 11ff74f034aeec58c06dbe15a3f1ee650ef18c9f (diff) | |
| download | hurrycurry-16ff78180669411326d42ea32d4a9260c018236c.tar hurrycurry-16ff78180669411326d42ea32d4a9260c018236c.tar.bz2 hurrycurry-16ff78180669411326d42ea32d4a9260c018236c.tar.zst | |
refactor server to use client-lib data model (breaks customers)
Diffstat (limited to 'server/src/entity/player_portal.rs')
| -rw-r--r-- | server/src/entity/player_portal.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/server/src/entity/player_portal.rs b/server/src/entity/player_portal.rs index 6ee04f15..11442677 100644 --- a/server/src/entity/player_portal.rs +++ b/server/src/entity/player_portal.rs @@ -15,11 +15,9 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -use super::EntityT; -use crate::game::Game; +use super::{EntityContext, EntityT}; use anyhow::{anyhow, Result}; use hurrycurry_protocol::{glam::Vec2, PacketC}; -use std::collections::VecDeque; #[derive(Debug, Default, Clone)] pub struct PlayerPortal { @@ -28,19 +26,21 @@ pub struct PlayerPortal { } impl EntityT for PlayerPortal { - fn tick( - &mut self, - game: &mut Game, - _packet_out: &mut VecDeque<PacketC>, - _dt: f32, - ) -> Result<()> { + fn tick(&mut self, c: EntityContext) -> Result<()> { let mut players = Vec::new(); - game.players_spatial_index + c.game + .players_spatial_index .query(self.from, 0.5, |pid, _| players.push(pid)); - for p in players { - let p = game.players.get_mut(&p).ok_or(anyhow!("player missing"))?; + for pid in players { + let p = c + .game + .players + .get_mut(&pid) + .ok_or(anyhow!("player missing"))?; p.movement.position = self.to; + c.packet_out + .push_back(PacketC::MovementSync { player: pid }); } Ok(()) |