Template:Crafting table: Difference between revisions

m
no edit summary
imported>Ttv pedro270707
m (Added a bunch of checks at an attempt to reduce expensive the amount of expensive parser functions)
imported>Ttv pedro270707
mNo edit summary
 
(30 intermediate revisions by the same user not shown)
Line 2: Line 2:


-->{{#ifeq: {{#var:crafting-table|}} | y | | {{#vardefine:crafting-table|y}}<table class="wikitable sortable mw-collapsible">
-->{{#ifeq: {{#var:crafting-table|}} | y | | {{#vardefine:crafting-table|y}}<table class="wikitable sortable mw-collapsible">
<tr>{{#ifeq: {{bl|{{{name|}}}|string=y}} | n | {{#vardefine:name|n}} | <th>Name</th>{{#vardefine:name|y}}}}{{#ifeq: {{bl|{{{ingredients|}}}|string=y}} | n | {{#vardefine:ingredients|n}} | <th>Ingredients</th>{{#vardefine:ingredients|y}}}}<th class="unsortable">Crafting recipe</th>{{#ifeq: {{bl|{{{showdescription|}}}}} | y | <th class="unsortable">Description</th>{{#vardefine:showdescription|y}}}}</tr>}}<!--
<tr>{{#ifeq: {{bl|{{{name|y}}}|string=y}} | n | {{#vardefine:name|n}} | <th>Name</th>{{#vardefine:name|y}}}}{{#ifeq: {{bl|{{{ingredients|}}}|string=y}} | n | {{#vardefine:ingredients|n}} | <th>Ingredients</th>{{#vardefine:ingredients|y}}}}<th class="unsortable">Crafting recipe</th>{{#ifeq: {{bl|{{{description|}}}|string=y}} | n | | {{#if: {{{description|}}} | <th class="unsortable">Description</th>{{#vardefine:showdescription|y}}}}</tr>}} }}<!--
 
-->{{#vardefine:name-str|{{bl|{{{name|y}}}|string=y}}}}<!--


--><tr>{{#ifeq: {{#var:name|}} | n | |
--><tr>{{#ifeq: {{#var:name|}} | n | |
<th>'''{{#ifeq: {{#var:exists-{{{RESULT|}}}}} | y | {{#ifeq: {{{RESULT|}}} | {{FULLPAGENAME}} | {{{RESULT|}}} | [[{{{RESULT|}}}]]}} | {{#ifeq: {{#var:exists-{{{RESULT|}}}}} | n | {{{RESULT|}}} | {{#ifexist: {{{RESULT|}}} | {{#vardefine:exists-{{{RESULT|}}}|y}}{{#ifeq: {{{RESULT|}}} | {{FULLPAGENAME}} | {{{RESULT|}}} | [[{{{RESULT|}}}]]}} | {{#vardefine:exists-{{{RESULT|}}}|n}}{{{RESULT|}}} }} }} }}'''</th>
{{#if: {{{RESULT|}}}
| <th>'''{{#ifeq: {{#var:name-str|}} | y |  
{{#vardefine:item|{{#arraydefine:item|{{{RESULT|}}}|,}}{{#arrayindex:item|0}}}}
{{Crafting table/Process item link|{{#var:item}}}}
{{#vardefine:item|}}
| {{#var:name-str|}}
}}'''</th> <!-- If name is not a boolean, it displays the text in the name parameter instead -->
| <th>''Nothing''</th>
}}
}}<!--
}}<!--


-->{{#ifeq: {{#var:ingredients|}} | n | |  
-->{{#ifeq: {{#var:ingredients|}} | n | |
<td>{{#switch: {{#var:type|workbench}}
{{#ifeq: {{bl|{{{ingredients|y}}}|string=y}} | y
| workbench | inventory = {{#fornumargs: argnum | argval |
| <td>{{#ifeq: {{#fornumargs: argnum | argval | {{#var:argval|}}}}{{{input|}}} | | ''Nothing''
      {{#ifeq: {{#var:item-{{#var:argval}}-{{#var:crafting-table-index|0}}|}} | y | | {{#ifeq: {{#var:first-ingredient|}} | y | &nbsp;+<br> | {{#vardefine:first-ingredient|y}} }}'''{{#ifeq: {{#var:exists-{{#var:argval}}}} | y | {{#ifeq: {{#var:argval}} | {{FULLPAGENAME}} | {{#var:argval}} | [[{{#var:argval}}]]}} | {{#ifeq: {{#var:exists-{{#var:argval}}}} | n | {{#var:argval}} | {{#ifexist: {{#var:argval}} | {{#vardefine:exists-{{#var:argval}}|y}}{{#ifeq: {{#var:argval}} | {{FULLPAGENAME}} | {{#var:argval}} | [[{{#var:argval}}]]}} | {{#vardefine:exists-{{#var:argval}}|n}}{{#var:argval}} }} }} }}'''{{#vardefine:item-{{#var:argval}}-{{#var:crafting-table-index|0}}|y}} }}
| {{#switch: {{#var:type|workbench}}
}}
| workbench | inventory = {{#fornumargs: argnum | argval |
| furnace | blast-furnace = '''{{#ifeq: {{#var:exists-{{{input|}}}}} | y | {{#ifeq: {{{input|}}} | {{FULLPAGENAME}} | {{{input|}}} | [[{{{input|}}}]]}} | {{#ifeq: {{#var:exists-{{{input|}}}}} | n | {{{input|}}} | {{#ifexist: {{{input|}}} | {{#vardefine:exists-{{{input|}}}|y}}{{#ifeq: {{{input|}}} | {{FULLPAGENAME}} | {{{input|}}} | [[{{{input|}}}]]}} | {{#vardefine:exists-{{{input|}}}|n}}{{{input|}}} }} }} }}'''
{{#arraydefine:items|{{#var:argval}}|;}}
}}</td>
{{#vardefine:items-length|{{#expr: 0{{#arrayprint:items||@@@@|
{{#vardefine:item|{{#arraydefine:item|@@@@|,}}{{#arrayindex:item|0}}}}
{{#ifeq: {{#var:item-{{#var:item}}-{{#var:crafting-table-index|0}}}} | y | | +1}}
}}
}}
}}<!--
 
--> {{#ifeq: {{#var:first-ingredients|}} | y |
{{#ifeq: {{#var:items-length|0}} | 0 | | &nbsp;+<br> }}
| {{#vardefine:first-ingredients|y}}
}}<!--
--> {{#vardefine:first-table-item|y}}<!--
--> {{#arrayprint:items||@@@@|<!--
--> {{#vardefine:item|{{#arraydefine:item|@@@@|,}}{{#arrayindex:item|0}}}}<!--
 
--> {{#ifeq: {{#var:item-{{#var:item}}-{{#var:crafting-table-index|0}}}} | y |
| {{#if: {{#var:first-table-item|}} | {{#vardefine:first-table-item|}} | &nbsp;or<br>}}
'''{{Crafting table/Process item link|{{#var:item}}}}'''
{{#vardefine:item-{{#var:item}}-{{#var:crafting-table-index|0}}|y}}
}}{{#vardefine:item|}}{{#arrayreset:item}}}}{{#vardefine:items-length|}}
}}
| furnace | blast-furnace =
{{#vardefine:item|{{#arraydefine:item|{{{input|}}}|,}}{{#arrayindex:item|0}}}}<!--
--> '''{{Crafting table/Process item link|{{#var:item}}}}'''<!--
--> {{#vardefine:item|}}
}}
}}</td>
| <td>{{{ingredients|}}}</td><!--
--> }}
}}<td style="padding: 0; text-align: center;">{{#switch: {{#var:type|workbench}}
}}<td style="padding: 0; text-align: center;">{{#switch: {{#var:type|workbench}}
| workbench = {{Crafting|1={{{1|}}}|2={{{2|}}}|3={{{3|}}}|4={{{4|}}}|5={{{5|}}}|6={{{6|}}}|7={{{7|}}}|8={{{8|}}}|9={{{9|}}}|RESULT={{{RESULT|}}}|shapeless={{{shapeless|}}}}}
| workbench = {{Crafting|1={{{1|}}}|2={{{2|}}}|3={{{3|}}}|4={{{4|}}}|5={{{5|}}}|6={{{6|}}}|7={{{7|}}}|8={{{8|}}}|9={{{9|}}}|RESULT={{{RESULT|}}}|shapeless={{{shapeless|}}}}}
Line 22: Line 60:
}}</td><!--
}}</td><!--


-->{{#ifeq: {{#var:showdescription|}} | y | <td>{{{description|}}}</td> | }}<!--
-->{{#ifeq: {{#var:showdescription|}} | y | {{#ifeq: {{bl|{{{description|}}}}} | y | <td></td> | <td>{{{description|}}}</td> }} | }}<!--


--></tr>
--></tr>
{{#vardefine:first-ingredient|}}{{#ifeq: {{bl|{{{foot|}}}}} | y | </table>{{#vardefine:crafting-table|}}{{#vardefine:name|}}{{#vardefine:ingredients|}}{{#vardefine:showdescription|}} | }}</includeonly><noinclude>
{{#vardefine:first-ingredients|}}{{#ifeq: {{bl|{{{foot|}}}}} | y | </table>{{#vardefine:crafting-table|}}{{#vardefine:name|}}{{#vardefine:ingredients|}}{{#vardefine:showdescription|}} | }}</includeonly><noinclude>
{{Crafting table
{{Documentation}}
|type=workbench
<!-- Put categories on the documentation page -->
|1=Steel Ingot
|2=Steel Ingot
|3=Steel Ingot
|4=Iron Ingot
|5=Iron Ingot
|6=Iron Ingot
|7=Iron Ingot
|8=Iron Ingot
|9=Iron Ingot
|RESULT=Block of Iron
|showdescription=y
|description=Description!
|name=n
}}
{{Crafting table
|type=workbench
|1=Steel Ingot
|2=Steel Ingot
|3=Steel Ingot
|4=Iron Ingot
|5=Iron Ingot
|6=Iron Ingot
|7=Iron Ingot
|8=Iron Ingot
|9=Iron Ingot
|RESULT=Block of Iron
|name=y
}}
{{Crafting table
|type=inventory
|1=Steel Ingot
|2=Steel Ingot
|3=Steel Ingot
|4=Iron Ingot
|RESULT=Block of Iron
|foot=y
}}
 
{{Crafting table
|type=inventory
|1=Steel Ingot
|2=Steel Ingot
|3=Steel Ingot
|4=Iron Ingot
|RESULT=Block of Iron
|foot=y
}}
 
{{Crafting table
|type=blast-furnace
|input=Iron Ingot
|fuel=Iron Ingot
|RESULT=Block of Iron
}}
{{Crafting table
|input=Iron Ingot
|fuel=Iron Ingot
|RESULT=Block of Iron
|foot=y
}}
</noinclude>
</noinclude>