diff options
Diffstat (limited to 'server/src/bin/graph.rs')
-rw-r--r-- | server/src/bin/graph.rs | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/server/src/bin/graph.rs b/server/src/bin/graph.rs index 94dddbc4..0aac5468 100644 --- a/server/src/bin/graph.rs +++ b/server/src/bin/graph.rs @@ -15,7 +15,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -use anyhow::Result; +use anyhow::{anyhow, Result}; use undercooked::{ data::DataIndex, interaction::Recipe, @@ -28,19 +28,22 @@ fn main() -> Result<()> { println!("digraph {{"); - for rn in &index.recipes { - let data = index.generate(format!("default-none-{rn}"))?; + let rn = std::env::args() + .nth(1) + .ok_or(anyhow!("first arg should be recipe set name"))?; - for i in 0..data.item_names.len() { - println!("i{i} [label=\"{}\"]", data.item_name(ItemIndex(i))) - } - for (RecipeIndex(ri), recipe) in data.recipes() { - let (kind, color) = match recipe { - Recipe::Passive { .. } => ("Passive", "#2bc493"), - Recipe::Active { .. } => ("Active", "#47c42b"), - Recipe::Instant { .. } => ("Instant", "#5452d8"), - }; - println!( + let data = index.generate(format!("none-lobby-{rn}"))?; + + for i in 0..data.item_names.len() { + println!("i{i} [label=\"{}\"]", data.item_name(ItemIndex(i))) + } + for (RecipeIndex(ri), recipe) in data.recipes() { + let (kind, color) = match recipe { + Recipe::Passive { .. } => ("Passive", "#2bc493"), + Recipe::Active { .. } => ("Active", "#47c42b"), + Recipe::Instant { .. } => ("Instant", "#5452d8"), + }; + println!( "r{ri} [label=\"{kind}\\non {}\" shape=box color={color:?} fillcolor={color:?} style=filled]", if let Some(tile) = recipe.tile() { data.tile_name(tile) @@ -48,23 +51,22 @@ fn main() -> Result<()> { "anything" } ); - for ItemIndex(input) in recipe.inputs() { - println!("i{input} -> r{ri}") - } - for ItemIndex(output) in recipe.outputs() { - println!("r{ri} -> i{output}") - } + for ItemIndex(input) in recipe.inputs() { + println!("i{input} -> r{ri}") + } + for ItemIndex(output) in recipe.outputs() { + println!("r{ri} -> i{output}") } + } - for (di, d) in data.demands.iter().enumerate() { - let color = "#c4422b"; - println!( + for (di, d) in data.demands.iter().enumerate() { + let color = "#c4422b"; + println!( "d{di} [label=\"Demand\\ntakes {}s\" shape=box color={color:?} fillcolor={color:?} style=filled]", d.duration ); - println!("i{} -> d{di}", d.from.0); - println!("d{di} -> i{}", d.to.0); - } + println!("i{} -> d{di}", d.from.0); + println!("d{di} -> i{}", d.to.0); } println!("}}"); |