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.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/server/src/interaction.rs b/server/src/interaction.rs
index a4b79bd0..93f54b2d 100644
--- a/server/src/interaction.rs
+++ b/server/src/interaction.rs
@@ -42,6 +42,26 @@ impl Recipe {
_ => None,
}
}
+ pub fn inputs(&self) -> Vec<ItemIndex> {
+ match self {
+ Recipe::Passive { input, .. } => vec![*input],
+ Recipe::Active { input, .. } => vec![*input],
+ Recipe::Instant { inputs, .. } => {
+ inputs.into_iter().flat_map(|e| e.to_owned()).collect()
+ }
+ }
+ }
+ pub fn outputs(&self) -> Vec<ItemIndex> {
+ match self {
+ Recipe::Passive { output, .. } => output.to_owned().into_iter().collect(),
+ Recipe::Active { outputs, .. } => {
+ outputs.into_iter().flat_map(|e| e.to_owned()).collect()
+ }
+ Recipe::Instant { outputs, .. } => {
+ outputs.into_iter().flat_map(|e| e.to_owned()).collect()
+ }
+ }
+ }
pub fn supports_tile(&self, tile: TileIndex) -> bool {
if let Some(tile_constraint) = self.tile() {
if tile != tile_constraint {