Difference between revisions of "Template:Reflector"

From LifeWiki
Jump to navigation Jump to search
m
(Maintainability tweaks; extra category links)
Line 1: Line 1:
<includeonly>{{#if: {{{zip|}}}{{{mc|}}}{{{life105|}}}{{{life106|}}}{{{plaintext|}}}{{{rle|}}}{{{nofile|}}} | | {{requestpatternfile}} }}</includeonly><table class="infobox">
+
<!--
 +
 
 +
Display "request pattern file" box if no pattern files exist and "nofile" was not passed to suppress this
 +
 
 +
--> <includeonly>{{#if: {{{zip|}}}{{{mc|}}}{{{life105|}}}{{{life106|}}}{{{plaintext|}}}{{{rle|}}}{{{nofile|}}} | | {{requestpatternfile}} }}</includeonly><!--
 +
 
 +
Begin infobox
 +
 
 +
--> <table class="infobox">
 
<tr><td colspan="2" class="infobox_head"> {{{name|Reflector Name}}} </td></tr>
 
<tr><td colspan="2" class="infobox_head"> {{{name|Reflector Name}}} </td></tr>
 
<tr>
 
<tr>
Line 25: Line 33:
 
{{#if: {{{px|}}} | <tr>
 
{{#if: {{{px|}}} | <tr>
 
<th> Period multiplier </th>
 
<th> Period multiplier </th>
<td> {{{px|}}}× </td>
+
<td> {{#if: {{{px|}}} | {{#switch: {{{px|}}}
 +
    | 2 = [[:Category:Period-doubling reflectors|2×]]
 +
    | 3 = [[:Category:Period-tripling reflectors|3×]]
 +
    | 4 = [[:Category:Period-quadrupling reflectors|4×]]
 +
    | 5 = [[:Category:Period-quintupling reflectors|5×]]
 +
    | {{{px|}}}×  
 +
}} }}
 
</tr>}}{{#if: {{{colour|{{{color|}}}}}} | <tr>
 
</tr>}}{{#if: {{{colour|{{{color|}}}}}} | <tr>
 
<th> Colour </th>
 
<th> Colour </th>
 
<td> {{#switch: {{lc:{{{colour|{{{color}}}}}}}}  
 
<td> {{#switch: {{lc:{{{colour|{{{color}}}}}}}}  
| preserving
+
    | preserving
| preserves
+
    | preserves
| preserve
+
    | preserve
| cp        = Colour-preserving
+
    | cp        = [[:Category:Colour-preserving reflectors|Colour-preserving]]
| changing
+
    | changing
| changes
+
    | changes
| change
+
    | change
| cc        = Colour-changing
+
    | cc        = [[:Category:Colour-preserving reflectors|Colour-changing]]
 
}} </td>
 
}} </td>
 
</tr>}}<tr>
 
</tr>}}<tr>
Line 43: Line 57:
 
<tr>
 
<tr>
 
<th> Year of discovery </th>
 
<th> Year of discovery </th>
<td> {{#if: {{{discoveryear|}}} | [[:Category:Patterns found in {{{discoveryear|}}}|{{{discoveryear|}}}]] | Unknown }} </td></tr>{{PatternDownload|synthesis={{{synthesis|}}}|synthesisRLE={{{synthesisRLE|}}}|life105={{{life105|}}}|life106={{{life106|}}}|plaintext={{{plaintext|}}}|zip={{{zip|}}}|rle={{{rle|}}}|mc={{{mc|}}}|pname={{{pname|}}}|rulespecial={{{rulespecial|}}}|rulemax={{{rulemax|}}}|rulemin={{{rulemin|}}} }}{{PatternIdentifiers|apgcode={{{apgcode|}}}|niemiecid={{{niemiecid|}}}|pentadecathlonid={{{pentadecathlonid|}}} }}</table>
+
<td> {{#if: {{{discoveryear|}}} | [[:Category:Patterns found in {{{discoveryear|}}}|{{{discoveryear|}}}]] | Unknown }} </td></tr><!--
<noinclude>__NOTOC__
+
 
This is an infobox template for '''[[reflector]]s'''. An example can be seen to the right. For general information about how to use pattern templates, see [[LifeWiki:Style guide/Pattern layout]]. To see a live example of this template in action, see [[buckaroo]].
+
Display "Rules", "Glider synthesis", "Pattern files" sections
 +
 
 +
-->{{PatternDownload
 +
|synthesis   = {{{synthesis|}}}
 +
|synthesisRLE = {{{synthesisRLE|}}}
 +
|life105     = {{{life105|}}}
 +
|life106     = {{{life106|}}}
 +
|plaintext   = {{{plaintext|}}}
 +
|zip         = {{{zip|}}}
 +
|mc          = {{{mc|}}}
 +
|rle          = {{{rle|}}}
 +
|pname       = {{{pname|}}}
 +
|rulespecial = {{{rulespecial|}}}
 +
|rulemax     = {{{rulemax|}}}
 +
|rulemin     = {{{rulemin|}}}  
 +
}}<!--
 +
 
 +
Display "Identifiers" section
 +
 
 +
-->{{PatternIdentifiers
 +
|apgcode         = {{{apgcode|}}}
 +
|niemiecid       = {{{niemiecid|}}}
 +
|pentadecathlonid = {{{pentadecathlonid|}}}  
 +
}}<!--
 +
 
 +
End infobox
  
''Note:'' This template was only designed for glider reflectors. If other types of reflectors are to be included then the template will need to be updated to provide this information.
+
--></table><!--
  
===Special Parameters===
+
Transcluded documentation
* '''type''': only supports "stable"; if it is an oscillating reflector leave this parameter undefined.
 
* '''p''': is simply the period of an oscillating reflector; however, for [[stable reflector]]s this is the [[Stable reflector#Repeat time|repeat time]].
 
* '''a''': is the angle of the output glider in relation to the input glider (should be one of two values: 90 or 180).
 
* '''px''': is the period multiplier of the reflector, e.g. "4" for the [[Quadri-Snark]].
 
* '''colour''': indicates whether the reflector preserves or changes a glider's [[colour of a glider|colour]].
 
* '''isosc''': tells whether the reflector can function as an oscillator on its own (some reflectors require a constant stream of gliders). If the pattern can not function as an oscillator on its own this parameter should be "false", otherwise leave it undefined.
 
  
===Images===
+
--><noinclude>{{Reflector/Doc}}
The image in this infobox should '''NOT''' include the glider that is to be reflected (except in the case of reflectors that require a constant stream of gliders); this can be added below in an image gallery. The animation for an oscillating reflector should '''NOT''' show the reflection capabilities of the pattern but merely the oscillator itself (except in the case of patterns that need a constant stream of gliders). Stable reflectors should not have an animated image in this infobox. Instead, an animation of the reflection capabilities (for both stable and oscillating reflectors) can be ''linked to'' in the image gallery. Do '''NOT''' place animated images directly onto the page; instead, consider using a static image of the reflector with a caption that links to the animation. An example is shown below:
+
{{PatternTemplates}}
 +
</noinclude><!--
  
==Example image gallery==
+
Categories
{|
 
|-
 
|[[Image:Buckarooprereflection.png|framed|left|A [[buckaroo]] reflecting a glider<br />[[Media:Buckarooreflect.gif|View animated image]] ]]
 
|}
 
  
{{PatternTemplates}}</noinclude><includeonly>[[Category:Patterns]] [[Category:Reflectors]] {{#ifeq: {{lc:{{{type|}}}}} | stable | [[Category:Stable reflectors]] |{{#ifeq:{{lc:{{{isosc|}}}}}|false||[[Category:Oscillators]] {{#if: {{{h|}}} | {{#iferror: {{#expr: floor({{{h}}})}} | | [[Category:Oscillators with heat {{#expr: floor({{{h}}})}}]] }} }} }} {{#if: {{{p|}}} | {{#ifeq:{{lc:{{{isosc|}}}}}|false||[[Category:Oscillators with period {{{p}}}]]}} }} }}{{#if: {{{c|}}} | {{#ifexpr: {{{c|}}} >= 1000 | [[Category:Patterns with 1000 or more cells|{{{c}}}]] | [[Category:Patterns with {{{c}}} cells|{{{c}}}]] }} }}{{#if: {{{a|}}} | [[Category:{{{a}}} degree reflectors]]}}{{#if: {{{discoverer|}}} | [[Category:Patterns found by {{{discoverer|}}}]] }}{{#if: {{{discoverer2|}}} | [[Category:Patterns found by {{{discoverer2|}}}]] }}{{#if: {{{discoverer3|}}} | [[Category:Patterns found by {{{discoverer3|}}}]] }}{{#if: {{{discoverer4|}}} | [[Category:Patterns found by {{{discoverer4|}}}]] }}{{#if: {{{discoverer5|}}} | [[Category:Patterns found by {{{discoverer5|}}}]] }}{{#if: {{{discoveryear|}}} | [[Category:Patterns found in {{{discoveryear|}}}]] }}{{#if: {{{px|}}} | {{#switch: {{{px|}}} | 2 = [[Category:Period-doubling reflectors]] | 3 = [[Category:Period-tripling reflectors]] | 4 = [[Category:Period-quadrupling reflectors]] | 5 = [[Category:Period-quintupling reflectors]] }} }}{{#if: {{{colour|}}} | {{#switch: {{lc:{{{colour|{{{color}}}}}}}} | preserving | preserves | preserve | cp = [[Category:Colour-preserving reflectors]] | changing | changes | change | cc = [[Category:Colour-changing reflectors]] }} }}</includeonly>
+
--><includeonly>
 +
[[Category:Patterns]]
 +
[[Category:Reflectors]]
 +
{{#ifeq: {{lc:{{{type|}}}}} | stable | [[Category:Stable reflectors]] |{{#ifeq:{{lc:{{{isosc|}}}}}|false||[[Category:Oscillators]] {{#if: {{{h|}}} | {{#iferror: {{#expr: floor({{{h}}})}} | | [[Category:Oscillators with heat {{#expr: floor({{{h}}})}}]] }} }} }} {{#if: {{{p|}}} | {{#ifeq:{{lc:{{{isosc|}}}}}|false||[[Category:Oscillators with period {{{p}}}]]}} }} }}{{#if: {{{c|}}} | {{#ifexpr: {{{c|}}} >= 1000 | [[Category:Patterns with 1000 or more cells|{{{c}}}]] | [[Category:Patterns with {{{c}}} cells|{{{c}}}]] }} }}{{#if: {{{a|}}} | [[Category:{{{a}}} degree reflectors]]}}{{#if: {{{discoverer|}}} | [[Category:Patterns found by {{{discoverer|}}}]] }}{{#if: {{{discoverer2|}}} | [[Category:Patterns found by {{{discoverer2|}}}]] }}{{#if: {{{discoverer3|}}} | [[Category:Patterns found by {{{discoverer3|}}}]] }}{{#if: {{{discoverer4|}}} | [[Category:Patterns found by {{{discoverer4|}}}]] }}{{#if: {{{discoverer5|}}} | [[Category:Patterns found by {{{discoverer5|}}}]] }}{{#if: {{{discoveryear|}}} | [[Category:Patterns found in {{{discoveryear|}}}]] }}{{#if: {{{px|}}} | {{#switch: {{{px|}}} | 2 = [[Category:Period-doubling reflectors]] | 3 = [[Category:Period-tripling reflectors]] | 4 = [[Category:Period-quadrupling reflectors]] | 5 = [[Category:Period-quintupling reflectors]] }} }}{{#if: {{{colour|}}} | {{#switch: {{lc:{{{colour|{{{color}}}}}}}} | preserving | preserves | preserve | cp = [[Category:Colour-preserving reflectors]] | changing | changes | change | cc = [[Category:Colour-changing reflectors]] }} }}</includeonly>

Revision as of 12:48, 18 February 2018

Reflector Name
{{{name}}} image
Pattern type Reflector
Oscillator
Number of cells Unknown
Bounding box Unknown
Angle Unknown
Period Unknown
Heat Unknown
Discovered by Unknown
Year of discovery Unknown

This is an infobox template for reflectors. An example can be seen to the right. For general information about how to use pattern templates, see LifeWiki:Style guide/Pattern layout. To see a live example of this template in action, see buckaroo.

Note: This template was only designed for glider reflectors. If other types of reflectors are to be included then the template will need to be updated to provide this information.

Special Parameters

  • type: only supports "stable"; if it is an oscillating reflector leave this parameter undefined.
  • p: is simply the period of an oscillating reflector; however, for stable reflectors this is the repeat time.
  • a: is the angle of the output glider in relation to the input glider (should be one of two values: 90 or 180).
  • px: is the period multiplier of the reflector, e.g. "4" for the Quadri-Snark.
  • colour: indicates whether the reflector preserves or changes a glider's colour.
  • isosc: tells whether the reflector can function as an oscillator on its own (some reflectors require a constant stream of gliders). If the pattern can not function as an oscillator on its own this parameter should be "false", otherwise leave it undefined.

Images

The pattern in this infobox should include the glider that is to be reflected -- optionally, two input gliders separated by the mechanism's minimum recovery time, and an output glider if that allows a smoother LifeViewer animation. However, the bounding box and population count should be calculated with these gliders removed.

If animations are needed, a LifeViewer thumbnail is often a good solution, since it allows the pattern information to be copied directly from LifeViewer if needed. A LifeViewer thumbnail example is shown below. Please do not place animated GIF images directly onto the page; instead, consider using a static image of the reflector with a caption that links to the animation. An example static image is shown below. LifeViewer can also produce static images, simply by leaving out the AUTOSTART keyword from the associated viewerconfig string.

Example image gallery

A buckaroo reflecting a glider
View animated image
x = 27, y = 17, rule = B3/S23 8b3o$8bo17bo$9bo14b2o$25b2o5$9bo$7bobo$6bobo$2o3bo2bo$2o4bobo$7bobo9b 2o$9bo9bobo$21bo$21b2o! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ AUTOSTART THUMBSIZE 2 HEIGHT 320 WIDTH 480 X -2 Z 16 GPS 10 LOOP 60 ]]
A buckaroo reflecting a glider,
LifeViewer thumbnail version
(click above to open LifeViewer)
RLE: here Plaintext: here

Pattern templates