-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig_controller.py
92 lines (58 loc) · 2.31 KB
/
config_controller.py
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
##############################################################################
# Imports Order: 3rd Party Imports, Python Built-ins, Custom Modules
##############################################################################
import bpy
import os
import string
import json
from . import export
##############################################################################
# Constants
##############################################################################
# Path to this script
SCRIPT = os.path.dirname(__file__)
# Relative path to the config file
CONFIG = "userdata\\openmaya_config.json"
# Relative path to the config template
CONFIG_TEMPLATE = "templates\\config_template.txt"
##############################################################################
# Classes
##############################################################################
classes = [] # Initialize the class array to be registered
##############################################################################
# Functions
##############################################################################
def fill_template(template, fields):
with open(template, "r") as f:
src = string.Template(f.read())
return src.substitute(fields)
def write_file(file, text):
with open(file, "w") as f:
f.write(text)
def update_config():
custom_levels_path = bpy.context.scene.level_properties.custom_levels_path
config_fields = {
"custom_levels_path": custom_levels_path,
}
content = fill_template(
os.path.join(SCRIPT, CONFIG_TEMPLATE),
config_fields,
)
write_file(os.path.join(SCRIPT, CONFIG), content)
def read_from_config(key):
try:
with open(os.path.join(SCRIPT, CONFIG), "r") as f:
return json.loads(f.read())[key]
except:
return 0
##############################################################################
# Registration
##############################################################################
def register():
for cls in classes: # Register all the classes
bpy.utils.register_class(cls)
def unregister():
for cls in reversed(classes): # Unregister all the classes
bpy.utils.unregister_class(cls)
# if __name__ == "__main__": # For internal Blender script testing
# register()