use undercooked::{ interaction::Recipe, load_gamedata, protocol::{ItemIndex, RecipeIndex}, }; fn main() { let data = load_gamedata(); println!("digraph {{"); for i in 0..data.item_names.len() { println!("i{i} [label=\"{}\"]", data.item_name(ItemIndex(i))) } for (RecipeIndex(ri), recipe) in data.recipes() { println!( "r{ri} [label=\"{}\\non {}\" shape=box color=gray fillcolor=gray style=filled]", match recipe { Recipe::Passive { .. } => "Passive", Recipe::Active { .. } => "Active", Recipe::Instant { .. } => "Instant", }, if let Some(tile) = recipe.tile() { data.tile_name(tile) } else { "anything" } ); for ItemIndex(input) in recipe.inputs() { println!("i{input} -> r{ri}") } for ItemIndex(output) in recipe.outputs() { println!("r{ri} -> i{output}") } } println!("}}"); }