1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#!/usr/bin/env python3
import argparse
import generate_utils
import sys
PARAM_HEADER = """
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -1506855854, guid: 67cc4cb7839cd3741b63733d5adf0442, type: 3}
m_Name: TaSTT_params
m_EditorClassIdentifier:
parameters:
"""[1:]
INT_PARAM = """
- name: %PARAM_NAME%
valueType: 0
saved: 0
defaultValue: 0
"""[1:]
BOOL_PARAM = """
- name: %PARAM_NAME%
valueType: 2
saved: %SAVED%
defaultValue: 0
"""[1:]
FLOAT_PARAM = """
- name: %PARAM_NAME%
valueType: 1
saved: 0
defaultValue: %DEFAULT_FLOAT%
"""[1:]
def generate():
result = ""
# We're working with an 84-character board, and each FX layer is responsible
# for 8 of those characters.
params = {}
params["SAVED"] = "0"
params["DEFAULT_FLOAT"] = "0"
params["PARAM_NAME"] = generate_utils.getDummyParam()
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["PARAM_NAME"] = generate_utils.getEnableParam()
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["PARAM_NAME"] = generate_utils.getIndicator0Param()
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["PARAM_NAME"] = generate_utils.getIndicator1Param()
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["PARAM_NAME"] = generate_utils.getScaleParam()
params["DEFAULT_FLOAT"] = "0.1"
result += generate_utils.replaceMacros(FLOAT_PARAM, params)
params["DEFAULT_FLOAT"] = "0"
params["PARAM_NAME"] = generate_utils.getToggleParam()
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["PARAM_NAME"] = generate_utils.getSpeechNoiseToggleParam()
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["PARAM_NAME"] = generate_utils.getSpeechNoiseEnableParam()
params["SAVED"] = "1"
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["SAVED"] = "0"
params["PARAM_NAME"] = generate_utils.getLockWorldParam()
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["PARAM_NAME"] = generate_utils.getClearBoardParam()
result += generate_utils.replaceMacros(BOOL_PARAM, params)
params["PARAM_NAME"] = generate_utils.getSelectParam()
result += generate_utils.replaceMacros(INT_PARAM, params)
for byte in range(0, generate_utils.config.BYTES_PER_CHAR):
for i in range(0, generate_utils.config.CHARS_PER_SYNC):
params["PARAM_NAME"] = generate_utils.getBlendParam(i, byte)
result += generate_utils.replaceMacros(FLOAT_PARAM, params)
return result
def append(old_path, params, new_path):
merged = ""
with open(old_path, "r") as f:
merged = f.read()
merged += params
with open(new_path, "w") as f:
f.write(merged)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--old_params", type=str, help="The parameters to append to")
parser.add_argument("--new_params", type=str, help="The parameters to create")
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.old_params or not args.new_params:
print("--old_params and --new_params are both required",
file=sys.stderr)
parser.print_help()
parser.exit(1)
if not args.bytes_per_char or not args.chars_per_sync:
print("--bytes_per_char and --chars_per_sync required", file=sys.stderr)
parser.print_help()
parser.exit(1)
generate_utils.config.BYTES_PER_CHAR = int(args.bytes_per_char)
generate_utils.config.CHARS_PER_SYNC = int(args.chars_per_sync)
append(args.old_params, generate(), args.new_params)
|