XML FORMAT DETAILS


TAGS:

<automaton> - Takes no arguments.  This is the base tag, the file should be entirely enclosed in one of these.
 - <width>/<height> - Each contains a single number that represents the width or height (in tiles) of the simulator.
 - <default_cell> - Contains the name of a cell type to fill the grid with, usually a dead cell or similar.
 - <outside_cell> - The type of cell that lies outside the borders of the grid, used when the simulation needs to check adjacent cells that are outside the grid.
 - <cell_type> - Takes no arguments.  This tag contains all the information pertaining to a single cell type/state.
  - <name> - Contains the name of the cell type.
  - <color> - Doesn't take any arguments directly, but it has three sub-tags (<r>, <g> and <b>) that represent the red, green, and blue levels in the color of this cell type/state.
  - <rule> - Doesn't take any arguments, but contains the information about one type of state-change for this cell type/state
   - <change_to> - Contains the name of the cell type/state to change to, if the conditions are ment.
   - <chance> - An optional tag, that, if present, contains a percentile chance for the change to occure, assuming the conditions are met.
   - <condition> - Doesn't take any arguments, but it contains the information about a condition for a rule.  (Keep in mind, a rule can have multiple conditions, and only changes the cell if all of them are met.
    - <check_for> - Contains the name of a cell type/state to check for when counting them.  There can be more than one of these per condition.
    - <min>/<max> - Defines a range that the number of cells counted must fall within to meet the condition.  Both are inclusive.
    - <radius> - Contains the radius to count cells in around the source.  Defaults to 1.
    - <pattern_???/> - There are a number of these tags, detailed below, that allow you to change the pattern (neighborhood) that is checked for this condition.


PATTERNS (Neighborhoods):

<pattern_square/>
This is the default pattern, and the tag isn't required.  It uses the following pattern:
*****
*###*
*###*  (radius=1)
*###*
*****

<pattern_diamond/>
This pattern searches in a diamond-shapped pattern, as in a von Neumann neighborhood.  It looks like this:
*****
**#**
*###*  (radius=1)
**#**
*****

<pattern_circle/>
This pattern searches in a circular pattern, and only works well with higher radii

<pattern_cross/>
This pattern searches in a straight line, both vertically and horizontally from the source:
**#**
**#**
#####  (radius=2)
**#**
**#**

<pattern_x/>
This pattern searches in two diagonal lines:
#***#
*#*#*
**#**  (radius=2)
*#*#*
#***#

<pattern_horizontal/> and <pattern_vertical/>
These are fairly self-explanitory, and search along a single line (horizontal or vertical, respectively).