This commit is contained in:
jane 2020-11-09 01:09:47 -05:00
parent 440f545d7d
commit e375726ae8
1 changed files with 26 additions and 5 deletions

View File

@ -1,5 +1,6 @@
import sys import sys
import json import json
import random
this = sys.modules[__name__] this = sys.modules[__name__]
@ -9,7 +10,9 @@ this.values = {
"stack": 0, "stack": 0,
"r": 0, "r": 0,
"g": 0, "g": 0,
"b": 0 "b": 0,
"tick": 0,
"index": 0
} }
@ -35,17 +38,33 @@ def sub(target, arg):
return res return res
def rand(target, arg):
return random.randrange(0, 255)
def _apply(target, arg, func):
if type(arg is int):
return func(target, arg)
elif type(arg is str) and arg in this.values:
return func(target, this.values[arg])
def apply(targets, args, func): def apply(targets, args, func):
for target in range(len(targets)): for target in range(len(targets)):
if this.values[targets[target]['channel']] != None: if this.values[targets[target]['channel']] != None:
this.values[targets[target]['channel']] = func( if target in args:
this.values[targets[target]['channel']], args[target]) this.values[targets[target]['channel']] = _apply(
this.values[targets[target]['channel']], args[target], func)
else:
this.values[targets[target]['channel']] = _apply(
this.values[targets[target]['channel']], 0, func)
this.instructions = { this.instructions = {
"CONSTANT": constant, "CONSTANT": constant,
"ADD": add, "ADD": add,
"SUB": sub "SUB": sub,
"RAND": rand
} }
@ -58,7 +77,9 @@ def pat(index, tick, previous_values):
for i in range(len(this.pattern)): for i in range(len(this.pattern)):
name = this.pattern[i]['instruction']['name'] name = this.pattern[i]['instruction']['name']
targets = this.pattern[i]['instruction']['targets'] targets = this.pattern[i]['instruction']['targets']
args = this.pattern[i]['instruction']['args'] args = []
if 'args' in this.pattern[i]['instruction']:
args = this.pattern[i]['instruction']['args']
if this.instructions[name] != None: if this.instructions[name] != None:
apply(targets, args, this.instructions[name]) apply(targets, args, this.instructions[name])
r = this.values["r"] r = this.values["r"]