diff options
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; |