diff options
Diffstat (limited to 'simpleslides-s-Automaton.tex')
| -rw-r--r-- | simpleslides-s-Automaton.tex | 48 | 
1 files changed, 38 insertions, 10 deletions
diff --git a/simpleslides-s-Automaton.tex b/simpleslides-s-Automaton.tex index c1e3181..1fb4e08 100644 --- a/simpleslides-s-Automaton.tex +++ b/simpleslides-s-Automaton.tex @@ -19,9 +19,9 @@  \startmodule[simpleslides-s-Automaton] -\setupmodule[file=,rule=,extendxy=] % using defaults from lua config +\setupmodule[mode=,file=,rule=,extendxy=] % using defaults from lua config -\ctxlua{environment.loadluafile( "mplife" )} +\ctxlua{environment.loadluafile( "automata" )}  \ctxlua{mplife.slides = true}  \unprotect @@ -94,7 +94,21 @@  \setupcolors[textcolor={simpleslides:textcolor}] -%D Set the initial Game of Life snapshot (from file) and the rule, if given. +%D Set the initial snapshot (from file) and the rule, if given. + +\doifsomethingelse{\moduleparameter{simpleslides}{mode}} +{\ctxlua{ +mplife.setup.current.mode = "\luaescapestring{\moduleparameter{simpleslides}{mode}}" +if mplife.setup.current.mode == "life" then +    mplife.successive = mplife.gol_successive +else +    environment.loadluafile("eca") +    mplife.successive = mplife.eca_successive +end}} +{\ctxlua{mplife.successive = mplife.gol_successive}} + +%D The number of dead cells to add left and right / before and after +%D the initial frame.  \doifsomething{\moduleparameter{simpleslides}{extendxy}}{\ctxlua      {mplife.setup.current.extendx = tonumber("\luaescapestring{\moduleparameter{simpleslides}{extendxy}}") @@ -106,13 +120,27 @@  \doifsomething{\moduleparameter{simpleslides}{extendy}}{\ctxlua      {mplife.setup.current.extendy = tonumber("\luaescapestring{\moduleparameter{simpleslides}{extendy}}") }} -\doifsomething{\moduleparameter{simpleslides}{file}}{\ctxlua -    {mplife.setup.current.file = "\luaescapestring{\moduleparameter{simpleslides}{file}}" -     mplife.setup.current.init = gol.parse_file(mplife.setup.current.file) -     mplife.setup.current.last = mplife.setup.current.init }} - -\doifsomething{\moduleparameter{simpleslides}{rule}}{\ctxlua -    {mplife.setup.current.rule = gol.parse_rule("\luaescapestring{\moduleparameter{simpleslides}{rule}}") }} +\doifsomething{\moduleparameter{simpleslides}{file}}{\ctxlua{ +mplife.setup.current.file = "\luaescapestring{\moduleparameter{simpleslides}{file}}" +}} + +\startluacode +if mplife.setup.current.mode == "life" then +    mplife.setup.current.init = gol.parse_file(mplife.setup.current.file) +    mplife.setup.current.last = mplife.setup.current.init +else +    mplife.setup.current.init = eca.parse_file(mplife.setup.current.file) +    mplife.setup.current.framesize = math.floor(mplife.setup.current.aspect * mplife.setup.current.init:len()) +end +\stopluacode + +\doifsomething{\moduleparameter{simpleslides}{rule}}{\ctxlua{ +if mplife.setup.current.mode == "life" then +    mplife.setup.current.rule = gol.parse_rule("\luaescapestring{\moduleparameter{simpleslides}{rule}}")  +else +    mplife.setup.current.rule = eca.gen_rule(tonumber("\luaescapestring{\moduleparameter{simpleslides}{rule}}"))  +end +}}  %D We also use \METAPOST\ to draw the horizontal and vertical page backgrounds.  %D Backgrounds will be of solid color, the ornament gets the transparency.  | 
