aboutsummaryrefslogtreecommitdiff
path: root/server/src/bin/graph.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/bin/graph.rs')
-rw-r--r--server/src/bin/graph.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/server/src/bin/graph.rs b/server/src/bin/graph.rs
new file mode 100644
index 00000000..9ff6f973
--- /dev/null
+++ b/server/src/bin/graph.rs
@@ -0,0 +1,38 @@
+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!("}}");
+}