summaryrefslogtreecommitdiffstats
path: root/Scripts/generate_params.py
blob: 6c189a109f4045b5de94abfd9f5d65c16c8e4986 (plain)
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
#!/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.2"
    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.BYTES_PER_CHAR):
        for i in range(0, generate_utils.NUM_LAYERS):
            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")
    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)

    append(args.old_params, generate(), args.new_params)