summaryrefslogtreecommitdiffstats
path: root/Scripts/libtastt.py
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/libtastt.py')
-rw-r--r--Scripts/libtastt.py42
1 files changed, 29 insertions, 13 deletions
diff --git a/Scripts/libtastt.py b/Scripts/libtastt.py
index 9efd0e9..3168517 100644
--- a/Scripts/libtastt.py
+++ b/Scripts/libtastt.py
@@ -165,9 +165,9 @@ def generateClearAnimation(anim_dir, guid_map):
letter = 0
- for byte in range(0, generate_utils.BYTES_PER_CHAR):
- for row in range(0, generate_utils.BOARD_ROWS):
- for col in range(0, generate_utils.BOARD_COLS):
+ for byte in range(0, generate_utils.config.BYTES_PER_CHAR):
+ for row in range(0, generate_utils.config.BOARD_ROWS):
+ for col in range(0, generate_utils.config.BOARD_COLS):
curve = curve_template.copy()
for keyframe in curve.mapping['curve'].mapping['m_Curve'].sequence:
keyframe.mapping['value'] = str(letter +
@@ -294,14 +294,14 @@ def generateAnimations(anim_dir, guid_map):
anim_clip.mapping['m_EditorCurves'].sequence = []
# To support more languages, we use 2 bytes per character, giving us a 64K character set.
- for byte in range(0, generate_utils.BYTES_PER_CHAR):
- for row in range(0, generate_utils.BOARD_ROWS):
+ for byte in range(0, generate_utils.config.BYTES_PER_CHAR):
+ for row in range(0, generate_utils.config.BOARD_ROWS):
print("Generating letter animations (row {}/{}) (byte {}/2)".format(row,
- generate_utils.BOARD_ROWS, byte), file=sys.stderr)
- for col in range(0, generate_utils.BOARD_COLS):
+ generate_utils.config.BOARD_ROWS, byte), file=sys.stderr)
+ for col in range(0, generate_utils.config.BOARD_COLS):
for letter in range(0, 2):
if letter == 1:
- letter = generate_utils.CHARS_PER_CELL - 1
+ letter = generate_utils.config.CHARS_PER_CELL - 1
# Make a deep copy of the templates
node = anim_node.copy()
@@ -348,9 +348,9 @@ def generateFXController(anim: libunity.UnityAnimator) -> typing.Dict[int, libun
anim.addParameter(generate_utils.getScaleParam(), float)
layers = {}
- for byte in range(0, generate_utils.BYTES_PER_CHAR):
+ for byte in range(0, generate_utils.config.BYTES_PER_CHAR):
layers[byte] = {}
- for i in range(0, generate_utils.NUM_LAYERS):
+ for i in range(0, generate_utils.config.CHARS_PER_SYNC):
anim.addParameter(generate_utils.getBlendParam(i, byte), float)
layer = anim.addLayer(generate_utils.getLayerName(i, byte))
@@ -375,7 +375,7 @@ def generateFXLayer(which_layer: int, anim: libunity.UnityAnimator, layer:
enable_param, True)
select_states = {}
- for i in range(0, generate_utils.NUM_REGIONS):
+ for i in range(0, generate_utils.config.numRegions(which_layer)):
dx = i * 200
dy = 200
@@ -387,7 +387,7 @@ def generateFXLayer(which_layer: int, anim: libunity.UnityAnimator, layer:
guid_lo = guid_map[anim_lo_path]
anim_hi_path = os.path.join(gen_anim_dir,
generate_utils.getAnimationNameByLayerAndIndex(
- which_layer, i, generate_utils.CHARS_PER_CELL - 1, byte) + \
+ which_layer, i, generate_utils.config.CHARS_PER_CELL - 1, byte) + \
".anim")
guid_hi = guid_map[anim_hi_path]
@@ -490,7 +490,7 @@ def generateFX(guid_map, gen_anim_dir):
layers = generateFXController(anim)
# TODO(yum) parallelize
- for byte in range(0, generate_utils.BYTES_PER_CHAR):
+ for byte in range(0, generate_utils.config.BYTES_PER_CHAR):
for which_layer, layer in layers[byte].items():
print("Generating layer {}/{}".format(which_layer, len(layers[byte].items())), file=sys.stderr)
generateFXLayer(which_layer, anim, layer, gen_anim_dir, byte)
@@ -547,6 +547,8 @@ def parseArgs():
"which all generated animations are placed.")
parser.add_argument("--guid_map", type=str, help="The path to a file which will store guids")
parser.add_argument("--fx_dest", type=str, help="The path at which to save the generated FX controller")
+ parser.add_argument("--bytes_per_char", type=str, help="The number of bytes to use to represent each character")
+ parser.add_argument("--chars_per_sync", type=str, help="The number of characters to send on each sync event")
args = parser.parse_args()
if not args.gen_dir:
@@ -569,6 +571,13 @@ if __name__ == "__main__":
args = parseArgs()
if args.cmd == "gen_anims":
+ if not args.bytes_per_char or not args.chars_per_sync:
+ print("--bytes_per_char and --chars_per_sync required", file=sys.stderr)
+ sys.exit(1)
+
+ generate_utils.config.BYTES_PER_CHAR = int(args.bytes_per_char)
+ generate_utils.config.CHARS_PER_SYNC = int(args.chars_per_sync)
+
guid_map = {}
with open(args.guid_map, 'rb') as f:
guid_map = pickle.load(f)
@@ -579,6 +588,13 @@ if __name__ == "__main__":
with open(args.guid_map, 'wb') as f:
pickle.dump(guid_map, f)
elif args.cmd == "gen_fx":
+ if not args.bytes_per_char or not args.chars_per_sync:
+ print("--bytes_per_char and --chars_per_sync required", file=sys.stderr)
+ sys.exit(1)
+
+ generate_utils.config.BYTES_PER_CHAR = int(args.bytes_per_char)
+ generate_utils.config.CHARS_PER_SYNC = int(args.chars_per_sync)
+
guid_map = {}
with open(args.guid_map, 'rb') as f:
guid_map = pickle.load(f)