aboutsummaryrefslogtreecommitdiff
path: root/server/tools
diff options
context:
space:
mode:
Diffstat (limited to 'server/tools')
-rw-r--r--server/tools/src/book.rs31
-rw-r--r--server/tools/src/book_html.rs4
-rw-r--r--server/tools/src/main.rs2
-rw-r--r--server/tools/src/recipe_diagram.rs4
4 files changed, 32 insertions, 9 deletions
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<Book> {
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,
});
}
diff --git a/server/tools/src/book_html.rs b/server/tools/src/book_html.rs
index c827fc4a..a1dfaf9b 100644
--- a/server/tools/src/book_html.rs
+++ b/server/tools/src/book_html.rs
@@ -47,10 +47,10 @@ markup::define! {
div.page {}
div.page {}
}
- BookPage::Recipe { description, instruction, diagram } => {
+ BookPage::Recipe { title, description, diagram } => {
div.page {
+ h1 { @MessageR { data, message: title } }
p { @MessageR { data, message: description } }
- p { @MessageR { data, message: instruction } }
}
div.page {
@DiagramR { data, diagram }
diff --git a/server/tools/src/main.rs b/server/tools/src/main.rs
index 1b4a9a51..a18051b0 100644
--- a/server/tools/src/main.rs
+++ b/server/tools/src/main.rs
@@ -58,7 +58,7 @@ fn main() -> Result<()> {
let mut index = DataIndex::default();
index.reload()?;
let (data, serverdata, _) = index.generate("5star")?;
- let diagram = recipe_diagram(&data, &serverdata, &[out])?;
+ let diagram = recipe_diagram(&data, &serverdata, &[&out])?;
let dot = diagram_dot(&data, &diagram)?;
println!("{dot}");
}
diff --git a/server/tools/src/recipe_diagram.rs b/server/tools/src/recipe_diagram.rs
index 7f72acd3..2ed0179f 100644
--- a/server/tools/src/recipe_diagram.rs
+++ b/server/tools/src/recipe_diagram.rs
@@ -28,7 +28,7 @@ use std::collections::{BTreeMap, BTreeSet, HashSet};
pub(crate) fn recipe_diagram(
data: &Gamedata,
serverdata: &Serverdata,
- target_items: &[String],
+ target_items: &[&str],
) -> Result<Diagram> {
let ambient_items = serverdata
.initial_map
@@ -84,7 +84,7 @@ pub(crate) fn recipe_diagram(
diag.nodes.push(DiagramNode {
label: Message::Item(i),
position: Vec2::ZERO,
- style: if target_items.contains(data.item_name(i)) {
+ style: if target_items.contains(&data.item_name(i)) {
NodeStyle::FinalProduct
} else {
NodeStyle::IntermediateProduct