diff options
author | metamuffin <metamuffin@disroot.org> | 2025-10-06 23:03:32 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-10-06 23:03:40 +0200 |
commit | 176e6bc6c4c29bea3be2aceca99743b997c76c97 (patch) | |
tree | 1161e7a966843324756340da4b6452492902fa07 /server/tools/src/book.rs | |
parent | ea86b11b682500160f37b35ea8f06b081cd05036 (diff) | |
download | hurrycurry-176e6bc6c4c29bea3be2aceca99743b997c76c97.tar hurrycurry-176e6bc6c4c29bea3be2aceca99743b997c76c97.tar.bz2 hurrycurry-176e6bc6c4c29bea3be2aceca99743b997c76c97.tar.zst |
Move data code to own crate + general data refactor
Diffstat (limited to 'server/tools/src/book.rs')
-rw-r--r-- | server/tools/src/book.rs | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/server/tools/src/book.rs b/server/tools/src/book.rs deleted file mode 100644 index bffbe836..00000000 --- a/server/tools/src/book.rs +++ /dev/null @@ -1,123 +0,0 @@ -/* - Hurry Curry! - a game about cooking - Copyright (C) 2025 Hurry Curry! Contributors - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, version 3 of the License only. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. - -*/ - -use crate::{diagram_layout::diagram_layout, recipe_diagram::recipe_diagram}; -use anyhow::Result; -use hurrycurry_locale::trm; -use hurrycurry_protocol::{ - Gamedata, Message, - book::{Book, BookPage}, -}; -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: "tomato-soup", - repr_items: &["plate:tomato-soup"], - }, - RecipePageParams { - name: "mushroom-soup", - repr_items: &["plate:mushroom-soup"], - }, - RecipePageParams { - name: "burger", - 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"], - }, -]; - -pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result<Book> { - let mut pages = Vec::new(); - - pages.push(BookPage::Contents { - title: trm!("b.toc.title"), - table: vec![], - }); - let mut toc = Vec::new(); - - for &RecipePageParams { name, repr_items } in RECIPE_PAGES { - let mut diagram = recipe_diagram(data, serverdata, repr_items)?; - diagram_layout(&mut diagram)?; - let title = Message::Translation { - id: format!("b.{name}.title"), - params: vec![], - }; - toc.push((title.clone(), pages.len())); - pages.push(BookPage::Recipe { - title, - description: Message::Translation { - id: format!("b.{name}.desc"), - params: vec![], - }, - diagram, - }); - } - - if let BookPage::Contents { table, .. } = &mut pages[0] { - *table = toc; - } - Ok(Book { pages }) -} - -pub fn print_book(data: &Gamedata, serverdata: &Serverdata) -> Result<()> { - let book = book(data, serverdata)?; - println!("{}", serde_json::to_string_pretty(&book).unwrap()); - Ok(()) -} |