diff options
Diffstat (limited to 'server/src/interaction.rs')
-rw-r--r-- | server/src/interaction.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/server/src/interaction.rs b/server/src/interaction.rs index 7f694ad8..ef6d5bf7 100644 --- a/server/src/interaction.rs +++ b/server/src/interaction.rs @@ -13,6 +13,7 @@ pub enum Recipe { tile: Option<TileIndex>, input: ItemIndex, output: Option<ItemIndex>, + warn: bool, }, Active { duration: f32, @@ -42,6 +43,12 @@ impl Recipe { _ => None, } } + pub fn warn(&self) -> bool { + match self { + Recipe::Passive { warn, .. } => *warn, + _ => false, + } + } pub fn inputs(&self) -> Vec<ItemIndex> { match self { Recipe::Passive { input, .. } => vec![*input], @@ -189,7 +196,7 @@ pub fn interact( } pub enum TickEffect { - Progress, + Progress(bool), Produce, } pub fn tick_tile(dt: f32, data: &Gamedata, tile: &mut Tile) -> Option<TickEffect> { @@ -205,7 +212,7 @@ pub fn tick_tile(dt: f32, data: &Gamedata, tile: &mut Tile) -> Option<TickEffect }; a.progress = 1.; } - return Some(TickEffect::Progress); + return Some(TickEffect::Progress(r.warn())); } } else { for (ri, recipe) in data.recipes() { @@ -220,11 +227,11 @@ pub fn tick_tile(dt: f32, data: &Gamedata, tile: &mut Tile) -> Option<TickEffect recipe: ri, progress: 0., working: 1, - }) + }); + return Some(TickEffect::Progress(recipe.warn())); } } } - return Some(TickEffect::Progress); } } None |