From 30570816b3c460b69e6b410cdddb3e6516b80e22 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 29 Sep 2025 21:22:42 +0200 Subject: Support multiple book pages --- server/tools/src/book.rs | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'server/tools/src/book.rs') diff --git a/server/tools/src/book.rs b/server/tools/src/book.rs index 802cbaea..fc2a1502 100644 --- a/server/tools/src/book.rs +++ b/server/tools/src/book.rs @@ -24,15 +24,38 @@ use hurrycurry_protocol::{ }; use hurrycurry_server::data::Serverdata; +struct RecipePageParams<'a> { + name: &'a str, + repr_items: &'a [&'a str], +} +static RECIPE_PAGES: &[RecipePageParams] = &[ + RecipePageParams { + name: "cheese-leek-soup", + repr_items: &["plate:cheese-leek-soup"], + }, + RecipePageParams { + name: "burger", + repr_items: &["plate:seared-patty,sliced-bun"], + }, +]; + pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result { let mut pages = Vec::new(); - for item in ["plate:cheese-leek-soup", "plate:seared-patty,sliced-bun"] { - let mut diagram = recipe_diagram(data, serverdata, &[item.to_owned()])?; + pages.push(BookPage::Contents { table: vec![] }); + + for &RecipePageParams { name, repr_items } in RECIPE_PAGES { + let mut diagram = recipe_diagram(data, serverdata, repr_items)?; diagram_layout(&mut diagram)?; pages.push(BookPage::Recipe { - description: Message::Text("Some text goes here...".to_string()), - instruction: Message::Text("Some text goes here...".to_string()), + title: Message::Translation { + id: format!("b.{name}.title"), + params: vec![], + }, + description: Message::Translation { + id: format!("b.{name}.desc"), + params: vec![], + }, diagram, }); } -- cgit v1.2.3-70-g09d2