summaryrefslogtreecommitdiff
path: root/server/src/interaction.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/interaction.rs')
-rw-r--r--server/src/interaction.rs16
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;