Difference between revisions of "Template:Reflector"

From LifeWiki
Jump to navigation Jump to search
(pass apgcode to PatternDownload (mainly for Snark))
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<!--  
+
<!--
  
Display "request pattern file" box if no pattern files exist and "nofile" was not passed to suppress this
+
Begin infobox
  
--> <includeonly>{{#if: {{{zip|}}}{{{mc|}}}{{{life105|}}}{{{life106|}}}{{{plaintext|}}}{{{rle|}}}{{{nofile|}}} | | {{requestpatternfile}} }}</includeonly><!--
+
-->{{InfoboxStart
 +
|typename      = Reflector
 +
|defaultconfig = reflector
 +
|viewerconfig  = {{{viewerconfig|}}}
 +
|name          = {{{name|}}}
 +
|zip          = {{{zip|}}}
 +
|mc            = {{{mc|}}}
 +
|life105      = {{{life105|}}}
 +
|life106      = {{{life106|}}}
 +
|plaintext    = {{{plaintext|}}}
 +
|rle          = {{{rle|}}}
 +
|nofile        = {{{nofile|}}}
 +
|pname        = {{{pname|}}}
 +
|animated      = {{{animated|}}}
 +
}}<!--
  
Begin infobox
+
Display pattern type
  
--> <table class="infobox">
+
--><tr>
<tr><td colspan="2" class="infobox_head"> {{{name|Reflector Name}}} </td></tr>
 
<tr>
 
<td colspan="2" class="infobox_img"><table class="img_border" cellpadding="0"><tr><td>{{#if: {{{zip|}}}{{{mc|}}}{{{life105|}}}{{{life106|}}}{{{plaintext|}}}{{{rle|}}}{{{nofile|}}} | {{#ifexist:RLE:{{{pname}}}|{{LV:Viewer|{{RLE:{{{pname}}}}}
 
{{LifeViewer config/reflector}}
 
{{#tag:nowiki|{{{viewerconfig|}}}}}|[[Image:{{{pname|}}}.png|{{{name}}} image]]}}|[[Image:{{{pname|}}}.png|{{{name}}} image]]}}|[[Image:UnknownPattern.png|{{{name}}} image]]}}</td></tr></table></td></tr>{{#if: {{{animated|}}} | <tr><td colspan="2" class="infobox_animlink"> [[Media:{{{pname|name}}}.gif|View animated image]]}}<tr><td colspan="2" class="infobox_animlink"> [[Media:{{{pname|name}}}.png|View static image]] </td></tr>
 
<tr>
 
 
<th valign="top"> Pattern type </th>
 
<th valign="top"> Pattern type </th>
<td> {{#ifeq:{{lc:{{{type}}}}}|stable|[[Stable reflector]]|[[Reflector]]{{#ifeq:{{lc:{{{isosc|}}}}}|false||<br />[[Oscillator]]}}}} </td></tr>
+
<td> {{#ifeq: {{lc:{{{type}}}}} | stable | [[Stable reflector]] | [[Reflector]] {{#ifeq: {{lc:{{{isosc|}}}}} | false | | <br />[[Oscillator]] }} }} </td></tr><!--
<tr>
+
 
<th> Number of [[cell]]s </th>
+
Display population and bounding box
<td> {{#if: {{{c|}}} | {{#ifexpr: {{{c|}}} >= 1000 | [[:Category:Patterns with 1000 or more cells|{{{c}}}]] | [[:Category:Patterns with {{{c}}} cells|{{{c}}}]] }} | Unknown }} </td></tr>
+
 
<tr>
+
-->{{PatternPopulationAndBoundingBox
<th> [[Bounding box]] </th>
+
|c        = {{{c|}}}
<td> {{#if: {{{bx|}}} | {{{bx}}}&times;{{{by}}} | Unknown }} </td></tr>
+
|bx      = {{{bx|}}}
 +
|by      = {{{by|}}}
 +
|fc      = {{{fc|}}}
 +
}}<!--
 +
 
 +
Display an infobox divider
 +
 
 +
-->{{InfoboxDivider}}
 
<tr>
 
<tr>
 
<th> Angle </th>
 
<th> Angle </th>
Line 53: Line 68:
 
}} </td>
 
}} </td>
 
</tr>}}<!--
 
</tr>}}<!--
 +
 +
Display an infobox divider
 +
 +
-->{{InfoboxDivider}}<!--
  
 
Display discoverers and year of discovery
 
Display discoverers and year of discovery
Line 70: Line 89:
 
|synthesis    = {{{synthesis|}}}
 
|synthesis    = {{{synthesis|}}}
 
|synthesisRLE = {{{synthesisRLE|}}}
 
|synthesisRLE = {{{synthesisRLE|}}}
 +
|apgcode      = {{{apgcode|}}}
 
|life105      = {{{life105|}}}
 
|life105      = {{{life105|}}}
 
|life106      = {{{life106|}}}
 
|life106      = {{{life106|}}}
Line 80: Line 100:
 
|rulemax      = {{{rulemax|}}}
 
|rulemax      = {{{rulemax|}}}
 
|rulemin      = {{{rulemin|}}}  
 
|rulemin      = {{{rulemin|}}}  
 +
|isorulemax  = {{{isorulemax|}}}
 +
|isorulemin  = {{{isorulemin|}}}
 
}}<!--
 
}}<!--
  
Line 103: Line 125:
  
 
--><includeonly>
 
--><includeonly>
 +
{{#ifeq:{{NAMESPACE}}|User||
 
[[Category:Patterns]]
 
[[Category:Patterns]]
 
[[Category:Reflectors]]
 
[[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>
+
{{#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: {{{a|}}} | [[Category:{{{a}}} degree reflectors]]}}{{#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>

Latest revision as of 19:53, 5 December 2019

Reflector Name
image
Pattern type Reflector
Oscillator
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