From 92de62c92680016ecfda05c5d103b4cee354549c Mon Sep 17 00:00:00 2001 From: AlexanderPezarro Date: Tue, 30 Aug 2022 15:03:57 +0200 Subject: [PATCH] Fixed some broken links and weird formating. Planters: Made 'sapling' a plural and changed the first 'another' to 'a' to reduce repetition. Bees: Added the fact that scraping the frame kills the queen under the beewax crafting recipe. Added some extra punctuation to the bee abilities. Bread: Changed 'Sugar' to 'Sweetener' as honey can be used to craft dough. Fertilizer: Added a link to the tfc fertilizer page. Bowl: Changed the text under the crafting recipe to specify that it needs a spoon to work. --- resources/generate_book.py | 46 +++++++++---------- .../patchouli_books/field_guide/book.json | 4 +- .../en_us/entries/firmalife/beekeeping.json | 8 ++-- .../en_us/entries/firmalife/bread.json | 4 +- .../en_us/entries/firmalife/cellar.json | 4 +- .../en_us/entries/firmalife/cheese.json | 4 +- .../entries/firmalife/climate_station.json | 4 +- .../en_us/entries/firmalife/greenhouse.json | 6 +-- .../en_us/entries/firmalife/jar.json | 2 +- .../en_us/entries/firmalife/mixing_bowl.json | 2 +- .../entries/firmalife/more_fertilizer.json | 4 +- .../en_us/entries/firmalife/planters.json | 6 +-- .../entries/firmalife/stainless_steel.json | 2 +- 13 files changed, 49 insertions(+), 47 deletions(-) diff --git a/resources/generate_book.py b/resources/generate_book.py index 61cb53c5..8a33e878 100644 --- a/resources/generate_book.py +++ b/resources/generate_book.py @@ -48,41 +48,41 @@ def make_book(rm: ResourceManager, i18n: I18n, local_instance: bool = False): book.category('firmalife', 'Firmalife', 'All about the Firmalife addon', 'firmalife:cured_oven_top', is_sorted=True, entries=( entry('cheese', 'Cheese', 'firmalife:food/gouda', pages=( - text('Making $(thing)cheese$() in Firmalife is a little more involved than in vanilla TFC. There are two new kinds of milk: $(thing)Yak Milk$(), and $(thing)Goat Milk$(). These are obtained from milking the $(l:mechanics/animal_husbandry#yak)Yak$() and $(l:mechanics/animal_husbandry#goat)Goat$(), respectively. Milking the $$(l:mechanics/animal_husbandry#cow)Cow$() still produces the old kind of milk.'), + text('Making $(thing)cheese$() in Firmalife is a little more involved than in vanilla TFC. There are two new kinds of milk: $(thing)Yak Milk$(), and $(thing)Goat Milk$(). These are obtained from milking the $(l:mechanics/animal_husbandry#yak)Yak$() and $(l:mechanics/animal_husbandry#goat)Goat$(), respectively. Milking the $(l:mechanics/animal_husbandry#cow)Cow$() still produces the old kind of milk.'), text('Like usual, milk must be $(thing)curdled$() first. To curdle milk, you need $(thing)Rennet$(). Rennet comes from the stomach of $(thing)Ruminant$() animals. This includes $(l:mechanics/animal_husbandry#yak)Yaks$(), $(l:mechanics/animal_husbandry#cow)Cows$(), $(l:mechanics/animal_husbandry#sheep)Sheep$(), $(l:mechanics/animal_husbandry#goat)Goats$(), and $(l:mechanics/animal_husbandry#musk_ox)Musk Oxen$(). To curdle milk, seal it in a $(l:mechanics/barrels)Barrel$() with Rennet for 4 hours.'), crafting('firmalife:crafting/cheesecloth', text_contents='Curdled milk must be converted to $(thing)Curds$() by sealing it in a barrel with $(thing)Cheesecloth$(). Cheesecloth is not reusable.'), crafting('firmalife:crafting/rajya_metok_wheel', text_contents='You are ready to make $(thing)Dry Cheese$() if you wish. You can make $(thing)Rajya Metok$() from $(thing)Yak Curds$(), $(thing)Chevre$() from $(thing)Goat Curds$(), and $(thing)Cheddar$() from $(thing)Milk Curds$().'), crafting('firmalife:crafting/chevre_wheel', 'firmalife:crafting/cheddar_wheel'), text('Your other option is to make $(thing)Wet Cheeses$(). These are made by sealing the curds in a barrel of $(thing)Salt Water$(). You can make $(thing)Shosha$() from $(thing)Yak Curds$(), $(thing)Feta$() from $(thing)Goat Curds$(), and $(thing)Gouda$() from $(thing)Milk Curds$().'), - text('Cheese wheels are blocks that should be placed in order to help them last. To improve their quality and shelf life, cheese wheels should be $(thing)Aged$() in a $(l:firmalife/cellar)Cellar$(). In order to obtain edible cheese from a cheese wheel, it should be sliced off the wheel by clicking $(item)$(k:key.use)$() with a $(thing)Knife(). If the block is simply broken, the aging is lost!').anchor('aging'), + text('Cheese wheels are blocks that should be placed in order to help them last. To improve their quality and shelf life, cheese wheels should be $(thing)Aged$() in a $(l:firmalife:firmalife/cellar)Cellar$(). In order to obtain edible cheese from a cheese wheel, it should be sliced off the wheel by clicking $(item)$(k:key.use)$() with a $(thing)Knife$(). If the block is simply broken, the aging is lost!').anchor('aging'), multimultiblock('The aging stages of a wheel of Gouda: $(thing)Fresh$(), $(thing)Aged$(), and $(thing)Vintage$().', *[block_spotlight('', '', 'firmalife:gouda_wheel[age=%s]' % age) for age in ('fresh', 'aged', 'vintage')]), )), entry('climate_station', 'Climate Station', 'firmalife:climate_station', pages=( - text('The $(thing)Climate Station$() is a block that manages the $(l:firmalife/greenhouse)Greenhouse$() and the $(l:firmalife/cellar)Cellar$(). When its corresponding multiblock is built correctly, it will show water on its sides. When it it is invalid, it will show ice. The Climate Station must be placed on the first level of the multiblock, touching a wall.'), + text('The $(thing)Climate Station$() is a block that manages the $(l:firmalife:firmalife/greenhouse)Greenhouse$() and the $(l:firmalife:firmalife/cellar)Cellar$(). When its corresponding multiblock is built correctly, it will show water on its sides. When it it is invalid, it will show ice. The Climate Station must be placed on the first level of the multiblock, touching a wall.'), multimultiblock('The climate station in it\'s valid and invalid state.', *[block_spotlight('', '', 'firmalife:climate_station[stasis=%s]' % b) for b in ('true', 'false')]), - text('$(li)It updates periodically on its own, or when placed/broken.$()$(li)When a climate station updates, it tells all the blocks inside the multiblock that they can operate. For example, it lets $(l:firmalife/cheese)Cheese$() begin aging.$()$(li)Press $(item)$(k:key.use)$() to force update the Climate Station and the blocks inside the multiblock.', 'Climate Station Tips'), + text('$(li)It updates periodically on its own, or when placed/broken.$()$(li)When a climate station updates, it tells all the blocks inside the multiblock that they can operate. For example, it lets $(l:firmalife:firmalife/cheese)Cheese$() begin aging.$()$(li)Press $(item)$(k:key.use)$() to force update the Climate Station and the blocks inside the multiblock.', 'Climate Station Tips'), crafting('firmalife:crafting/climate_station', text_contents='The climate station is crafted like this.'), )), entry('cellar', 'Cellars', 'firmalife:sealed_bricks', pages=( - text('The $(thing)Cellar$() is a multiblock device controlled by a $(l:firmalife/climate_station)Climate Station$(). The Cellar multiblock\'s only requirement is that it be in an enclosed area surrounded by $(thing)Sealed Bricks$() or $(thing)Sealed Brick Doors$() on all sides. The Climate Station must be placed on the first level of the cellar, touching a wall.'), + text('The $(thing)Cellar$() is a multiblock device controlled by a $(l:firmalife:firmalife/climate_station)Climate Station$(). The Cellar multiblock\'s only requirement is that it be in an enclosed area surrounded by $(thing)Sealed Bricks$() or $(thing)Sealed Brick Doors$() on all sides. The Climate Station must be placed on the first level of the cellar, touching a wall.'), multiblock('An Example Cellar', 'This is just one of many cellars that you could make!', True, multiblock_id='firmalife:cellar'), crafting('firmalife:crafting/sealed_bricks', 'firmalife:crafting/sealed_door'), - text('$(thing)Beeswax$() is obtained from $(l:firmalife/beekeeping)Beekeeping$().$(br)Cellars are used for $(l:firmalife/cheese#aging)Aging Cheese$().'), + text('$(thing)Beeswax$() is obtained from $(l:firmalife:firmalife/beekeeping)Beekeeping$().$(br)Cellars are used for $(l:firmalife:firmalife/cheese#aging)Aging Cheese$().'), )), entry('greenhouse', 'Greenhouse', 'firmalife:sealed_bricks', pages=( - text('The $(thing)Greenhouse$() is a multiblock device controlled by a $(l:firmalife/climate_station)Climate Station$(). It allows growing crops year round. The Greenhouse has an array of types and blocks to choose from. However, building a greenhouse is quite simple. Like the $(l:firmalife/cellar)Cellar$(), it should be an enclosed area of blocks belonging to the same $(thing)Greenhouse Type$(). The floor of the greenhouse may be any solid block.'), + text('The $(thing)Greenhouse$() is a multiblock device controlled by a $(l:firmalife:firmalife/climate_station)Climate Station$(). It allows growing crops year round. The Greenhouse has an array of types and blocks to choose from. However, building a greenhouse is quite simple. Like the $(l:firmalife:firmalife/cellar)Cellar$(), it should be an enclosed area of blocks belonging to the same $(thing)Greenhouse Type$(). The floor of the greenhouse may be any solid block.'), text('$(thing)Greenhouse Types$() are families of greenhouse blocks that can be used interchangeably in a greenhouse. Most greenhouse blocks $(thing)age$(). For example, $(thing)Treated Wood$() greenhouse blocks become $(thing)Weathered Treated Wood$() blocks. Since both of those block types belong to the same greenhouse type, your greenhouse will continue to function.'), text('These are the $(thing)Greenhouse Types$() available, with the block types they can age into:$(br)$(br)$(li)Treated Wood: Weathered $()$(li)Copper: Exposed, Weathered, Oxidized$()$(li)Iron: Rusted$(), $(li)Stainless Steel (does not age)$()', 'Greenhouse Types'), text('There are four types of $(thing)Greenhouse Blocks$(): Walls, Doors, Roofs, and Roof Tops. Roofs and Roof Tops are stairs and slabs, respectively. These can be combined however you choose to form the structure of the greenhouse.'), multimultiblock('An example greenhouse, in each main type.', *[multiblock('', '', True, multiblock_id='firmalife:%s_greenhouse' % g) for g in ('treated_wood', 'copper', 'iron', 'stainless_steel')]), - text('The next two pages contain recipes for the four main greenhouse block types. While they are only shown for Iron greenhouses, the iron rods in the recipe can be replaced with $(thing)Treated Lumber$(), $(thing)Copper Rods$(), or $(thing)Stainless Steel Rods$(). For information on Stainless Steel, see $(l:firmalife/stainless_steel)this linked page$().'), + text('The next two pages contain recipes for the four main greenhouse block types. While they are only shown for Iron greenhouses, the iron rods in the recipe can be replaced with $(thing)Treated Lumber$(), $(thing)Copper Rods$(), or $(thing)Stainless Steel Rods$(). For information on Stainless Steel, see $(l:firmalife:firmalife/stainless_steel)this linked page$().'), crafting('firmalife:crafting/greenhouse/iron_greenhouse_wall', 'firmalife:crafting/greenhouse/iron_greenhouse_roof'), crafting('firmalife:crafting/greenhouse/iron_greenhouse_door', 'firmalife:crafting/greenhouse/iron_greenhouse_roof_top'), - text('There are many blocks that operate inside Greenhouses:$(br)$(li)$(l:firmalife/planters)Planters$(), for growing crops$()'), + text('There are many blocks that operate inside Greenhouses:$(br)$(li)$(l:firmalife:firmalife/planters)Planters$(), for growing crops$()'), empty_last_page() )), entry('planters', 'Planters', 'firmalife:large_planter', pages=( - text('$(thing)Planters$() are used to grow crops inside a $(l:firmalife/greenhouse)Greenhouse$(). To see the status of a planter, you can look at it while holding a $(thing)Hoe$(). Crops in planters consume $(l:mechanics/fertilizers)Nutrients$() in a similar way to $(l:food/crops)Crops$(). Planters should be placed inside a valid Greenhouse and activated with a $(l:firmalife/climate_station)Climate Station$(). Planters need at least some natural sunlight to work.').anchor('planters'), + text('$(thing)Planters$() are used to grow crops inside a $(l:firmalife:firmalife/greenhouse)Greenhouse$(). To see the status of a planter, you can look at it while holding a $(thing)Hoe$(). Crops in planters consume $(l:mechanics/fertilizers)Nutrients$() in a similar way to $(l:mechanics/crops)Crops$(). Planters should be placed inside a valid Greenhouse and activated with a $(l:firmalife:firmalife/climate_station)Climate Station$(). Planters need at least some natural sunlight to work.').anchor('planters'), crafting('firmalife:crafting/watering_can', text_contents='Planters must be $(thing)Watered$() to grow. This is done with a $(thing)Watering Can$(), crafted from a $(thing)Wooden Bucket$() of $(thing)Water$() and $(thing)Lumber$(). Press $(item)$(k:key.use)$() with it to water nearby planters. Refill it by pressing $(item)$(k:key.use)$() on a water source.'), crafting('firmalife:crafting/large_planter', text_contents='$(thing)Large Planters$() are the most simple kind of planter. They grow a single crop from seed, and are harvested with $(item)$(k:key.use)$() when mature.'), text('Large Planters can grow $(thing)Green Beans$(), $(thing)Tomatoes$(), $(thing)Sugarcane$(), $(thing)Jute$(), and $(thing)Grains$(). However, to grow Grains, you need a $(thing)Copper$() or better Greenhouse.'), @@ -91,24 +91,24 @@ def make_book(rm: ResourceManager, i18n: I18n, local_instance: bool = False): crafting('firmalife:crafting/bonsai_planter', text_contents='$(thing)Bonsai Planters$() grow small fruit trees from their saplings. The fruit can be picked with $(item)$(k:key.use)$().'), text('Bonsai Planters can grow any fruit tree type, except $(thing)Bananas$(), which need a $(thing)Hanging Planter$(). They all consume Nitrogen as their main nutrient. They need an $(thing)Iron$() or better greenhouse to grow.'), crafting('firmalife:crafting/hanging_planter', text_contents='$(thing)Hanging Planters$() grow crops upside down. When mature, they can be harvested with $(item)$(k:key.use)$().'), - text('Hanging Planters grow $(thing)Squash$(), from their seeds, and $(thing)Bananas$(), from their sapling. Squash can be grown in any greenhouse, but Bananas require an $(thing)Iron$() or better greenhouse to grow. Hanging planters need to anchor to a solid block above them.'), + text('Hanging Planters grow $(thing)Squash$(), from their seeds, and $(thing)Bananas$(), from their saplings. Squash can be grown in any greenhouse, but Bananas require an $(thing)Iron$() or better greenhouse to grow. Hanging planters need to anchor to a solid block above them.'), crafting('firmalife:crafting/trellis_planter', text_contents='$(thing)Trellis Planters$() grow berry bushes. Berries can be picked with $(item)$(k:key.use)$().'), - text('Trellis Planters have the unique property of $(thing)propagating$() berry bushes. If another trellis planter is placed on top of another, and the one below has a mature berry bush, it has a chance to grow upwards into the next one. Trellis planters can grow any berry bush except $(thing)Cranberries$(), but require an $(thing)Iron$() or better greenhouse to work. Bushes prefer Nitrogen.'), + text('Trellis Planters have the unique property of $(thing)propagating$() berry bushes. If a trellis planter is placed on top of another, and the one below has a mature berry bush, it has a chance to grow upwards into the next one. Trellis planters can grow any berry bush except $(thing)Cranberries$(), but require an $(thing)Iron$() or better greenhouse to work. Bushes prefer Nitrogen.'), )), entry('beekeeping', 'Beekeeping', 'firmalife:beehive', pages=( text('$(thing)Beehives$() are a place to house bees. Beehives need $(thing)Beehive Frames$() inside them for the bees to leave. Removing frames from an active hive will cause the bees to attack you, unless done at night, or with a $(thing)Firepit$() underneath the hive active.'), crafting('firmalife:crafting/beehive', 'firmalife:crafting/beehive_frame'), text('Beehives know about the area in a 5 block radius from them. If there are at least 10 flowers around the hive, there is a chance an empty frame will be populated with a $(thing)Queen$(). This is indicated by bee particles flying around the hive.'), text('If a beehive has two frames with queens, and an empty frame, the two colonies have a chance of $(thing)Breeding$() and producing a new queen in the empty frame. This has the effect of passing on the $(thing)Abilities$() of each parent to the offspring. Abilities are different traits bees have that change how they effect the world around them. They are on a scale of 1-10, with 10 being the max.'), - crafting('firmalife:crafting/honey_jar_open', text_contents='Bees also produce $(thing)Honey$(). Using $(item)$(k:key.use)$() with an $(l:firmalife/jar)Empty Jar$() on a hive that visibly has honey gives you a $(thing)Honey Jar$(). Opening a Honey Jar gives you $(thing)Raw Honey$(), a $(thing)Sugar$() substitute.'), - crafting('firmalife:crafting/scrape_beehive_frame', text_contents='Crafting a filled frame with a $(thing)Knife$() gives you $(thing)Beeswax$(), which has many uses'), + crafting('firmalife:crafting/honey_jar_open', text_contents='Bees also produce $(thing)Honey$(). Using $(item)$(k:key.use)$() with an $(l:firmalife:firmalife/jar)Empty Jar$() on a hive that visibly has honey gives you a $(thing)Honey Jar$(). Opening a Honey Jar gives you $(thing)Raw Honey$(), a $(thing)Sugar$() substitute.'), + crafting('firmalife:crafting/scrape_beehive_frame', text_contents='Crafting a filled frame with a $(thing)Knife$() gives you $(thing)Beeswax$(), which has many uses. However, this kills the queen inside the frame so be careful!'), crafting('firmalife:crafting/treated_lumber', text_contents='The most important use of beeswax is in creating $(thing)Treated Lumber$().'), text('$(li)Bees can help fertilize planters!$()$(li)Scraping a frame sacrifices the queen. Be smart!$()$(li)Being wet prevents bees from attacking you.$()', 'Bee Tips'), - text('$(li)$(thing)Hardiness$(): Allows bees to produce honey at lower temperatures. Hardiness 10 allows up to -16°C, whereas Hardiness 1 allows up to 2°C.$()$(li)$(thing)Production$(): Improves the speed of honey production.$()$(li)$(thing)Mutant$(): Increases variability in the traits passed during breeding$()', 'List of Abilities'), - text('$(li)$(thing)Fertility$(): Increases likelihood of breeding$()$(li)$(thing)Crop Affinity$(): Likelihood of spreading a small amount of nutrients to crops$()$(li)$(thing)Nature Restoration$()Causes new flowers and lilypads to spawn around the hive$()$(li)$(thing)Calmness$()Decreases likelihood of bees attacking you$()'), + text('$(li)$(thing)Hardiness$(): Allows bees to produce honey at lower temperatures. Hardiness 10 allows up to -16°C, whereas Hardiness 1 allows up to 2°C.$()$(li)$(thing)Production$(): Improves the speed of honey production.$()$(li)$(thing)Mutant$(): Increases variability in the traits passed during breeding$().', 'List of Abilities'), + text('$(li)$(thing)Fertility$(): Increases likelihood of breeding.$()$(li)$(thing)Crop Affinity$(): Likelihood of spreading a small amount of nutrients to crops.$()$(li)$(thing)Nature Restoration$(): Causes new flowers and lilypads to spawn around the hive.$()$(li)$(thing)Calmness$(): Decreases likelihood of bees attacking you$().'), )), entry('jar', 'Jars', 'firmalife:empty_jar', pages=( - text('$(thing)Jars$() are a way of storing certain items. They can be placed on the ground, in groups of up to four. They are most useful as a way of storing $(l:firmalife/beekeeping)Honey$() indefinitely.'), + text('$(thing)Jars$() are a way of storing certain items. They can be placed on the ground, in groups of up to four. They are most useful as a way of storing $(l:firmalife:firmalife/beekeeping)Honey$() indefinitely.'), multimultiblock('Each possible arrangement of jars.', *[block_spotlight('', '', 'firmalife:honey_jar[count=%s]' % i) for i in range(1, 5)]), crafting('firmalife:crafting/empty_jar', text_contents='It all starts with an $(thing)Empty Jar$(). Jars can be emptied, discarding the contents, by sealing them in a $(l:mechanics/barrels)Barrel$() of Water$().'), text('The recipes to fill and empty jars are typically simple crafting recipes. Some jars cannot have their insides removed without a special recipe.$(br)$(br)One use of jars is making $(thing)Fruit Preserves$(). To do this, boil an $(thing)Empty Jar$(), a $(thing)Sweetener$(), and fresh $(thing)Fruit$().'), @@ -116,7 +116,7 @@ def make_book(rm: ResourceManager, i18n: I18n, local_instance: bool = False): empty_last_page() )), entry('stainless_steel', 'Stainless Steel', 'firmalife:metal/ingot/stainless_steel', pages=( - text('$(thing)Stainless Steel$() and $(thing)Chromium$() are $(thing)Steel-tier$() metals added by Firmalife. They are used in the construction of $(l:firmalife/greenhouse)Stainless Steel Greenhouses$().'), + text('$(thing)Stainless Steel$() and $(thing)Chromium$() are $(thing)Steel-tier$() metals added by Firmalife. They are used in the construction of $(l:firmalife:firmalife/greenhouse)Stainless Steel Greenhouses$().'), alloy_recipe('Stainless Steel', 'firmalife:metal/ingot/stainless_steel', ('Chromium', 20, 30), ('Nickel', 10, 20), ('Steel', 60, 80), text_content=''), item_spotlight('firmalife:ore/small_chromite', text_contents='Chromite is an ore that is melted to obtain Chromium. It is found in $(thing)Igneous Intrusive$() and $(thing)Metamorphic$() rocks.'), text('$(li)Granite$()$(li)Diorite$()$(li)Gabbro$()$(li)Slate$()$(li)Phyllite$()$(li)Schist$()$(li)Gneiss$()$(li)Marble$()', 'All Chromium Rocks') @@ -163,18 +163,18 @@ def make_book(rm: ResourceManager, i18n: I18n, local_instance: bool = False): empty_last_page() )), entry('bread', 'Bread', 'tfc:food/rye_bread', pages=( - text('To make $(Thing)Bread$(), one first must get $(thing)Yeast$(). To get your first yeast, seal $(l:firmalife/drying)Dried Fruit$() in a Barrel of $(thing)Water$(). After three days, $(thing)Yeast Starter$() will form.$(br)From now on, your yeast can be fed by sealing Yeast Starter in a Barrel with $(thing)Flour$(). This causes it to multiply. 1 flour per 100mB of Yeast produces 600mB of Yeast. That\'s a good deal!'), - crafting('firmalife:crafting/barley_dough', text_contents='Yeast Starter, Sugar, and Flour can be combined to make $(thing)Dough$(). Dough can be cooked like normal to produce $(thing)Bread!$().'), + text('To make $(thing)Bread$(), one first must get $(thing)Yeast$(). To get your first yeast, seal $(l:firmalife:firmalife/drying)Dried Fruit$() in a Barrel of $(thing)Water$(). After three days, $(thing)Yeast Starter$() will form.$(br)From now on, your yeast can be fed by sealing Yeast Starter in a Barrel with $(thing)Flour$(). This causes it to multiply. 1 flour per 100mB of Yeast produces 600mB of Yeast. That\'s a good deal!'), + crafting('firmalife:crafting/barley_dough', text_contents='Yeast Starter, Sweetener, and Flour can be combined to make $(thing)Dough$(). Dough can be cooked like normal to produce $(thing)Bread!$().'), )), entry('more_fertilizer', 'More Fertilizer Options', 'firmalife:iron_composter', pages=( - text('Given a greater need for fertilization in Firmalife, there are more options for getting fertilizers.'), - drying_recipe('firmalife:drying/dry_grass', 'Thatch can be $(l:firmalife/drying)Dried$() into $(thing)Dry Grass$(), which can be used in a Composter as a brown item.'), + text('Given a greater need for fertilization in Firmalife, there are more options for getting $(l:mechanics/fertilizers)fertilizers$().'), + drying_recipe('firmalife:drying/dry_grass', 'Thatch can be $(l:firmalife:firmalife/drying)Dried$() into $(thing)Dry Grass$(), which can be used in a Composter as a brown item.'), crafting('firmalife:crafting/iron_composter', text_contents='The Composter can be upgraded to an $(thing)Iron Composter$(), which works the same, except it produces compost four times as fast.'), multimultiblock('The possible fill levels of the iron composter', *[block_spotlight('', '', 'firmalife:iron_composter[type=normal,stage=%s]' % i) for i in range(0, 9)]), )), entry('mixing_bowl', 'Mixing Bowl', 'firmalife:mixing_bowl', pages=( text('The mixing bowl is a way of mixing items and fluids together in a friendly way. $(item)$(k:key.use)$() on it with a $(thing)Spoon$() to add it to the bowl, which allows it to operate.'), - crafting('firmalife:crafting/mixing_bowl', text_contents='firmalife:crafting/spoon'), + crafting('firmalife:crafting/mixing_bowl', text_contents='Requires a $(thing)Spoon$() to use.'), )) )) diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/book.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/book.json index 03f18904..5cace7c2 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/book.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/book.json @@ -1,4 +1,6 @@ { "__comment__": "This file was automatically created by mcresources", - "extend": "tfc:field_guide" + "extend": "tfc:field_guide", + "name": "firmalife field_guide extension", + "landing_text": "firmalife field_guide extension" } \ No newline at end of file diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/beekeeping.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/beekeeping.json index 5b81dbd5..3bb7132b 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/beekeeping.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/beekeeping.json @@ -24,12 +24,12 @@ { "type": "patchouli:crafting", "recipe": "firmalife:crafting/honey_jar_open", - "text": "Bees also produce $(thing)Honey$(). Using $(item)$(k:key.use)$() with an $(l:firmalife/jar)Empty Jar$() on a hive that visibly has honey gives you a $(thing)Honey Jar$(). Opening a Honey Jar gives you $(thing)Raw Honey$(), a $(thing)Sugar$() substitute." + "text": "Bees also produce $(thing)Honey$(). Using $(item)$(k:key.use)$() with an $(l:firmalife:firmalife/jar)Empty Jar$() on a hive that visibly has honey gives you a $(thing)Honey Jar$(). Opening a Honey Jar gives you $(thing)Raw Honey$(), a $(thing)Sugar$() substitute." }, { "type": "patchouli:crafting", "recipe": "firmalife:crafting/scrape_beehive_frame", - "text": "Crafting a filled frame with a $(thing)Knife$() gives you $(thing)Beeswax$(), which has many uses" + "text": "Crafting a filled frame with a $(thing)Knife$() gives you $(thing)Beeswax$(), which has many uses. However, this kills the queen inside the frame so be careful!" }, { "type": "patchouli:crafting", @@ -43,12 +43,12 @@ }, { "type": "patchouli:text", - "text": "$(li)$(thing)Hardiness$(): Allows bees to produce honey at lower temperatures. Hardiness 10 allows up to -16\u00b0C, whereas Hardiness 1 allows up to 2\u00b0C.$()$(li)$(thing)Production$(): Improves the speed of honey production.$()$(li)$(thing)Mutant$(): Increases variability in the traits passed during breeding$()", + "text": "$(li)$(thing)Hardiness$(): Allows bees to produce honey at lower temperatures. Hardiness 10 allows up to -16°C, whereas Hardiness 1 allows up to 2°C.$()$(li)$(thing)Production$(): Improves the speed of honey production.$()$(li)$(thing)Mutant$(): Increases variability in the traits passed during breeding$().", "title": "List of Abilities" }, { "type": "patchouli:text", - "text": "$(li)$(thing)Fertility$(): Increases likelihood of breeding$()$(li)$(thing)Crop Affinity$(): Likelihood of spreading a small amount of nutrients to crops$()$(li)$(thing)Nature Restoration$()Causes new flowers and lilypads to spawn around the hive$()$(li)$(thing)Calmness$()Decreases likelihood of bees attacking you$()" + "text": "$(li)$(thing)Fertility$(): Increases likelihood of breeding.$()$(li)$(thing)Crop Affinity$(): Likelihood of spreading a small amount of nutrients to crops.$()$(li)$(thing)Nature Restoration$(): Causes new flowers and lilypads to spawn around the hive.$()$(li)$(thing)Calmness$(): Decreases likelihood of bees attacking you$()." } ], "read_by_default": true, diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/bread.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/bread.json index 69938352..751acc60 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/bread.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/bread.json @@ -6,12 +6,12 @@ "pages": [ { "type": "patchouli:text", - "text": "To make $(Thing)Bread$(), one first must get $(thing)Yeast$(). To get your first yeast, seal $(l:firmalife/drying)Dried Fruit$() in a Barrel of $(thing)Water$(). After three days, $(thing)Yeast Starter$() will form.$(br)From now on, your yeast can be fed by sealing Yeast Starter in a Barrel with $(thing)Flour$(). This causes it to multiply. 1 flour per 100mB of Yeast produces 600mB of Yeast. That's a good deal!" + "text": "To make $(thing)Bread$(), one first must get $(thing)Yeast$(). To get your first yeast, seal $(l:firmalife:firmalife/drying)Dried Fruit$() in a Barrel of $(thing)Water$(). After three days, $(thing)Yeast Starter$() will form.$(br)From now on, your yeast can be fed by sealing Yeast Starter in a Barrel with $(thing)Flour$(). This causes it to multiply. 1 flour per 100mB of Yeast produces 600mB of Yeast. That's a good deal!" }, { "type": "patchouli:crafting", "recipe": "firmalife:crafting/barley_dough", - "text": "Yeast Starter, Sugar, and Flour can be combined to make $(thing)Dough$(). Dough can be cooked like normal to produce $(thing)Bread!$()." + "text": "Yeast Starter, Sweetener, and Flour can be combined to make $(thing)Dough$(). Dough can be cooked like normal to produce $(thing)Bread!$()." } ], "read_by_default": true, diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/cellar.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/cellar.json index a816461e..d19f0121 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/cellar.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/cellar.json @@ -6,7 +6,7 @@ "pages": [ { "type": "patchouli:text", - "text": "The $(thing)Cellar$() is a multiblock device controlled by a $(l:firmalife/climate_station)Climate Station$(). The Cellar multiblock's only requirement is that it be in an enclosed area surrounded by $(thing)Sealed Bricks$() or $(thing)Sealed Brick Doors$() on all sides. The Climate Station must be placed on the first level of the cellar, touching a wall." + "text": "The $(thing)Cellar$() is a multiblock device controlled by a $(l:firmalife:firmalife/climate_station)Climate Station$(). The Cellar multiblock's only requirement is that it be in an enclosed area surrounded by $(thing)Sealed Bricks$() or $(thing)Sealed Brick Doors$() on all sides. The Climate Station must be placed on the first level of the cellar, touching a wall." }, { "type": "patchouli:multiblock", @@ -22,7 +22,7 @@ }, { "type": "patchouli:text", - "text": "$(thing)Beeswax$() is obtained from $(l:firmalife/beekeeping)Beekeeping$().$(br)Cellars are used for $(l:firmalife/cheese#aging)Aging Cheese$()." + "text": "$(thing)Beeswax$() is obtained from $(l:firmalife:firmalife/beekeeping)Beekeeping$().$(br)Cellars are used for $(l:firmalife:firmalife/cheese#aging)Aging Cheese$()." } ], "read_by_default": true, diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/cheese.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/cheese.json index a30b5fa8..1d6860ae 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/cheese.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/cheese.json @@ -6,7 +6,7 @@ "pages": [ { "type": "patchouli:text", - "text": "Making $(thing)cheese$() in Firmalife is a little more involved than in vanilla TFC. There are two new kinds of milk: $(thing)Yak Milk$(), and $(thing)Goat Milk$(). These are obtained from milking the $(l:mechanics/animal_husbandry#yak)Yak$() and $(l:mechanics/animal_husbandry#goat)Goat$(), respectively. Milking the $$(l:mechanics/animal_husbandry#cow)Cow$() still produces the old kind of milk." + "text": "Making $(thing)cheese$() in Firmalife is a little more involved than in vanilla TFC. There are two new kinds of milk: $(thing)Yak Milk$(), and $(thing)Goat Milk$(). These are obtained from milking the $(l:mechanics/animal_husbandry#yak)Yak$() and $(l:mechanics/animal_husbandry#goat)Goat$(), respectively. Milking the $(l:mechanics/animal_husbandry#cow)Cow$() still produces the old kind of milk." }, { "type": "patchouli:text", @@ -34,7 +34,7 @@ { "type": "patchouli:text", "anchor": "aging", - "text": "Cheese wheels are blocks that should be placed in order to help them last. To improve their quality and shelf life, cheese wheels should be $(thing)Aged$() in a $(l:firmalife/cellar)Cellar$(). In order to obtain edible cheese from a cheese wheel, it should be sliced off the wheel by clicking $(item)$(k:key.use)$() with a $(thing)Knife(). If the block is simply broken, the aging is lost!" + "text": "Cheese wheels are blocks that should be placed in order to help them last. To improve their quality and shelf life, cheese wheels should be $(thing)Aged$() in a $(l:firmalife:firmalife/cellar)Cellar$(). In order to obtain edible cheese from a cheese wheel, it should be sliced off the wheel by clicking $(item)$(k:key.use)$() with a $(thing)Knife$(). If the block is simply broken, the aging is lost!" }, { "type": "tfc:multimultiblock", diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/climate_station.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/climate_station.json index c8b5dee7..8bc5d17c 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/climate_station.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/climate_station.json @@ -6,7 +6,7 @@ "pages": [ { "type": "patchouli:text", - "text": "The $(thing)Climate Station$() is a block that manages the $(l:firmalife/greenhouse)Greenhouse$() and the $(l:firmalife/cellar)Cellar$(). When its corresponding multiblock is built correctly, it will show water on its sides. When it it is invalid, it will show ice. The Climate Station must be placed on the first level of the multiblock, touching a wall." + "text": "The $(thing)Climate Station$() is a block that manages the $(l:firmalife:firmalife/greenhouse)Greenhouse$() and the $(l:firmalife:firmalife/cellar)Cellar$(). When its corresponding multiblock is built correctly, it will show water on its sides. When it it is invalid, it will show ice. The Climate Station must be placed on the first level of the multiblock, touching a wall." }, { "type": "tfc:multimultiblock", @@ -42,7 +42,7 @@ }, { "type": "patchouli:text", - "text": "$(li)It updates periodically on its own, or when placed/broken.$()$(li)When a climate station updates, it tells all the blocks inside the multiblock that they can operate. For example, it lets $(l:firmalife/cheese)Cheese$() begin aging.$()$(li)Press $(item)$(k:key.use)$() to force update the Climate Station and the blocks inside the multiblock.", + "text": "$(li)It updates periodically on its own, or when placed/broken.$()$(li)When a climate station updates, it tells all the blocks inside the multiblock that they can operate. For example, it lets $(l:firmalife:firmalife/cheese)Cheese$() begin aging.$()$(li)Press $(item)$(k:key.use)$() to force update the Climate Station and the blocks inside the multiblock.", "title": "Climate Station Tips" }, { diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/greenhouse.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/greenhouse.json index 8e122db0..b76f9a23 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/greenhouse.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/greenhouse.json @@ -6,7 +6,7 @@ "pages": [ { "type": "patchouli:text", - "text": "The $(thing)Greenhouse$() is a multiblock device controlled by a $(l:firmalife/climate_station)Climate Station$(). It allows growing crops year round. The Greenhouse has an array of types and blocks to choose from. However, building a greenhouse is quite simple. Like the $(l:firmalife/cellar)Cellar$(), it should be an enclosed area of blocks belonging to the same $(thing)Greenhouse Type$(). The floor of the greenhouse may be any solid block." + "text": "The $(thing)Greenhouse$() is a multiblock device controlled by a $(l:firmalife:firmalife/climate_station)Climate Station$(). It allows growing crops year round. The Greenhouse has an array of types and blocks to choose from. However, building a greenhouse is quite simple. Like the $(l:firmalife:firmalife/cellar)Cellar$(), it should be an enclosed area of blocks belonging to the same $(thing)Greenhouse Type$(). The floor of the greenhouse may be any solid block." }, { "type": "patchouli:text", @@ -33,7 +33,7 @@ }, { "type": "patchouli:text", - "text": "The next two pages contain recipes for the four main greenhouse block types. While they are only shown for Iron greenhouses, the iron rods in the recipe can be replaced with $(thing)Treated Lumber$(), $(thing)Copper Rods$(), or $(thing)Stainless Steel Rods$(). For information on Stainless Steel, see $(l:firmalife/stainless_steel)this linked page$()." + "text": "The next two pages contain recipes for the four main greenhouse block types. While they are only shown for Iron greenhouses, the iron rods in the recipe can be replaced with $(thing)Treated Lumber$(), $(thing)Copper Rods$(), or $(thing)Stainless Steel Rods$(). For information on Stainless Steel, see $(l:firmalife:firmalife/stainless_steel)this linked page$()." }, { "type": "patchouli:crafting", @@ -47,7 +47,7 @@ }, { "type": "patchouli:text", - "text": "There are many blocks that operate inside Greenhouses:$(br)$(li)$(l:firmalife/planters)Planters$(), for growing crops$()" + "text": "There are many blocks that operate inside Greenhouses:$(br)$(li)$(l:firmalife:firmalife/planters)Planters$(), for growing crops$()" } ], "read_by_default": true, diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/jar.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/jar.json index 9c5bf614..814aad46 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/jar.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/jar.json @@ -6,7 +6,7 @@ "pages": [ { "type": "patchouli:text", - "text": "$(thing)Jars$() are a way of storing certain items. They can be placed on the ground, in groups of up to four. They are most useful as a way of storing $(l:firmalife/beekeeping)Honey$() indefinitely." + "text": "$(thing)Jars$() are a way of storing certain items. They can be placed on the ground, in groups of up to four. They are most useful as a way of storing $(l:firmalife:firmalife/beekeeping)Honey$() indefinitely." }, { "type": "tfc:multimultiblock", diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/mixing_bowl.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/mixing_bowl.json index 1eb0daa5..ad64341c 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/mixing_bowl.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/mixing_bowl.json @@ -11,7 +11,7 @@ { "type": "patchouli:crafting", "recipe": "firmalife:crafting/mixing_bowl", - "text": "firmalife:crafting/spoon" + "text": "Requires a $(thing)Spoon$() to use." } ], "read_by_default": true, diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/more_fertilizer.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/more_fertilizer.json index fef52f2e..a87a7214 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/more_fertilizer.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/more_fertilizer.json @@ -6,12 +6,12 @@ "pages": [ { "type": "patchouli:text", - "text": "Given a greater need for fertilization in Firmalife, there are more options for getting fertilizers." + "text": "Given a greater need for fertilization in Firmalife, there are more options for getting $(l:mechanics/fertilizers)fertilizers$()." }, { "type": "firmalife:drying_recipe", "recipe": "firmalife:drying/dry_grass", - "text": "Thatch can be $(l:firmalife/drying)Dried$() into $(thing)Dry Grass$(), which can be used in a Composter as a brown item." + "text": "Thatch can be $(l:firmalife:firmalife/drying)Dried$() into $(thing)Dry Grass$(), which can be used in a Composter as a brown item." }, { "type": "patchouli:crafting", diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/planters.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/planters.json index 248bee3e..d6527c92 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/planters.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/planters.json @@ -7,7 +7,7 @@ { "type": "patchouli:text", "anchor": "planters", - "text": "$(thing)Planters$() are used to grow crops inside a $(l:firmalife/greenhouse)Greenhouse$(). To see the status of a planter, you can look at it while holding a $(thing)Hoe$(). Crops in planters consume $(l:mechanics/fertilizers)Nutrients$() in a similar way to $(l:food/crops)Crops$(). Planters should be placed inside a valid Greenhouse and activated with a $(l:firmalife/climate_station)Climate Station$(). Planters need at least some natural sunlight to work." + "text": "$(thing)Planters$() are used to grow crops inside a $(l:firmalife:firmalife/greenhouse)Greenhouse$(). To see the status of a planter, you can look at it while holding a $(thing)Hoe$(). Crops in planters consume $(l:mechanics/fertilizers)Nutrients$() in a similar way to $(l:mechanics/crops)Crops$(). Planters should be placed inside a valid Greenhouse and activated with a $(l:firmalife:firmalife/climate_station)Climate Station$(). Planters need at least some natural sunlight to work." }, { "type": "patchouli:crafting", @@ -48,7 +48,7 @@ }, { "type": "patchouli:text", - "text": "Hanging Planters grow $(thing)Squash$(), from their seeds, and $(thing)Bananas$(), from their sapling. Squash can be grown in any greenhouse, but Bananas require an $(thing)Iron$() or better greenhouse to grow. Hanging planters need to anchor to a solid block above them." + "text": "Hanging Planters grow $(thing)Squash$(), from their seeds, and $(thing)Bananas$(), from their saplings. Squash can be grown in any greenhouse, but Bananas require an $(thing)Iron$() or better greenhouse to grow. Hanging planters need to anchor to a solid block above them." }, { "type": "patchouli:crafting", @@ -57,7 +57,7 @@ }, { "type": "patchouli:text", - "text": "Trellis Planters have the unique property of $(thing)propagating$() berry bushes. If another trellis planter is placed on top of another, and the one below has a mature berry bush, it has a chance to grow upwards into the next one. Trellis planters can grow any berry bush except $(thing)Cranberries$(), but require an $(thing)Iron$() or better greenhouse to work. Bushes prefer Nitrogen." + "text": "Trellis Planters have the unique property of $(thing)propagating$() berry bushes. If a trellis planter is placed on top of another, and the one below has a mature berry bush, it has a chance to grow upwards into the next one. Trellis planters can grow any berry bush except $(thing)Cranberries$(), but require an $(thing)Iron$() or better greenhouse to work. Bushes prefer Nitrogen." } ], "read_by_default": true, diff --git a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/stainless_steel.json b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/stainless_steel.json index 5d57d019..fbab4e68 100644 --- a/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/stainless_steel.json +++ b/src/main/resources/data/firmalife/patchouli_books/field_guide/en_us/entries/firmalife/stainless_steel.json @@ -6,7 +6,7 @@ "pages": [ { "type": "patchouli:text", - "text": "$(thing)Stainless Steel$() and $(thing)Chromium$() are $(thing)Steel-tier$() metals added by Firmalife. They are used in the construction of $(l:firmalife/greenhouse)Stainless Steel Greenhouses$()." + "text": "$(thing)Stainless Steel$() and $(thing)Chromium$() are $(thing)Steel-tier$() metals added by Firmalife. They are used in the construction of $(l:firmalife:firmalife/greenhouse)Stainless Steel Greenhouses$()." }, { "type": "patchouli:spotlight",