aboutsummaryrefslogtreecommitdiff
path: root/server/tools/src/book.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/tools/src/book.rs')
-rw-r--r--server/tools/src/book.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/server/tools/src/book.rs b/server/tools/src/book.rs
index fc2a1502..ed310fc7 100644
--- a/server/tools/src/book.rs
+++ b/server/tools/src/book.rs
@@ -43,15 +43,18 @@ pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result<Book> {
let mut pages = Vec::new();
pages.push(BookPage::Contents { 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: Message::Translation {
- id: format!("b.{name}.title"),
- params: vec![],
- },
+ title,
description: Message::Translation {
id: format!("b.{name}.desc"),
params: vec![],
@@ -60,6 +63,12 @@ pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result<Book> {
});
}
+ if let BookPage::Contents { table } = &mut pages[0] {
+ *table = toc;
+ } else {
+ unreachable!()
+ }
+
Ok(Book { pages })
}