forked from M-1-RLG/io_scene_cmb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
100 lines (82 loc) · 3.92 KB
/
__init__.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
93
94
95
96
97
98
99
100
bl_info = {
"name": "CMB Import",
"author": "M-1 (Discord: M-1#1972)",
"blender": (2, 90, 0),
"version": (1,0,0),
"location": "File > Import",
"warning": "This add-on is an early release and bugs may occur",
"description": "Import Grezzo's \"Ctr Model Binary\", \"Grezzo ARchive\" and \"Grezzo Scene Entity Binary\" file(s)",
"category": "Import-Export",
"wiki_url": "",
"tracker_url": "",
}
import bpy
from bpy.props import *
from bpy_extras.io_utils import ImportHelper
# ################################################################
# Import/Export
# ################################################################
class ImportCmb(bpy.types.Operator, ImportHelper):
bl_idname = "import.cmb"
bl_label = "Import CMB"
filename_ext = ".cmb"
filter_glob: bpy.props.StringProperty(default="*.cmb", options={'HIDDEN'})
files: bpy.props.CollectionProperty(type=bpy.types.OperatorFileListElement, options={'HIDDEN', 'SKIP_SAVE'})
directory: bpy.props.StringProperty(subtype='FILE_PATH', options={'HIDDEN', 'SKIP_SAVE'})
def execute( self, context ):
from .import_cmb import loadCmbFiles
return loadCmbFiles(self)
class ImportGar(bpy.types.Operator, ImportHelper):
bl_idname = "import.gar"
bl_label = "Import GAR"
filename_ext = ".gar"
filter_glob: bpy.props.StringProperty(default="*.gar", options={'HIDDEN'})
files: bpy.props.CollectionProperty(type=bpy.types.OperatorFileListElement, options={'HIDDEN', 'SKIP_SAVE'})
directory: bpy.props.StringProperty(subtype='FILE_PATH', options={'HIDDEN', 'SKIP_SAVE'})
def execute( self, context ):
from .gar import loadGarFiles
return loadGarFiles(self)
class ImportGseb(bpy.types.Operator, ImportHelper):
bl_idname = "import.gseb"
bl_label = "Import GSEB"
filename_ext = ".gseb"
filter_glob: bpy.props.StringProperty(default="*.gseb", options={'HIDDEN'})
files: bpy.props.CollectionProperty(type=bpy.types.OperatorFileListElement, options={'HIDDEN', 'SKIP_SAVE'})
directory: bpy.props.StringProperty(subtype='FILE_PATH', options={'HIDDEN', 'SKIP_SAVE'})
def execute( self, context ):
from .gseb import loadGsebFiles
return loadGsebFiles(self)
class ImportCtxb(bpy.types.Operator, ImportHelper):
bl_idname = "import.ctxb"
bl_label = "Import CTXB"
filename_ext = ".ctxb"
filter_glob: bpy.props.StringProperty(default="*.ctxb", options={'HIDDEN'})
files: bpy.props.CollectionProperty(type=bpy.types.OperatorFileListElement, options={'HIDDEN', 'SKIP_SAVE'})
directory: bpy.props.StringProperty(subtype='FILE_PATH', options={'HIDDEN', 'SKIP_SAVE'})
def execute( self, context ):
from .ctxb import loadCtxbFiles
return loadCtxbFiles(self)
# ################################################################
# Common
# ################################################################
def menu_func_import( self, context ):
self.layout.operator( ImportCmb.bl_idname, text="CtrModelBinary (.cmb)")
self.layout.operator( ImportGar.bl_idname, text="GrezzoARchive (.gar)")
self.layout.operator( ImportGseb.bl_idname, text="GrezzoSceneBinary (.gseb)")
self.layout.operator( ImportCtxb.bl_idname, text="CtrTeXtureBinary (.ctxb)")
def register():
print("Registering CMB\n")
bpy.utils.register_class(ImportCmb)
bpy.utils.register_class(ImportGar)
bpy.utils.register_class(ImportGseb)
bpy.utils.register_class(ImportCtxb)
bpy.types.TOPBAR_MT_file_import.append(menu_func_import)
def unregister():
print("Unregistering CMB\n")
bpy.utils.unregister_class(ImportCmb)
bpy.utils.unregister_class(ImportGar)
bpy.utils.unregister_class(ImportGseb)
bpy.utils.unregister_class(ImportCtxb)
bpy.types.TOPBAR_MT_file_import.remove(menu_func_import)
if __name__ == "__main__":
register()