summaryrefslogtreecommitdiffstats
path: root/Scripts
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2023-09-10 18:11:08 -0700
committeryum <yum.food.vr@gmail.com>2023-09-10 18:11:08 -0700
commit4f3b9382068a29731de664eb0810f9eb3a267905 (patch)
treed63d6755a42dc14013fd62bcbfcb077186b0fc66 /Scripts
parent3db7723aa5c16358f73e3e8d3bb20a959ce43d5d (diff)
Bugfix: eliminate dead-end in certain animator layers
Because the custom chatbox doesn't necessarily have an even multiple of `sync_params` character slots, some layers in the animator write N character slots while others write N-1. In the layers with only N-1 slots, they need something to do while slot N is being selected. This patch creates a return-home transition in that case.
Diffstat (limited to 'Scripts')
-rw-r--r--Scripts/generate_utils.py9
-rw-r--r--Scripts/libtastt.py11
2 files changed, 19 insertions, 1 deletions
diff --git a/Scripts/generate_utils.py b/Scripts/generate_utils.py
index 1e12103..7d231f9 100644
--- a/Scripts/generate_utils.py
+++ b/Scripts/generate_utils.py
@@ -23,6 +23,15 @@ class Config():
else:
return ceil(float_result)
+ def layerNeedsParity(self, which_layer):
+ num_cells = self.BOARD_ROWS * self.BOARD_COLS
+ layers_in_last_region = num_cells % self.CHARS_PER_SYNC
+ float_result = num_cells / self.CHARS_PER_SYNC
+ if which_layer >= layers_in_last_region:
+ return True
+ else:
+ return False
+
config = Config()
# Implementation detail. We use this parameter to return from the terminal
diff --git a/Scripts/libtastt.py b/Scripts/libtastt.py
index 5e216ca..4b4dda9 100644
--- a/Scripts/libtastt.py
+++ b/Scripts/libtastt.py
@@ -761,7 +761,16 @@ def generateFXLayer(which_layer: int, anim: libunity.UnityAnimator, layer:
dummy_param = generate_utils.getDummyParam()
anim.addTransitionBooleanCondition(state,
home_state_transition, dummy_param, False)
- pass
+
+ if generate_utils.config.layerNeedsParity(which_layer):
+ # There may be layers which never write to the text box. In this case,
+ # when those layers are turned on to write to that last region, they
+ # simply transition back to the default (idle) state.
+ home_state_transition = anim.addTransition(default_state)
+ select_param = generate_utils.getSelectParam()
+ i = generate_utils.config.numRegions(0) - 1
+ anim.addTransitionIntegerEqualityCondition(active_state,
+ home_state_transition, select_param, i)
# Generic toggle adding utility.
# Generates the layer and parameter.