From ea86b11b682500160f37b35ea8f06b081cd05036 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 6 Oct 2025 21:23:04 +0200 Subject: translate html book + more pages --- locale/en.ini | 8 +++++++ server/tools/src/book.rs | 43 ++++++++++++++++++++++++++++++++------ server/tools/src/book_html.rs | 16 +++++++------- server/tools/src/main.rs | 2 +- server/tools/src/recipe_diagram.rs | 2 +- 5 files changed, 54 insertions(+), 17 deletions(-) diff --git a/locale/en.ini b/locale/en.ini index ab2888cc..cd8d9246 100644 --- a/locale/en.ini +++ b/locale/en.ini @@ -313,3 +313,11 @@ s.tutorial.serve=Serve the meal here s.tutorial.take_now=Take this item quickly! s.tutorial.take=Take {0} from here s.tutorial.wait_finish=Wait... +b.title=Hurry Curry! Recipe Book +b.toc.title=Table of Contents +b.noodles.title=Noodles +b.burger.title=Burger +b.cheese-leek-soup.title=Cheese-Leek Soup +b.mushroom-soup.title=Mushroom Soup +b.tomato-soup.title=Tomato Soup +b.pizza.title=Pizza \ No newline at end of file diff --git a/server/tools/src/book.rs b/server/tools/src/book.rs index 3e04b54f..bffbe836 100644 --- a/server/tools/src/book.rs +++ b/server/tools/src/book.rs @@ -44,19 +44,50 @@ static RECIPE_PAGES: &[RecipePageParams] = &[ }, RecipePageParams { name: "burger", - repr_items: &["plate:seared-patty,sliced-bun,sliced-lettuce"], + repr_items: &[ + "plate:seared-patty,sliced-bun,sliced-lettuce,sliced-tomato", + "plate:seared-patty,sliced-bun,sliced-cheese,sliced-tomato", + ], + }, + RecipePageParams { + name: "noodles", + repr_items: &["plate:cooked-noodles,sliced-cheese,tomato-juice"], + }, + RecipePageParams { + name: "pizza", + repr_items: &["plate:baked-rolled-dough:sliced-cheese,sliced-mushroom,tomato-juice"], + }, + RecipePageParams { + name: "curry", + repr_items: &["plate:cooked-rice,curry"], + }, + RecipePageParams { + name: "drinks", + repr_items: &[ + "glass:water", + "glass:tomato-juice", + "glass:strawberry-shake", + ], + }, + RecipePageParams { + name: "mochi", + repr_items: &["plate:strawberry-mochi"], + }, + RecipePageParams { + name: "doughnut", + repr_items: &["plate:doughnut"], + }, + RecipePageParams { + name: "doughnut", + repr_items: &["plate:doughnut"], }, - // RecipePageParams { - // name: "noodles", - // repr_items: &["plate:cooked-noodles,tomato-juice"], - // }, ]; pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result { let mut pages = Vec::new(); pages.push(BookPage::Contents { - title: trm!("b.toc"), + title: trm!("b.toc.title"), table: vec![], }); let mut toc = Vec::new(); diff --git a/server/tools/src/book_html.rs b/server/tools/src/book_html.rs index f915444b..08a12e88 100644 --- a/server/tools/src/book_html.rs +++ b/server/tools/src/book_html.rs @@ -16,14 +16,16 @@ */ -use hurrycurry_locale::Locale; +use crate::diagram_svg::diagram_svg; +use hurrycurry_locale::{ + Locale, + message::{MessageDisplayExt, PLAIN}, +}; use hurrycurry_protocol::{ Gamedata, Message, book::{Book, BookPage, Diagram}, }; -use crate::diagram_svg::diagram_svg; - pub fn render_html_book(data: &Gamedata, book: &Book, locale: &Locale) -> String { BookR { book, data, locale }.to_string() } @@ -43,6 +45,7 @@ markup::define! { } } } + PageR<'a>(index: usize, data: &'a Gamedata, locale: &'a Locale, page: &'a BookPage) { section.pagegroup[id=format!("page{index}")] { @match page { @@ -77,12 +80,7 @@ markup::define! { } MessageR<'a>(data: &'a Gamedata, locale: &'a Locale, message: &'a Message) { - @match message { - Message::Translation { id, params } => { @format!("{:?}", (id, params)) } - Message::Text(t) => { @t } - Message::Item(i) => { @data.item_name(*i) } - Message::Tile(i) => { @data.tile_name(*i) } - } + @message.display_message(*locale, *data, &PLAIN) } DiagramR<'a>(data: &'a Gamedata, diagram: &'a Diagram) { diff --git a/server/tools/src/main.rs b/server/tools/src/main.rs index d7e5137a..b550dabb 100644 --- a/server/tools/src/main.rs +++ b/server/tools/src/main.rs @@ -107,7 +107,7 @@ fn main() -> Result<()> { index.reload()?; let (data, serverdata, _) = index.generate("5star")?; let book = book(&data, &serverdata)?; - println!("{}", render_html_book(&data, &book, &FALLBACK_LOCALE)) + println!("{}", render_html_book(&data, &book, &FALLBACK_LOCALE)); } Action::MapDemands { map } => { let mut index = DataIndex::default(); diff --git a/server/tools/src/recipe_diagram.rs b/server/tools/src/recipe_diagram.rs index a1ac7efd..0be75433 100644 --- a/server/tools/src/recipe_diagram.rs +++ b/server/tools/src/recipe_diagram.rs @@ -73,7 +73,7 @@ pub(crate) fn recipe_diagram( .collect(), index: ri, }; - need.extend(&gr.inputs); + need.extend(gr.inputs.iter().filter(|i| !have.contains(&i))); have.extend(&gr.outputs); recipes.insert(gr); } -- cgit v1.2.3-70-g09d2