Template:Recipe: Difference between revisions
(Adding documentation for output override) |
(BIG UPDATE! Updated to use new RecipeController. Updated doc to include services and examples) |
||
Line 1: | Line 1: | ||
<includeonly>{{#invoke: | <includeonly>{{#invoke: RecipeController | renderRecipe | ||
| product = {{{product| {{{1|}}} }}} | | product = {{{product| {{{1|}}} }}} | ||
| building = {{{building| {{{2|}}} }}} | | building = {{{building| {{{2|}}} }}} | ||
Line 7: | Line 7: | ||
</includeonly><noinclude> | </includeonly><noinclude> | ||
Generates recipe tables. Use this wherever you need to show how to use [[Goods]] or [[Buildings]]. | Generates recipe tables. Use this wherever you need to show how to use [[Goods]], [[Services]], or [[Buildings]]. | ||
== Overview == | == Overview == | ||
Create a concise, sortable table using game data to show in-game recipes. The table mimics the layout of the in-game recipe browser, with the building, efficiency of the recipe, number of ingredients, and the product. Optionally, outputs just a list of buildings with their efficiency stars. | Create a concise, sortable table using game data to show in-game recipes. The table mimics the layout of the in-game recipe browser, with the building, efficiency of the recipe, number of ingredients, and the product (or service). Optionally, outputs just a list of buildings (or products or services at a building) with their efficiency stars. | ||
=== Links to Resource Pages === | |||
Links within the table point to the product's or service's page and the anchor corresponding to its location in the table. Goods in ingredients columns will point to the recipes where that good is a product, so you can see where it comes from. Goods in the product column will point to the recipes where that good is an ingredient, so you can see where it can be used. | |||
== Parameters == | == Parameters == | ||
At least one of these is required | At least one of these is required. If the names provided are not spelled correctly (including punctuation), matching their in-game names, the recipe will return an error. | ||
{| class="wikitable" | {| class="wikitable" | ||
! Parameter !! Type !! Description | ! Parameter !! Type !! Description | ||
|- | |- | ||
| product || string || The name of the product associated with the recipe. Can be used in conjunction with <code>building</code> to display exactly one recipe. | | product || string || The name of the product or service associated with the recipe. Can be used in conjunction with <code>building</code> to display exactly one recipe. | ||
|- | |- | ||
| building || string || The name of the building where the recipe is produced. Can be used in conjunction with <code>product</code> to display exactly one recipe. | | building || string || The name of the building where the recipe is produced. Can be used in conjunction with <code>product</code> to display exactly one recipe. | ||
|- | |- | ||
| ingredient || string || The name of an ingredient in a recipe. | | ingredient || string || The name of an ingredient in a recipe. May result in a very long table. | ||
|- | |- | ||
| display || "list" || If <code>display=list</code> is present at the end of the template call, it overrides the default use of a wikitable to display the recipe. Instead, it will produce a list of buildings with their efficiency stars, each on their own line, without any ingredients or product names or icons. Useful for populating larger tables where displaying the entire recipe isn't relevant. | | display || "list" || If <code>display=list</code> is present at the end of the template call, it overrides the default use of a wikitable to display the recipe. Instead, it will produce a list of buildings with their efficiency stars, each on their own line, without any ingredients or product or service names or icons. Or, if you've specified the building, it displays a list of products with their efficiency stars. Useful for populating larger tables or between paragraphs where displaying the entire recipe isn't relevant. | ||
|} | |} | ||
== Errors == | == Errors == | ||
When a product, building, or ingredient is not spelled correctly or is not a valid name, the template returns an error message to help you locate the spelling or name mistake. | When a product, service, building, or ingredient is not spelled correctly or is not a valid name, the template returns an error message to help you locate the spelling or name mistake. | ||
'''Example:''' | '''Example:''' | ||
Line 48: | Line 52: | ||
=== Basic Usage for Products and Buildings === | === Basic Usage for Products and Buildings === | ||
A standard use of the template to show exactly one recipe for a product, in one building: | A standard use of the template to show exactly one recipe for a product or service, in one building: | ||
<pre>{{Recipe|Crystalized Dew|Brickyard}}</pre> | <pre>{{Recipe|Crystalized Dew|Brickyard}}</pre> | ||
Line 55: | Line 59: | ||
{{Recipe|Crystalized Dew|Brickyard}} | {{Recipe|Crystalized Dew|Brickyard}} | ||
Alternatively, for a service building: | |||
<pre>{{Recipe|Leisure|Tavern}}</pre> | |||
Yields: | |||
{{Recipe|Leisure|Tavern}} | |||
Here are several ways to call the template for products and buildings. | Here are several ways to call the template for products and buildings. | ||
Line 63: | Line 75: | ||
| no parameters || <code><nowiki>{{Recipe}}</nowiki></code> || an error | | no parameters || <code><nowiki>{{Recipe}}</nowiki></code> || an error | ||
|- | |- | ||
| product and building | | product (or service) and building | ||
|style="white-space: nowrap"| <code><nowiki>{{Recipe|Crystalized Dew|Brickyard}}</nowiki></code> <br> <code><nowiki>{{Recipe|product=Crystalized Dew|building=Brickyard}}</nowiki></code> | |style="white-space: nowrap"| <code><nowiki>{{Recipe|Crystalized Dew|Brickyard}}</nowiki></code> <br> <code><nowiki>{{Recipe|product=Crystalized Dew|building=Brickyard}}</nowiki></code> | ||
| A table with exactly one row. | | A table with exactly one row. | ||
|- | |- | ||
| product only | | product (or service) only | ||
|style="white-space: nowrap"| <code><nowiki>{{Recipe|Pie}}</nowiki></code> <br> <code><nowiki>{{Recipe|product=Pie}}</nowiki></code> | |style="white-space: nowrap"| <code><nowiki>{{Recipe|Pie}}</nowiki></code> <br> <code><nowiki>{{Recipe|product=Pie}}</nowiki></code> | ||
| A table with several rows, one for each building in which '''Pie''' can be produced. | | A table with several rows, one for each building in which '''Pie''' can be produced. | ||
|- | |- | ||
| building only | | building only | ||
|style="white-space: nowrap"| <code><nowiki>{{Recipe|| | |style="white-space: nowrap"| <code><nowiki>{{Recipe||Market}}</nowiki></code> ''(note the double pipe)'' <br> <code><nowiki>{{Recipe|building=Market}}</nowiki></code> | ||
| A table with several rows, one for each | | A table with several rows, one for each service provided by the '''Market.''' | ||
|- | |- | ||
| product, but with output override | | product (or service), but with output override | ||
|style="white-space: nowrap| <code><nowiki>{{Recipe|Crystalized Dew|display=list}}</nowiki></code> | |style="white-space: nowrap| <code><nowiki>{{Recipe|Crystalized Dew|display=list}}</nowiki></code> | ||
| A short list of buildings and their efficiency stars that easily fit within another table:<br /> | | A short list of buildings and their efficiency stars that easily fit within another table:<br /> | ||
Line 83: | Line 95: | ||
=== Ingredients === | === Ingredients === | ||
Unlike when specifying the product and/or building, when you specify the | Unlike when specifying the product (or service) and/or building, when you specify the ingredient, you explicitly must name the parameter with <code>ingredient=</code> in the template. Currently, you cannot select both a product and an ingredient (for example, all recipes where Berries are the ingredient and Pie is the product), because this is redundant with the product parameter by itself (since there is currently only one arrangement of ingredients and options that will make a product). | ||
The results of specifying the ingredient can | The results of specifying the ingredient without also filtering on a building can display a long table. But on a resource's page, this information is expected to be valuable. | ||
<pre>{{Recipe|ingredient=Wine}}</pre> | <pre>{{Recipe|ingredient=Wine}}</pre> | ||
Yields: | |||
{{Recipe|ingredient=Wine}} | |||
<pre>{{Recipe|building=Lumber Mill|ingredient=Wine}}</pre> | <pre>{{Recipe|building=Lumber Mill|ingredient=Wine}}</pre> | ||
Yields: | |||
{{Recipe|building=Lumber Mill|ingredient=Wine}} | |||
=== Further Examples and Errors === | === Further Examples and Errors === | ||
Line 116: | Line 134: | ||
3. building only | 3. building only | ||
<pre>{{Recipe|building= | <pre>{{Recipe|building=Market}}</pre> | ||
Yields: | Yields: | ||
{{Recipe|building= | {{Recipe|building=Market}} | ||
4. with the output override | 4. with the output override | ||
Line 129: | Line 147: | ||
{{Recipe|Crystalized Dew|display=list}} | {{Recipe|Crystalized Dew|display=list}} | ||
5 with the output override but specifying a building | |||
<pre>{{Recipe|building=Beanery|display=list}}</pre> | |||
Yields: | |||
{{Recipe|building=Beanery|display=list}} | |||
The following are error states generated by calling the template incorrectly. | The following are error states generated by calling the template incorrectly. | ||
6. with no parameters | |||
<pre>{{Recipe}}</pre> | <pre>{{Recipe}}</pre> | ||
Line 140: | Line 166: | ||
{{Recipe}} | {{Recipe}} | ||
7. using only one pipe and not specifying that the provided name is the building | |||
<pre>{{Recipe|Scribe}}</pre> | <pre>{{Recipe|Scribe}}</pre> | ||
Line 148: | Line 174: | ||
{{Recipe|Scribe}} | {{Recipe|Scribe}} | ||
8. asking for products or buildings with no recipes | |||
<pre>{{Recipe| | <pre>{{Recipe|building=Small Warehouse}}</pre> | ||
Yields: | Yields: | ||
{{Recipe|building= | {{Recipe|building=Small Warehouse}} | ||
</noinclude> | </noinclude> |
Revision as of 03:38, 27 November 2023
Generates recipe tables. Use this wherever you need to show how to use Goods, Services, or Buildings.
Overview
Create a concise, sortable table using game data to show in-game recipes. The table mimics the layout of the in-game recipe browser, with the building, efficiency of the recipe, number of ingredients, and the product (or service). Optionally, outputs just a list of buildings (or products or services at a building) with their efficiency stars.
Links to Resource Pages
Links within the table point to the product's or service's page and the anchor corresponding to its location in the table. Goods in ingredients columns will point to the recipes where that good is a product, so you can see where it comes from. Goods in the product column will point to the recipes where that good is an ingredient, so you can see where it can be used.
Parameters
At least one of these is required. If the names provided are not spelled correctly (including punctuation), matching their in-game names, the recipe will return an error.
Parameter | Type | Description |
---|---|---|
product | string | The name of the product or service associated with the recipe. Can be used in conjunction with building to display exactly one recipe.
|
building | string | The name of the building where the recipe is produced. Can be used in conjunction with product to display exactly one recipe.
|
ingredient | string | The name of an ingredient in a recipe. May result in a very long table. |
display | "list" | If display=list is present at the end of the template call, it overrides the default use of a wikitable to display the recipe. Instead, it will produce a list of buildings with their efficiency stars, each on their own line, without any ingredients or product or service names or icons. Or, if you've specified the building, it displays a list of products with their efficiency stars. Useful for populating larger tables or between paragraphs where displaying the entire recipe isn't relevant.
|
Errors
When a product, service, building, or ingredient is not spelled correctly or is not a valid name, the template returns an error message to help you locate the spelling or name mistake.
Example:
Broken: {{Recipe|building=Alchemists' Hut}}
Script error: The function "renderRecipe" does not exist.
Fixed: {{Recipe|building=Alchemist's Hut}}
Script error: The function "renderRecipe" does not exist.
There may be cases where the name you should use to look up a good or building is not the right name. Please post these to this template's discussion page.
Examples
Basic Usage for Products and Buildings
A standard use of the template to show exactly one recipe for a product or service, in one building:
{{Recipe|Crystalized Dew|Brickyard}}
Yields:
Script error: The function "renderRecipe" does not exist.
Alternatively, for a service building:
{{Recipe|Leisure|Tavern}}
Yields:
Script error: The function "renderRecipe" does not exist.
Here are several ways to call the template for products and buildings.
Parameter(s) | Example(s) | Expected outcome |
---|---|---|
no parameters | {{Recipe}} |
an error |
product (or service) and building | {{Recipe|Crystalized Dew|Brickyard}} {{Recipe|product=Crystalized Dew|building=Brickyard}}
|
A table with exactly one row. |
product (or service) only | {{Recipe|Pie}} {{Recipe|product=Pie}}
|
A table with several rows, one for each building in which Pie can be produced. |
building only | {{Recipe||Market}} (note the double pipe) {{Recipe|building=Market}}
|
A table with several rows, one for each service provided by the Market. |
product (or service), but with output override | {{Recipe|Crystalized Dew|display=list}}
|
A short list of buildings and their efficiency stars that easily fit within another table: Script error: The function "renderRecipe" does not exist. |
Ingredients
Unlike when specifying the product (or service) and/or building, when you specify the ingredient, you explicitly must name the parameter with ingredient=
in the template. Currently, you cannot select both a product and an ingredient (for example, all recipes where Berries are the ingredient and Pie is the product), because this is redundant with the product parameter by itself (since there is currently only one arrangement of ingredients and options that will make a product).
The results of specifying the ingredient without also filtering on a building can display a long table. But on a resource's page, this information is expected to be valuable.
{{Recipe|ingredient=Wine}}
Yields:
Script error: The function "renderRecipe" does not exist.
{{Recipe|building=Lumber Mill|ingredient=Wine}}
Yields:
Script error: The function "renderRecipe" does not exist.
Further Examples and Errors
The following are generated by calling the template as shown in the parameter examples table above.
1. product and building:
{{Recipe|Crystalized Dew|Brickyard}}
Yields:
Script error: The function "renderRecipe" does not exist.
2. product only
{{Recipe|Pie}}
Yields:
Script error: The function "renderRecipe" does not exist.
3. building only
{{Recipe|building=Market}}
Yields:
Script error: The function "renderRecipe" does not exist.
4. with the output override
{{Recipe|Crystalized Dew|display=list}}
Yields:
Script error: The function "renderRecipe" does not exist.
5 with the output override but specifying a building
{{Recipe|building=Beanery|display=list}}
Yields:
Script error: The function "renderRecipe" does not exist.
The following are error states generated by calling the template incorrectly.
6. with no parameters
{{Recipe}}
Yields:
Script error: The function "renderRecipe" does not exist.
7. using only one pipe and not specifying that the provided name is the building
{{Recipe|Scribe}}
Yields:
Script error: The function "renderRecipe" does not exist.
8. asking for products or buildings with no recipes
{{Recipe|building=Small Warehouse}}
Yields:
Script error: The function "renderRecipe" does not exist.