diff options
author | metamuffin <metamuffin@disroot.org> | 2024-08-11 01:30:59 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-08-11 01:35:05 +0200 |
commit | 218da36b4f963a5dfcd619d543cb95c5c196d214 (patch) | |
tree | 244ecd10f4ca3d9798cedf7149394a1d4827b5d9 /server/src/entity/customers/mod.rs | |
parent | f753629acd906ff7acd42a18a266cc93a883330c (diff) | |
download | hurrycurry-218da36b4f963a5dfcd619d543cb95c5c196d214.tar hurrycurry-218da36b4f963a5dfcd619d543cb95c5c196d214.tar.bz2 hurrycurry-218da36b4f963a5dfcd619d543cb95c5c196d214.tar.zst |
update movement in protocol and all clients
Diffstat (limited to 'server/src/entity/customers/mod.rs')
-rw-r--r-- | server/src/entity/customers/mod.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/server/src/entity/customers/mod.rs b/server/src/entity/customers/mod.rs index 0bb3f918..97b94942 100644 --- a/server/src/entity/customers/mod.rs +++ b/server/src/entity/customers/mod.rs @@ -102,7 +102,9 @@ impl EntityT for Customers { match state { CustomerState::Entering { path, chair } => { - playerdata.direction = path.next_direction(playerdata.position()); + playerdata + .movement + .input(path.next_direction(playerdata.position()), false); if path.is_done() { let demand = DemandIndex(random::<usize>() % self.demands.len()); self.cpackets.push_back(PacketS::Communicate { @@ -123,7 +125,9 @@ impl EntityT for Customers { demand, timeout, } => { - playerdata.direction = (chair.as_vec2() + 0.5) - playerdata.position(); + playerdata + .movement + .input((chair.as_vec2() + 0.5) - playerdata.position(), false); *timeout -= dt; if *timeout <= 0. { self.cpackets.push_back(PacketS::Communicate { @@ -203,7 +207,9 @@ impl EntityT for Customers { progress, chair, } => { - playerdata.direction = (chair.as_vec2() + 0.5) - playerdata.position(); + playerdata + .movement + .input((chair.as_vec2() + 0.5) - playerdata.position(), false); let demand = &self.demands[demand.0]; *progress += dt / demand.duration; if *progress >= 1. { @@ -234,7 +240,9 @@ impl EntityT for Customers { } } CustomerState::Exiting { path } => { - playerdata.direction = path.next_direction(playerdata.position()); + playerdata + .movement + .input(path.next_direction(playerdata.position()), false); if path.is_done() { info!("{player:?} -> leave"); self.cpackets.push_back(PacketS::Leave { player }); |