From ead730305f08f9b56d6b8cbde1f43db22a30f92e Mon Sep 17 00:00:00 2001 From: Wynd Date: Thu, 23 Oct 2025 01:12:32 +0300 Subject: [PATCH] Added ingredients page for KH3 still WIP and needs more data --- Cargo.toml | 2 +- input/kh3/ingredients/apple.toml | 6 ++ input/kh3/ingredients/apricot.toml | 6 ++ input/kh3/ingredients/banana.toml | 7 +++ input/kh3/ingredients/basil.toml | 2 + input/kh3/ingredients/bay_leaf.toml | 2 + input/kh3/ingredients/beef.toml | 2 + input/kh3/ingredients/black_truffle.toml | 2 + input/kh3/ingredients/black_trumpet.toml | 2 + input/kh3/ingredients/blackberry.toml | 2 + input/kh3/ingredients/blood_orange.toml | 7 +++ input/kh3/ingredients/butter.toml | 2 + input/kh3/ingredients/carrot.toml | 2 + input/kh3/ingredients/caviar.toml | 2 + input/kh3/ingredients/celery.toml | 2 + input/kh3/ingredients/chanterelle.toml | 2 + input/kh3/ingredients/cheese.toml | 2 + input/kh3/ingredients/chocolate.toml | 2 + input/kh3/ingredients/cloves.toml | 2 + input/kh3/ingredients/cod.toml | 7 +++ input/kh3/ingredients/cornichon.toml | 2 + input/kh3/ingredients/crab.toml | 2 + input/kh3/ingredients/dill.toml | 2 + input/kh3/ingredients/eel.toml | 2 + input/kh3/ingredients/eggplant.toml | 2 + input/kh3/ingredients/filet_mignon.toml | 2 + input/kh3/ingredients/garlic.toml | 2 + input/kh3/ingredients/gooseberry.toml | 2 + input/kh3/ingredients/grapes.toml | 7 +++ input/kh3/ingredients/honey.toml | 6 ++ .../kh3/ingredients/king_oyster_mushroom.toml | 2 + input/kh3/ingredients/lemon.toml | 2 + input/kh3/ingredients/lobster.toml | 2 + input/kh3/ingredients/melon.toml | 7 +++ input/kh3/ingredients/miller_mushroom.toml | 2 + input/kh3/ingredients/morel.toml | 2 + input/kh3/ingredients/mussle.toml | 7 +++ input/kh3/ingredients/olive_oil.toml | 2 + input/kh3/ingredients/onion.toml | 2 + input/kh3/ingredients/orange.toml | 2 + input/kh3/ingredients/parsley.toml | 2 + input/kh3/ingredients/pear.toml | 2 + input/kh3/ingredients/porcini.toml | 2 + input/kh3/ingredients/portobello.toml | 2 + input/kh3/ingredients/pumpkin.toml | 7 +++ input/kh3/ingredients/quail.toml | 2 + input/kh3/ingredients/raspberry.toml | 2 + input/kh3/ingredients/rice.toml | 2 + input/kh3/ingredients/rosemary.toml | 2 + input/kh3/ingredients/saffron.toml | 2 + input/kh3/ingredients/scallop.toml | 7 +++ input/kh3/ingredients/sea_bass.toml | 7 +++ input/kh3/ingredients/sole.toml | 7 +++ input/kh3/ingredients/sour_cherry.toml | 7 +++ input/kh3/ingredients/strawberry.toml | 7 +++ input/kh3/ingredients/thyme.toml | 2 + input/kh3/ingredients/tomato.toml | 7 +++ input/kh3/ingredients/veal.toml | 2 + input/kh3/ingredients/watermelon.toml | 7 +++ input/kh3/ingredients/zucchini.toml | 2 + src/kh3.rs | 18 +++++- src/kh3/ingredient.rs | 58 +++++++++++++++++++ templates/components/common/drops.html | 8 +-- .../macros/common/{macros.html => drops.html} | 0 templates/pages/kh1/drops.html | 2 +- templates/pages/kh1/synth.html | 1 - templates/pages/kh2/drops.html | 2 +- templates/pages/kh3/drops.html | 4 +- templates/pages/kh3/ingredients.html | 14 +++++ 69 files changed, 298 insertions(+), 11 deletions(-) create mode 100644 input/kh3/ingredients/apple.toml create mode 100644 input/kh3/ingredients/apricot.toml create mode 100644 input/kh3/ingredients/banana.toml create mode 100644 input/kh3/ingredients/basil.toml create mode 100644 input/kh3/ingredients/bay_leaf.toml create mode 100644 input/kh3/ingredients/beef.toml create mode 100644 input/kh3/ingredients/black_truffle.toml create mode 100644 input/kh3/ingredients/black_trumpet.toml create mode 100644 input/kh3/ingredients/blackberry.toml create mode 100644 input/kh3/ingredients/blood_orange.toml create mode 100644 input/kh3/ingredients/butter.toml create mode 100644 input/kh3/ingredients/carrot.toml create mode 100644 input/kh3/ingredients/caviar.toml create mode 100644 input/kh3/ingredients/celery.toml create mode 100644 input/kh3/ingredients/chanterelle.toml create mode 100644 input/kh3/ingredients/cheese.toml create mode 100644 input/kh3/ingredients/chocolate.toml create mode 100644 input/kh3/ingredients/cloves.toml create mode 100644 input/kh3/ingredients/cod.toml create mode 100644 input/kh3/ingredients/cornichon.toml create mode 100644 input/kh3/ingredients/crab.toml create mode 100644 input/kh3/ingredients/dill.toml create mode 100644 input/kh3/ingredients/eel.toml create mode 100644 input/kh3/ingredients/eggplant.toml create mode 100644 input/kh3/ingredients/filet_mignon.toml create mode 100644 input/kh3/ingredients/garlic.toml create mode 100644 input/kh3/ingredients/gooseberry.toml create mode 100644 input/kh3/ingredients/grapes.toml create mode 100644 input/kh3/ingredients/honey.toml create mode 100644 input/kh3/ingredients/king_oyster_mushroom.toml create mode 100644 input/kh3/ingredients/lemon.toml create mode 100644 input/kh3/ingredients/lobster.toml create mode 100644 input/kh3/ingredients/melon.toml create mode 100644 input/kh3/ingredients/miller_mushroom.toml create mode 100644 input/kh3/ingredients/morel.toml create mode 100644 input/kh3/ingredients/mussle.toml create mode 100644 input/kh3/ingredients/olive_oil.toml create mode 100644 input/kh3/ingredients/onion.toml create mode 100644 input/kh3/ingredients/orange.toml create mode 100644 input/kh3/ingredients/parsley.toml create mode 100644 input/kh3/ingredients/pear.toml create mode 100644 input/kh3/ingredients/porcini.toml create mode 100644 input/kh3/ingredients/portobello.toml create mode 100644 input/kh3/ingredients/pumpkin.toml create mode 100644 input/kh3/ingredients/quail.toml create mode 100644 input/kh3/ingredients/raspberry.toml create mode 100644 input/kh3/ingredients/rice.toml create mode 100644 input/kh3/ingredients/rosemary.toml create mode 100644 input/kh3/ingredients/saffron.toml create mode 100644 input/kh3/ingredients/scallop.toml create mode 100644 input/kh3/ingredients/sea_bass.toml create mode 100644 input/kh3/ingredients/sole.toml create mode 100644 input/kh3/ingredients/sour_cherry.toml create mode 100644 input/kh3/ingredients/strawberry.toml create mode 100644 input/kh3/ingredients/thyme.toml create mode 100644 input/kh3/ingredients/tomato.toml create mode 100644 input/kh3/ingredients/veal.toml create mode 100644 input/kh3/ingredients/watermelon.toml create mode 100644 input/kh3/ingredients/zucchini.toml create mode 100644 src/kh3/ingredient.rs rename templates/macros/common/{macros.html => drops.html} (100%) create mode 100644 templates/pages/kh3/ingredients.html diff --git a/Cargo.toml b/Cargo.toml index eab255c..32016cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "khguide" -version = "1.3.2" +version = "1.4.0" edition = "2024" [dependencies] diff --git a/input/kh3/ingredients/apple.toml b/input/kh3/ingredients/apple.toml new file mode 100644 index 0000000..4289b6d --- /dev/null +++ b/input/kh3/ingredients/apple.toml @@ -0,0 +1,6 @@ +name = "Apple" +group = "fruit" + +[[locations]] +world = "Any" +room = "Moogle Shop" diff --git a/input/kh3/ingredients/apricot.toml b/input/kh3/ingredients/apricot.toml new file mode 100644 index 0000000..7c15dbe --- /dev/null +++ b/input/kh3/ingredients/apricot.toml @@ -0,0 +1,6 @@ +name = "Apricot" +group = "fruit" + +[[locations]] +world = "Any" +room = "Moogle Shop" diff --git a/input/kh3/ingredients/banana.toml b/input/kh3/ingredients/banana.toml new file mode 100644 index 0000000..780c504 --- /dev/null +++ b/input/kh3/ingredients/banana.toml @@ -0,0 +1,7 @@ +name = "Banana" +group = "special" + +[[locations]] +world = "Monstropolis" +room = "Upper Level" +note = "Banana Flan" diff --git a/input/kh3/ingredients/basil.toml b/input/kh3/ingredients/basil.toml new file mode 100644 index 0000000..f1a1b0e --- /dev/null +++ b/input/kh3/ingredients/basil.toml @@ -0,0 +1,2 @@ +name = "Basil" +group = "herb" diff --git a/input/kh3/ingredients/bay_leaf.toml b/input/kh3/ingredients/bay_leaf.toml new file mode 100644 index 0000000..513a63c --- /dev/null +++ b/input/kh3/ingredients/bay_leaf.toml @@ -0,0 +1,2 @@ +name = "Bay Leaf" +group = "herb" diff --git a/input/kh3/ingredients/beef.toml b/input/kh3/ingredients/beef.toml new file mode 100644 index 0000000..87834dd --- /dev/null +++ b/input/kh3/ingredients/beef.toml @@ -0,0 +1,2 @@ +name = "Beef" +group = "meat" diff --git a/input/kh3/ingredients/black_truffle.toml b/input/kh3/ingredients/black_truffle.toml new file mode 100644 index 0000000..da10b59 --- /dev/null +++ b/input/kh3/ingredients/black_truffle.toml @@ -0,0 +1,2 @@ +name = "Black Truffle" +group = "mushroom" diff --git a/input/kh3/ingredients/black_trumpet.toml b/input/kh3/ingredients/black_trumpet.toml new file mode 100644 index 0000000..d258053 --- /dev/null +++ b/input/kh3/ingredients/black_trumpet.toml @@ -0,0 +1,2 @@ +name = "Black Trumpet" +group = "mushroom" diff --git a/input/kh3/ingredients/blackberry.toml b/input/kh3/ingredients/blackberry.toml new file mode 100644 index 0000000..1e4a7f7 --- /dev/null +++ b/input/kh3/ingredients/blackberry.toml @@ -0,0 +1,2 @@ +name = "Blackberry" +group = "fruit" diff --git a/input/kh3/ingredients/blood_orange.toml b/input/kh3/ingredients/blood_orange.toml new file mode 100644 index 0000000..c4e8722 --- /dev/null +++ b/input/kh3/ingredients/blood_orange.toml @@ -0,0 +1,7 @@ +name = "Blood Orange" +group = "special" + +[[locations]] +world = "Kingdom of Corona" +room = "Hills" +note = "Orange Flan" diff --git a/input/kh3/ingredients/butter.toml b/input/kh3/ingredients/butter.toml new file mode 100644 index 0000000..f28a939 --- /dev/null +++ b/input/kh3/ingredients/butter.toml @@ -0,0 +1,2 @@ +name = "Butter" +group = "other" diff --git a/input/kh3/ingredients/carrot.toml b/input/kh3/ingredients/carrot.toml new file mode 100644 index 0000000..f6cee3b --- /dev/null +++ b/input/kh3/ingredients/carrot.toml @@ -0,0 +1,2 @@ +name = "Carrot" +group = "vegetable" diff --git a/input/kh3/ingredients/caviar.toml b/input/kh3/ingredients/caviar.toml new file mode 100644 index 0000000..567540a --- /dev/null +++ b/input/kh3/ingredients/caviar.toml @@ -0,0 +1,2 @@ +name = "Caviar" +group = "other" diff --git a/input/kh3/ingredients/celery.toml b/input/kh3/ingredients/celery.toml new file mode 100644 index 0000000..98cf249 --- /dev/null +++ b/input/kh3/ingredients/celery.toml @@ -0,0 +1,2 @@ +name = "Celery" +group = "vegetable" diff --git a/input/kh3/ingredients/chanterelle.toml b/input/kh3/ingredients/chanterelle.toml new file mode 100644 index 0000000..e410b7d --- /dev/null +++ b/input/kh3/ingredients/chanterelle.toml @@ -0,0 +1,2 @@ +name = "Chanterelle" +group = "mushroom" diff --git a/input/kh3/ingredients/cheese.toml b/input/kh3/ingredients/cheese.toml new file mode 100644 index 0000000..c4b7d1f --- /dev/null +++ b/input/kh3/ingredients/cheese.toml @@ -0,0 +1,2 @@ +name = "Cheese" +group = "other" diff --git a/input/kh3/ingredients/chocolate.toml b/input/kh3/ingredients/chocolate.toml new file mode 100644 index 0000000..6b14fd4 --- /dev/null +++ b/input/kh3/ingredients/chocolate.toml @@ -0,0 +1,2 @@ +name = "Chocolate" +group = "other" diff --git a/input/kh3/ingredients/cloves.toml b/input/kh3/ingredients/cloves.toml new file mode 100644 index 0000000..c4501d5 --- /dev/null +++ b/input/kh3/ingredients/cloves.toml @@ -0,0 +1,2 @@ +name = "Cloves" +group = "herb" diff --git a/input/kh3/ingredients/cod.toml b/input/kh3/ingredients/cod.toml new file mode 100644 index 0000000..ba74fa1 --- /dev/null +++ b/input/kh3/ingredients/cod.toml @@ -0,0 +1,7 @@ +name = "Cod" +group = "seafood" + +[[locations]] +world = "Kingdom of Corona" +room = "Thoroughfare" +note = "At the wharf to the left from save point" diff --git a/input/kh3/ingredients/cornichon.toml b/input/kh3/ingredients/cornichon.toml new file mode 100644 index 0000000..ff9e047 --- /dev/null +++ b/input/kh3/ingredients/cornichon.toml @@ -0,0 +1,2 @@ +name = "Cornichon" +group = "other" diff --git a/input/kh3/ingredients/crab.toml b/input/kh3/ingredients/crab.toml new file mode 100644 index 0000000..715ff0a --- /dev/null +++ b/input/kh3/ingredients/crab.toml @@ -0,0 +1,2 @@ +name = "Crab" +group = "seafood" diff --git a/input/kh3/ingredients/dill.toml b/input/kh3/ingredients/dill.toml new file mode 100644 index 0000000..a9d51db --- /dev/null +++ b/input/kh3/ingredients/dill.toml @@ -0,0 +1,2 @@ +name = "Dill" +group = "herb" diff --git a/input/kh3/ingredients/eel.toml b/input/kh3/ingredients/eel.toml new file mode 100644 index 0000000..ed9019e --- /dev/null +++ b/input/kh3/ingredients/eel.toml @@ -0,0 +1,2 @@ +name = "Eel" +group = "seafood" diff --git a/input/kh3/ingredients/eggplant.toml b/input/kh3/ingredients/eggplant.toml new file mode 100644 index 0000000..1497ce9 --- /dev/null +++ b/input/kh3/ingredients/eggplant.toml @@ -0,0 +1,2 @@ +name = "Eggplant" +group = "vegetable" diff --git a/input/kh3/ingredients/filet_mignon.toml b/input/kh3/ingredients/filet_mignon.toml new file mode 100644 index 0000000..520738b --- /dev/null +++ b/input/kh3/ingredients/filet_mignon.toml @@ -0,0 +1,2 @@ +name = "Filet Mignon" +group = "meat" diff --git a/input/kh3/ingredients/garlic.toml b/input/kh3/ingredients/garlic.toml new file mode 100644 index 0000000..95bcd54 --- /dev/null +++ b/input/kh3/ingredients/garlic.toml @@ -0,0 +1,2 @@ +name = "Garlic" +group = "vegetable" diff --git a/input/kh3/ingredients/gooseberry.toml b/input/kh3/ingredients/gooseberry.toml new file mode 100644 index 0000000..8438629 --- /dev/null +++ b/input/kh3/ingredients/gooseberry.toml @@ -0,0 +1,2 @@ +name = "Gooseberry" +group = "fruit" diff --git a/input/kh3/ingredients/grapes.toml b/input/kh3/ingredients/grapes.toml new file mode 100644 index 0000000..714098c --- /dev/null +++ b/input/kh3/ingredients/grapes.toml @@ -0,0 +1,7 @@ +name = "Grapes" +group = "special" + +[[locations]] +world = "Arendelle" +room = "Mountain Ridge" +note = "Grape Flan" diff --git a/input/kh3/ingredients/honey.toml b/input/kh3/ingredients/honey.toml new file mode 100644 index 0000000..59f13ec --- /dev/null +++ b/input/kh3/ingredients/honey.toml @@ -0,0 +1,6 @@ +name = "Honey" +group = "other" + +[[locations]] +world = "100 Acre Wood" +room = "Pooh's Hunny Harvest" diff --git a/input/kh3/ingredients/king_oyster_mushroom.toml b/input/kh3/ingredients/king_oyster_mushroom.toml new file mode 100644 index 0000000..182ee24 --- /dev/null +++ b/input/kh3/ingredients/king_oyster_mushroom.toml @@ -0,0 +1,2 @@ +name = "King Oyster Mushroom" +group = "mushroom" diff --git a/input/kh3/ingredients/lemon.toml b/input/kh3/ingredients/lemon.toml new file mode 100644 index 0000000..0767353 --- /dev/null +++ b/input/kh3/ingredients/lemon.toml @@ -0,0 +1,2 @@ +name = "Lemon" +group = "fruit" diff --git a/input/kh3/ingredients/lobster.toml b/input/kh3/ingredients/lobster.toml new file mode 100644 index 0000000..4c41960 --- /dev/null +++ b/input/kh3/ingredients/lobster.toml @@ -0,0 +1,2 @@ +name = "Lobster" +group = "seafood" diff --git a/input/kh3/ingredients/melon.toml b/input/kh3/ingredients/melon.toml new file mode 100644 index 0000000..a169dae --- /dev/null +++ b/input/kh3/ingredients/melon.toml @@ -0,0 +1,7 @@ +name = "Melon" +group = "special" + +[[locations]] +world = "San Fransokyo" +room = "South District" +note = "Honeydew Flan" diff --git a/input/kh3/ingredients/miller_mushroom.toml b/input/kh3/ingredients/miller_mushroom.toml new file mode 100644 index 0000000..a77ad15 --- /dev/null +++ b/input/kh3/ingredients/miller_mushroom.toml @@ -0,0 +1,2 @@ +name = "Miller Mushroom" +group = "mushroom" diff --git a/input/kh3/ingredients/morel.toml b/input/kh3/ingredients/morel.toml new file mode 100644 index 0000000..f765526 --- /dev/null +++ b/input/kh3/ingredients/morel.toml @@ -0,0 +1,2 @@ +name = "Morel" +group = "mushroom" diff --git a/input/kh3/ingredients/mussle.toml b/input/kh3/ingredients/mussle.toml new file mode 100644 index 0000000..4280276 --- /dev/null +++ b/input/kh3/ingredients/mussle.toml @@ -0,0 +1,7 @@ +name = "Mussle" +group = "seafood" + +[[locations]] +world = "Kingdom of Corona" +room = "Thoroughfare" +note = "At the wharf to the left from save point" diff --git a/input/kh3/ingredients/olive_oil.toml b/input/kh3/ingredients/olive_oil.toml new file mode 100644 index 0000000..eb4f8a1 --- /dev/null +++ b/input/kh3/ingredients/olive_oil.toml @@ -0,0 +1,2 @@ +name = "Olive Oil" +group = "other" diff --git a/input/kh3/ingredients/onion.toml b/input/kh3/ingredients/onion.toml new file mode 100644 index 0000000..0183beb --- /dev/null +++ b/input/kh3/ingredients/onion.toml @@ -0,0 +1,2 @@ +name = "Onion" +group = "vegetable" diff --git a/input/kh3/ingredients/orange.toml b/input/kh3/ingredients/orange.toml new file mode 100644 index 0000000..3bb1cd4 --- /dev/null +++ b/input/kh3/ingredients/orange.toml @@ -0,0 +1,2 @@ +name = "Orange" +group = "fruit" diff --git a/input/kh3/ingredients/parsley.toml b/input/kh3/ingredients/parsley.toml new file mode 100644 index 0000000..f2b9a19 --- /dev/null +++ b/input/kh3/ingredients/parsley.toml @@ -0,0 +1,2 @@ +name = "Parsley" +group = "herb" diff --git a/input/kh3/ingredients/pear.toml b/input/kh3/ingredients/pear.toml new file mode 100644 index 0000000..1921d36 --- /dev/null +++ b/input/kh3/ingredients/pear.toml @@ -0,0 +1,2 @@ +name = "Pear" +group = "fruit" diff --git a/input/kh3/ingredients/porcini.toml b/input/kh3/ingredients/porcini.toml new file mode 100644 index 0000000..6581dcf --- /dev/null +++ b/input/kh3/ingredients/porcini.toml @@ -0,0 +1,2 @@ +name = "Porcini" +group = "mushroom" diff --git a/input/kh3/ingredients/portobello.toml b/input/kh3/ingredients/portobello.toml new file mode 100644 index 0000000..0e03339 --- /dev/null +++ b/input/kh3/ingredients/portobello.toml @@ -0,0 +1,2 @@ +name = "Portobello" +group = "mushroom" diff --git a/input/kh3/ingredients/pumpkin.toml b/input/kh3/ingredients/pumpkin.toml new file mode 100644 index 0000000..98a1b8d --- /dev/null +++ b/input/kh3/ingredients/pumpkin.toml @@ -0,0 +1,7 @@ +name = "Pumpkin" +group = "vegetable" + +[[locations]] +world = "Kingdom of Corona" +room = "Thoroughfare" +note = "Stands on the main street" diff --git a/input/kh3/ingredients/quail.toml b/input/kh3/ingredients/quail.toml new file mode 100644 index 0000000..7e2b14c --- /dev/null +++ b/input/kh3/ingredients/quail.toml @@ -0,0 +1,2 @@ +name = "Quail" +group = "meat" diff --git a/input/kh3/ingredients/raspberry.toml b/input/kh3/ingredients/raspberry.toml new file mode 100644 index 0000000..e04c616 --- /dev/null +++ b/input/kh3/ingredients/raspberry.toml @@ -0,0 +1,2 @@ +name = "Raspberry" +group = "fruit" diff --git a/input/kh3/ingredients/rice.toml b/input/kh3/ingredients/rice.toml new file mode 100644 index 0000000..1448586 --- /dev/null +++ b/input/kh3/ingredients/rice.toml @@ -0,0 +1,2 @@ +name = "Rice" +group = "other" diff --git a/input/kh3/ingredients/rosemary.toml b/input/kh3/ingredients/rosemary.toml new file mode 100644 index 0000000..58bfb8e --- /dev/null +++ b/input/kh3/ingredients/rosemary.toml @@ -0,0 +1,2 @@ +name = "Rosemary" +group = "herb" diff --git a/input/kh3/ingredients/saffron.toml b/input/kh3/ingredients/saffron.toml new file mode 100644 index 0000000..4b9e44c --- /dev/null +++ b/input/kh3/ingredients/saffron.toml @@ -0,0 +1,2 @@ +name = "Saffron" +group = "herb" diff --git a/input/kh3/ingredients/scallop.toml b/input/kh3/ingredients/scallop.toml new file mode 100644 index 0000000..08195e7 --- /dev/null +++ b/input/kh3/ingredients/scallop.toml @@ -0,0 +1,7 @@ +name = "Scallop" +group = "seafood" + +[[locations]] +world = "Kingdom of Corona" +room = "Thoroughfare" +note = "At the wharf to the left from save point" diff --git a/input/kh3/ingredients/sea_bass.toml b/input/kh3/ingredients/sea_bass.toml new file mode 100644 index 0000000..04a502d --- /dev/null +++ b/input/kh3/ingredients/sea_bass.toml @@ -0,0 +1,7 @@ +name = "Sea Bass" +group = "seafood" + +[[locations]] +world = "Kingdom of Corona" +room = "Thoroughfare" +note = "At the wharf to the left from save point" diff --git a/input/kh3/ingredients/sole.toml b/input/kh3/ingredients/sole.toml new file mode 100644 index 0000000..13b1d06 --- /dev/null +++ b/input/kh3/ingredients/sole.toml @@ -0,0 +1,7 @@ +name = "Sole" +group = "seafood" + +[[locations]] +world = "Kingdom of Corona" +room = "Thoroughfare" +note = "At the wharf to the left from save point" diff --git a/input/kh3/ingredients/sour_cherry.toml b/input/kh3/ingredients/sour_cherry.toml new file mode 100644 index 0000000..237a94a --- /dev/null +++ b/input/kh3/ingredients/sour_cherry.toml @@ -0,0 +1,7 @@ +name = "Sour Cherry" +group = "special" + +[[locations]] +world = "Olympus" +room = "Overlook" +note = "Cherry Flan" diff --git a/input/kh3/ingredients/strawberry.toml b/input/kh3/ingredients/strawberry.toml new file mode 100644 index 0000000..a455591 --- /dev/null +++ b/input/kh3/ingredients/strawberry.toml @@ -0,0 +1,7 @@ +name = "Strawberry" +group = "special" + +[[locations]] +world = "Toy Box" +room = "Rest Area" +note = "Strawberry Flan" diff --git a/input/kh3/ingredients/thyme.toml b/input/kh3/ingredients/thyme.toml new file mode 100644 index 0000000..b2b2e75 --- /dev/null +++ b/input/kh3/ingredients/thyme.toml @@ -0,0 +1,2 @@ +name = "Thyme" +group = "herb" diff --git a/input/kh3/ingredients/tomato.toml b/input/kh3/ingredients/tomato.toml new file mode 100644 index 0000000..a8ddc03 --- /dev/null +++ b/input/kh3/ingredients/tomato.toml @@ -0,0 +1,7 @@ +name = "Tomato" +group = "vegetable" + +[[locations]] +world = "Kingdom of Corona" +room = "Thoroughfare" +note = "Stands on the main street" diff --git a/input/kh3/ingredients/veal.toml b/input/kh3/ingredients/veal.toml new file mode 100644 index 0000000..25bcb83 --- /dev/null +++ b/input/kh3/ingredients/veal.toml @@ -0,0 +1,2 @@ +name = "Veal" +group = "meat" diff --git a/input/kh3/ingredients/watermelon.toml b/input/kh3/ingredients/watermelon.toml new file mode 100644 index 0000000..55c2af6 --- /dev/null +++ b/input/kh3/ingredients/watermelon.toml @@ -0,0 +1,7 @@ +name = "Watermelon" +group = "special" + +[[locations]] +world = "The Caribbean" +room = "Fort" +note = "Watermelon Flan" diff --git a/input/kh3/ingredients/zucchini.toml b/input/kh3/ingredients/zucchini.toml new file mode 100644 index 0000000..2419f2b --- /dev/null +++ b/input/kh3/ingredients/zucchini.toml @@ -0,0 +1,2 @@ +name = "Zucchini" +group = "vegetable" diff --git a/src/kh3.rs b/src/kh3.rs index 8016089..954e9f8 100644 --- a/src/kh3.rs +++ b/src/kh3.rs @@ -1,5 +1,6 @@ use askama::Template; use food::Recipes; +use ingredient::Ingredient; use crate::{ RuntimeModule, @@ -8,9 +9,11 @@ use crate::{ }; mod food; +mod ingredient; const ENEMIES_PATH: &str = "./input/kh3/enemies"; const RECIPES_PATH: &str = "./input/kh3/recipes.toml"; +const INGREDIENTS_PATH: &str = "./input/kh3/ingredients"; #[derive(Template)] #[template(path = "pages/kh3/drops.html")] @@ -24,15 +27,23 @@ struct RecipesTemplate { pub recipes: Recipes, } +#[derive(Template)] +#[template(path = "pages/kh3/ingredients.html")] +struct IngredientsTemplate { + pub ingredients: Vec, +} + pub struct Module; impl RuntimeModule for Module { fn start_module() { tracing::info!("Loading enemy data from {}", ENEMIES_PATH); let enemies = Enemy::import(ENEMIES_PATH); - let drops = Drops::new(Game::Kh3, enemies); + tracing::info!("Loading ingredients data from {}", ENEMIES_PATH); + let ingredients = Ingredient::import(INGREDIENTS_PATH); + tracing::info!("Loading recipes data from {}", RECIPES_PATH); let recipes_str = std::fs::read_to_string(RECIPES_PATH).unwrap(); let recipes = toml::from_str::(&recipes_str).unwrap(); @@ -42,6 +53,11 @@ impl RuntimeModule for Module { create_file("./out/kh3", "drops", drops_template).unwrap(); + tracing::info!("Generating the KH3 ingredients template"); + let ingredients_template = IngredientsTemplate { ingredients }; + + create_file("./out/kh3", "ingredients", ingredients_template).unwrap(); + tracing::info!("Generating the KH3 recipes template"); let food_template = RecipesTemplate { recipes }; diff --git a/src/kh3/ingredient.rs b/src/kh3/ingredient.rs new file mode 100644 index 0000000..3516e72 --- /dev/null +++ b/src/kh3/ingredient.rs @@ -0,0 +1,58 @@ +use std::path::PathBuf; + +use serde::Deserialize; + +#[derive(Debug, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "lowercase")] +pub enum IngredientGroup { + Meat, + Seafood, + Vegetable, + Mushroom, + Herb, + Fruit, + Other, + Special, +} + +#[derive(Debug, Deserialize, PartialEq, Eq)] +pub struct Ingredient { + pub name: String, + pub group: IngredientGroup, + + pub locations: Vec, +} + +#[derive(Debug, Deserialize, PartialEq, Eq)] +pub struct Location { + pub world: String, + pub room: String, + pub note: Option, +} + +impl Ingredient { + pub fn import(path: &str) -> Vec { + let mut ingredients: Vec = vec![]; + + // Loading multiple files into one vector due to the size of each board + let paths = std::fs::read_dir(path) + .unwrap() + .filter_map(|f| f.ok()) + .map(|f| f.path()) + .filter_map(|p| match p.extension().is_some_and(|e| e == "toml") { + true => Some(p), + false => None, + }) + .collect::>(); + + for path in paths { + let str = std::fs::read_to_string(path).unwrap(); + let ingredient = toml::from_str::(&str); + if let Ok(ingredient) = ingredient { + ingredients.push(ingredient); + } + } + + ingredients + } +} diff --git a/templates/components/common/drops.html b/templates/components/common/drops.html index c245b68..0dafd8a 100644 --- a/templates/components/common/drops.html +++ b/templates/components/common/drops.html @@ -26,8 +26,8 @@
{% for drop in data.drops %} - {% call macros::drop("shard") %} - {% call macros::drop("stone") %} - {% call macros::drop("gem") %} - {% call macros::drop("crystal") %} + {% call drops_macros::drop("shard") %} + {% call drops_macros::drop("stone") %} + {% call drops_macros::drop("gem") %} + {% call drops_macros::drop("crystal") %} {% endfor %} diff --git a/templates/macros/common/macros.html b/templates/macros/common/drops.html similarity index 100% rename from templates/macros/common/macros.html rename to templates/macros/common/drops.html diff --git a/templates/pages/kh1/drops.html b/templates/pages/kh1/drops.html index 2ab07b3..e310abf 100644 --- a/templates/pages/kh1/drops.html +++ b/templates/pages/kh1/drops.html @@ -1,5 +1,5 @@ {% extends "layouts/base.html" %} -{% import "macros/common/macros.html" as macros %} +{% import "macros/common/drops.html" as drops_macros %} {% block title %}KH1 - Drops{% endblock %} diff --git a/templates/pages/kh1/synth.html b/templates/pages/kh1/synth.html index 479f085..0320e38 100644 --- a/templates/pages/kh1/synth.html +++ b/templates/pages/kh1/synth.html @@ -1,5 +1,4 @@ {% extends "layouts/base.html" %} -{% import "macros/common/macros.html" as macros %} {% block title %}KH1 - Sythensis{% endblock %} diff --git a/templates/pages/kh2/drops.html b/templates/pages/kh2/drops.html index 100bc63..616a8c8 100644 --- a/templates/pages/kh2/drops.html +++ b/templates/pages/kh2/drops.html @@ -1,5 +1,5 @@ {% extends "layouts/base.html" %} -{% import "macros/common/macros.html" as macros %} +{% import "macros/common/drops.html" as drops_macros %} {% block title %}KH2 - Drops{% endblock %} diff --git a/templates/pages/kh3/drops.html b/templates/pages/kh3/drops.html index 100bc63..7b041d5 100644 --- a/templates/pages/kh3/drops.html +++ b/templates/pages/kh3/drops.html @@ -1,7 +1,7 @@ {% extends "layouts/base.html" %} -{% import "macros/common/macros.html" as macros %} +{% import "macros/common/drops.html" as drops_macros %} -{% block title %}KH2 - Drops{% endblock %} +{% block title %}KH3 - Drops{% endblock %} {% block head %} diff --git a/templates/pages/kh3/ingredients.html b/templates/pages/kh3/ingredients.html new file mode 100644 index 0000000..7771ff4 --- /dev/null +++ b/templates/pages/kh3/ingredients.html @@ -0,0 +1,14 @@ +{% extends "layouts/base.html" %} + +{% block title %}KH3 - Ingredients{% endblock %} + +{% block head %} + + +{% endblock %} + +{% block content %} +{% endblock %}