diff options
| author | metamuffin <metamuffin@disroot.org> | 2024-06-20 01:38:00 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2024-06-23 19:21:49 +0200 | 
| commit | 720bb2e4f53d4467832ba59f97c9b6b6786181e7 (patch) | |
| tree | 10ea600436adf2c101d9a1ccbf64808414bbc354 /server/src/interaction.rs | |
| parent | 6f7b995dd9fa3bea95be8c24e2452f015b410839 (diff) | |
| download | hurrycurry-720bb2e4f53d4467832ba59f97c9b6b6786181e7.tar hurrycurry-720bb2e4f53d4467832ba59f97c9b6b6786181e7.tar.bz2 hurrycurry-720bb2e4f53d4467832ba59f97c9b6b6786181e7.tar.zst | |
type safe indecies
Diffstat (limited to 'server/src/interaction.rs')
| -rw-r--r-- | server/src/interaction.rs | 16 | 
1 files changed, 8 insertions, 8 deletions
| diff --git a/server/src/interaction.rs b/server/src/interaction.rs index d822340f..a4b79bd0 100644 --- a/server/src/interaction.rs +++ b/server/src/interaction.rs @@ -70,7 +70,7 @@ pub fn interact(      if player.item.is_none() {          if let Some(item) = &mut tile.item {              if let Some(active) = &mut item.active { -                let recipe = &data.recipes[active.recipe]; +                let recipe = &data.recipe(active.recipe);                  if recipe.supports_tile(tile.kind) {                      if let Recipe::Active { outputs, .. } = recipe {                          if edge { @@ -92,7 +92,7 @@ pub fn interact(          return None;      } -    for (ri, recipe) in data.recipes.iter().enumerate() { +    for (ri, recipe) in data.recipes() {          if !recipe.supports_tile(tile.kind) {              continue;          } @@ -102,7 +102,7 @@ pub fn interact(                      if let Some(item) = &mut tile.item {                          if item.kind == *input {                              if item.active.is_none() { -                                info!("start active recipe {ri}"); +                                info!("start active recipe {ri:?}");                                  item.active = Some(Involvement {                                      recipe: ri,                                      working: 1, @@ -119,7 +119,7 @@ pub fn interact(                              if let Some(active) = &mut item.active {                                  active.working += 1;                              } else { -                                info!("start active recipe {ri}"); +                                info!("start active recipe {ri:?}");                                  item.active = Some(Involvement {                                      recipe: ri,                                      working: 1, @@ -140,7 +140,7 @@ pub fn interact(                  let ok = (inputs[0] == on_tile && inputs[1] == in_hand)                      || (inputs[1] == on_tile && inputs[0] == in_hand);                  if ok { -                    info!("instant recipe {ri}"); +                    info!("instant recipe {ri:?}");                      player.item = outputs[0].map(|kind| Item { kind, active: None });                      tile.item = outputs[1].map(|kind| Item { kind, active: None });                      return Some(InteractEffect::Produce); @@ -173,11 +173,11 @@ pub enum TickEffect {  pub fn tick_tile(dt: f32, data: &Gamedata, tile: &mut Tile) -> Option<TickEffect> {      if let Some(item) = &mut tile.item {          if let Some(a) = &mut item.active { -            let r = &data.recipes[a.recipe]; +            let r = &data.recipe(a.recipe);              if r.supports_tile(tile.kind) {                  a.progress += a.working as f32 * dt / r.duration().unwrap();                  if a.progress >= 1. { -                    if let Recipe::Passive { output, .. } = &data.recipes[a.recipe] { +                    if let Recipe::Passive { output, .. } = &data.recipe(a.recipe) {                          tile.item = output.map(|kind| Item { kind, active: None });                          return Some(TickEffect::Produce);                      }; @@ -186,7 +186,7 @@ pub fn tick_tile(dt: f32, data: &Gamedata, tile: &mut Tile) -> Option<TickEffect                  return Some(TickEffect::Progress);              }          } else { -            for (ri, recipe) in data.recipes.iter().enumerate() { +            for (ri, recipe) in data.recipes() {                  if let Some(tile_constraint) = recipe.tile() {                      if tile.kind != tile_constraint {                          continue; | 
