-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path__init__.py
More file actions
55 lines (46 loc) · 1.7 KB
/
__init__.py
File metadata and controls
55 lines (46 loc) · 1.7 KB
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
bl_info = {
'name': 'Game Export',
'description': 'Configure settings and export from Blender to Unity with one click.',
'author': 'codec-xyz',
'version': (2, 0, 2),
'blender': (3, 4, 1),
'location': 'View3D',
'category': 'Import-Export',
}
DEV_MODE = False
def devPrint(*args):
if DEV_MODE: print(*args)
devPrint('--------------------------------------game_export init load----------------------------------------')
import sys
import importlib
PIP_MODULES = ['xxhash']
MODULES = ['settings', 'install', 'panel_preferences']
MODULES_CORE = ['asset', 'unity', 'export', 'panel_exportSettings', 'panel_objectSettings']
def dependenciesAreLoaded():
for module in PIP_MODULES:
if f'{__package__}.{module}' not in sys.modules: return False
return True
def loadModules(modules: 'list[str]'):
for module in modules:
moduleFullPath = f'{__package__}.{module}'
try:
if moduleFullPath in sys.modules: importlib.reload(sys.modules[moduleFullPath])
else: importlib.import_module(moduleFullPath)
except Exception as e:
print(f'{__package__}: module "{module}" could not be loaded')
print('\n'.join(e.args))
def registerModules(modules: 'list[str]'):
for module in modules:
try: sys.modules[f'{__package__}.{module}'].register()
except: ''
def unregisterModules(modules: 'list[str]'):
for module in reversed(modules):
try: sys.modules[f'{__package__}.{module}'].unregister()
except: ''
def register():
devPrint(f'{__package__}: running register()')
loadModules([*PIP_MODULES, *MODULES, *MODULES_CORE])
registerModules([*MODULES, *MODULES_CORE] if dependenciesAreLoaded() else MODULES)
def unregister():
devPrint(f'{__package__}: running unregister()')
unregisterModules([*MODULES, *MODULES_CORE])