Skip to content

Commit

Permalink
add hardtack, new greenhouse book documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
eerussianguy committed Dec 22, 2023
1 parent 4b66705 commit d88d160
Show file tree
Hide file tree
Showing 26 changed files with 182 additions and 32 deletions.
2 changes: 1 addition & 1 deletion resources/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class Wood(NamedTuple):
'pie_dough', 'filled_pie', 'cooked_pie', 'pizza_dough', 'raw_pizza', 'cooked_pizza', 'shredded_cheese', 'pickled_egg', 'pumpkin_pie_dough', 'raw_pumpkin_pie', 'cooked_pumpkin_pie', 'cocoa_beans', 'roasted_cocoa_beans',
'cocoa_butter', 'cocoa_powder', 'toast', 'dark_chocolate', 'milk_chocolate', 'white_chocolate', 'garlic_bread', 'cured_maize', 'nixtamal', 'masa', 'masa_flour', 'corn_tortilla', 'taco_shell', 'burrito', 'taco', 'salsa',
'tomato_sauce', 'nightshade_berry', 'stinky_soup', 'toast_with_jam', 'toast_with_butter', 'bacon', 'cooked_bacon', 'tomato_sauce_mix', 'vanilla_ice_cream', 'strawberry_ice_cream', 'chocolate_ice_cream', 'banana_split',
'cookie_dough', 'sugar_cookie', 'chocolate_chip_cookie_dough', 'chocolate_chip_cookie', 'cookie_dough_ice_cream', 'maki_roll', 'futo_maki_roll')
'cookie_dough', 'sugar_cookie', 'chocolate_chip_cookie_dough', 'chocolate_chip_cookie', 'cookie_dough_ice_cream', 'maki_roll', 'futo_maki_roll', 'hardtack', 'hardtack_dough')
SIMPLE_SPICES = ('ground_cinnamon', 'cinnamon', 'basil_leaves', 'vanilla')
SIMPLE_BLOCKS: Dict[str, str] = {
'sealed_bricks': 'minecraft:mineable/pickaxe',
Expand Down
4 changes: 3 additions & 1 deletion resources/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,10 @@ def generate(rm: ResourceManager):
decayable(rm, 'chocolate_blends', '#firmalife:chocolate_blends', Category.dairy)
food_item(rm, 'chocolate', '#firmalife:foods/chocolate', Category.other, 4, 1, 0, 0.3, dairy=0.5, grain=0.5)
food_item(rm, 'chocolate_chip_cookie', 'firmalife:food/chocolate_chip_cookie', Category.other, 4, 0.5, 0, 4.5, dairy=0.2, grain=1.0)
food_item(rm, 'cookie', 'firmalife:food/chocolate_chip_cookie', Category.other, 4, 0.5, 0, 4.5, dairy=0.1, grain=0.8)
food_item(rm, 'cookie', 'firmalife:food/sugar_cookie', Category.other, 4, 0.5, 0, 4.5, dairy=0.1, grain=0.8)
food_item(rm, 'hardtack', 'firmalife:food/hardtack', Category.grain, 4, 0.1, 0, 0.02, grain=0.2)
decayable(rm, 'cookie_dough', 'firmalife:food/cookie_dough', Category.other)
decayable(rm, 'hardtack_dough', 'firmalife:food/hardtack_dough', Category.other)
decayable(rm, 'chocolate_chip_cookie_dough', 'firmalife:food/chocolate_chip_cookie_dough', Category.other)
decayable(rm, 'doughs', '#firmalife:foods/extra_dough', Category.other, decay=2)
decayable(rm, 'butter', 'firmalife:food/butter', Category.other)
Expand Down
16 changes: 10 additions & 6 deletions resources/generate_book.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,16 +86,18 @@ def make_book(rm: ResourceManager, i18n: I18n, local_instance: bool = False):
crafting('firmalife:crafting/wood/acacia_jarbnet'),
)),
entry('greenhouse', 'Greenhouse', 'firmalife:sealed_bricks', pages=(
text('The $(thing)Greenhouse$() is a multiblock device controlled by a $(l:tfc: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:tfc: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:tfc: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:tfc: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 non-air block.'),
text('The walls of greenhouses must be solid faces. Panel walls should be placed so that the face that is on the exterior of the block (eg. the face you can place a torch on) faces into the greenhouse. The same applies for roofs, except that slabs are always considered valid roof blocks. Trapdoors and doors are also always valid and require no special placement.'),
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.'),
text('There are four types of regular $(thing)Greenhouse Blocks$(): Walls, Doors, Roofs, and Roof Tops. Roofs and Roof Tops are stairs and slabs, respectively. There are also thinner versions of these blocks, also known as panel walls, trapdoors, and panel roofs. 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:tfc:firmalife/stainless_steel)this linked page$().'),
text('There are many blocks that operate inside Greenhouses:$(br)$(li)$(l:tfc:firmalife/planters)Planters$(), for growing crops$(), and $(br)$(li)$(l:tfc:firmalife/sprinklers)Sprinklers$(), various devices that add water to planters.'),
text('The next four pages contain recipes for the 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:tfc: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:tfc:firmalife/planters)Planters$(), for growing crops$(), and $(br)$(li)$(l:tfc:firmalife/sprinklers)Sprinklers$(), various devices that add water to planters.'),
empty_last_page()
crafting('firmalife:crafting/greenhouse/iron_greenhouse_trapdoor', 'firmalife:crafting/greenhouse/iron_greenhouse_panel_roof'),
crafting('firmalife:crafting/greenhouse/iron_greenhouse_panel_wall', 'firmalife:crafting/greenhouse/iron_greenhouse_port'),
)),
entry('irrigation', 'Irrigation', 'firmalife:sprinkler', pages=(
text('The $(thing)Sprinkler$() is a device that sprinkles water in a 5x6x5 area centered on the block below the sprinkler block. It automatically fills with water from any fluid tank or pipe placed above it. You know it is working when it drips out water particles. Sprinklers placed on the ground irrigate the same 5x6x5 area above.'),
Expand All @@ -105,7 +107,9 @@ def make_book(rm: ResourceManager, i18n: I18n, local_instance: bool = False):
two_tall_block_spotlight('', '', 'firmalife:pumping_station', 'firmalife:irrigation_tank'),
text('Pumping stations must be above a source block of water in order to work, and be connected to mechanical power. Irrigation tanks can also serve water through their ports on the sides, provided that they are stacked at most 3 blocks high above a pumping station on other tanks.'),
crafting('firmalife:crafting/pumping_station', 'firmalife:crafting/irrigation_tank'),
crafting('firmalife:crafting/oxidized_copper_pipe', text_contents='Oxidized pipes are the same as regular copper pipes, except they do not connect to the other kind of pipe.')
crafting('firmalife:crafting/oxidized_copper_pipe', text_contents='Oxidized pipes are the same as regular copper pipes, except they do not connect to the other kind of pipe.'),
crafting('firmalife:crafting/greenhouse/iron_greenhouse_port', text_contents='Greenhouse ports have a single pipe inside of them. They can be used to pass water through the walls of greenhouses!'),
empty_last_page(),
)),
entry('planters', 'Planters', 'firmalife:large_planter', pages=(
text('$(thing)Planters$() are used to grow crops inside a $(l:tfc: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:tfc:firmalife/climate_station)Climate Station$(). Planters need at least some natural sunlight to work.').anchor('planters'),
Expand Down
Loading

0 comments on commit d88d160

Please sign in to comment.