aboutsummaryrefslogtreecommitdiff
path: root/server/tools/src/book.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-09-19 22:27:46 +0200
committermetamuffin <metamuffin@disroot.org>2025-09-19 22:40:39 +0200
commit402067b8317195fd2bc4ab4d92b5ace94fadb7c0 (patch)
tree2437c52ae71a11c4d17a6fa4597f8152dae96ddc /server/tools/src/book.rs
parent2f311fec691cd7a62fa4f95ee0419089913b5dd8 (diff)
downloadhurrycurry-402067b8317195fd2bc4ab4d92b5ace94fadb7c0.tar
hurrycurry-402067b8317195fd2bc4ab4d92b5ace94fadb7c0.tar.bz2
hurrycurry-402067b8317195fd2bc4ab4d92b5ace94fadb7c0.tar.zst
Refactor book part 1
Diffstat (limited to 'server/tools/src/book.rs')
-rw-r--r--server/tools/src/book.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/server/tools/src/book.rs b/server/tools/src/book.rs
new file mode 100644
index 00000000..6c871274
--- /dev/null
+++ b/server/tools/src/book.rs
@@ -0,0 +1,41 @@
+/*
+ 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_protocol::{
+ ItemIndex, Message,
+ book::{Book, BookPage},
+};
+
+pub fn book() -> Result<()> {
+ let mut diagram = recipe_diagram(&["plate:cheese-leek-soup".to_owned()])?;
+ diagram_layout(&mut diagram)?;
+
+ let mut pages = Vec::new();
+
+ pages.push(BookPage::Recipe {
+ description: Message::Item(ItemIndex(0)),
+ instruction: Message::Item(ItemIndex(0)),
+ diagram,
+ });
+
+ let book = Book { pages };
+ println!("{}", serde_json::to_string_pretty(&book).unwrap());
+ Ok(())
+}