summaryrefslogtreecommitdiffstats
path: root/generate_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'generate_utils.py')
-rw-r--r--generate_utils.py47
1 files changed, 24 insertions, 23 deletions
diff --git a/generate_utils.py b/generate_utils.py
index 171857b..119714d 100644
--- a/generate_utils.py
+++ b/generate_utils.py
@@ -13,6 +13,7 @@ BOARD_ROWS=4
BOARD_COLS=44
INDEX_BITS=4
CHARS_PER_CELL=256
+BYTES_PER_CHAR=2
NUM_LAYERS=ceil((BOARD_ROWS * BOARD_COLS) / (2**INDEX_BITS))
@@ -63,29 +64,29 @@ def getLockWorldParam():
# Each layer controls a group of cells. There's only one letter per layer, thus
# this is also the name of the parameter which sets the letter for a layer.
-def getLayerParam(which_layer: int) -> str:
- return "TaSTT_L%02d" % which_layer
+def getLayerParam(which_layer: int, byte: int) -> str:
+ return "TaSTT_L%02dB%01d" % (which_layer, byte)
-def getLayerName(which_layer: int) -> str:
- return getLayerParam(which_layer)
+def getLayerName(which_layer: int, byte: int) -> str:
+ return getLayerParam(which_layer, byte)
-def getBlendParam(which_layer: int) -> str:
- return "TaSTT_L%02d_Blend" % which_layer
+def getBlendParam(which_layer: int, byte: int) -> str:
+ return "TaSTT_L%02dB%01d_Blend" % (which_layer, byte)
-def getDefaultStateName(which_layer):
- return "TaSTT_L%02d_Do_Nothing" % which_layer
+def getDefaultStateName(which_layer:int , byte: int):
+ return "TaSTT_L%02dB%01d_Do_Nothing" % (which_layer, byte)
-def getActiveStateName(which_layer):
- return "TaSTT_L%02d_Active" % which_layer
+def getActiveStateName(which_layer: int, byte: int):
+ return "TaSTT_L%02dB%01d_Active" % (which_layer, byte)
def getSelectStateName(which_layer, select):
- return "TaSTT_L%02d_S%02d" % (which_layer, select)
+ return "TaSTT_L%02d_S%02d_B%01d" % (which_layer, select, byte)
-def getBlendStateName(which_layer, select):
- return "TaSTT_L%02d_S%02d_Blend" % (which_layer, select)
+def getBlendStateName(which_layer, select, byte):
+ return "TaSTT_L%02d_S%02d_B%01d_Blend" % (which_layer, select, byte)
-def getLetterStateName(which_layer, select, letter):
- return "TaSTT_L%02d_S%02d_L%03d" % (which_layer, select, letter)
+def getLetterStateName(which_layer, select, letter, byte):
+ return "TaSTT_L%02d_S%02d_L%03d_B%01d" % (which_layer, select, letter, byte)
def getSelectParam() -> str:
return "TaSTT_Select"
@@ -101,34 +102,34 @@ def getBoardIndex(which_layer, select):
# those cells.
return (select * NUM_LAYERS + which_layer) % (BOARD_ROWS * BOARD_COLS)
-def getShaderParamByRowCol(row, col):
- return "_Letter_Row%02d_Col%02d" % (row, col)
+def getShaderParamByRowColByte(row, col, byte):
+ return "_Letter_Row%02d_Col%02d_Byte%01d" % (row, col, byte)
# Mapping from layer to shader param.
-def getShaderParam(which_layer, select):
+def getShaderParam(which_layer, select, byte):
index = getBoardIndex(which_layer, select)
col = index % BOARD_COLS
row = floor(index / BOARD_COLS)
- return getShaderParamByRowCol(row, col)
+ return getShaderParamByRowCol(row, col, byte)
# The name of the animation which writes `letter` at a specific position in the
# display.
-def getLetterAnimationName(row, col, letter):
- return "R%02dC%02dL%02d" % (row, col, letter)
+def getLetterAnimationName(row, col, letter, nth_byte):
+ return "R%02dC%02dL%02dB%01d" % (row, col, letter, nth_byte)
# The name of the animation which clears the entire board.
def getClearAnimationName():
return "TaSTT_Clear_Board"
-def getAnimationNameByLayerAndIndex(which_layer, select, letter):
+def getAnimationNameByLayerAndIndex(which_layer, select, letter, nth_byte):
index = getBoardIndex(which_layer, select)
col = index % BOARD_COLS
row = floor(index / BOARD_COLS)
- return "R%02dC%02dL%02d" % (row, col, letter)
+ return "R%02dC%02dL%02dB%01d" % (row, col, letter, nth_byte)
# Returns the path to the animation for the given shader parameter + letter.
def getAnimationPath(shader_param, letter):