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 | |
| 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')
| -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 });  |