From 9420b9504cb305f7e71155f9d1d82d1609b932cc Mon Sep 17 00:00:00 2001 From: Campbell Barton <ideasman42@gmail.com> Date: Fri, 22 Jul 2011 06:42:47 +0000 Subject: [PATCH] fix [#27949] r2121 Quake MAP exports incomplete brush data from 2.58.1 add default texture option back also added back options - scale - snap to whole value - face thickness - default brush --- io_scene_map/__init__.py | 31 ++++++++++++++++++++++++++++++- io_scene_map/export_map.py | 30 +++++++++++++++++++++++------- 2 files changed, 53 insertions(+), 8 deletions(-) diff --git a/io_scene_map/__init__.py b/io_scene_map/__init__.py index a9610ef5c..cc2654101 100644 --- a/io_scene_map/__init__.py +++ b/io_scene_map/__init__.py @@ -40,7 +40,7 @@ if "bpy" in locals(): import bpy -from bpy.props import StringProperty +from bpy.props import StringProperty, FloatProperty, BoolProperty from bpy_extras.io_utils import ExportHelper @@ -53,6 +53,35 @@ class ExportMAP(bpy.types.Operator, ExportHelper): filename_ext = ".map" filter_glob = StringProperty(default="*.map", options={'HIDDEN'}) + face_thickness = FloatProperty( + name="Face Thickness", + description=("Thickness given to geometry which can't be " + "converted into a brush"), + min=0.0001, max=10.0, + default=0.1, + ) + global_scale = FloatProperty( + name="Scale", + description="Scale everything by this value", + min=0.01, max=1000.0, + default=100.0, + ) + grid_snap = BoolProperty( + name="Grid Snap", + description="Round to whole numbers", + default=False, + ) + texture_null = StringProperty( + name="Tex Null", + description="Texture used when none is assigned", + default="NULL", + ) + texture_opts = StringProperty( + name="Tex Opts", + description="Brush texture options", + default='0 0 0 1 1 0 0 0', + ) + ''' def check(self, context): return axis_conversion_ensure(self, "axis_forward", "axis_up") diff --git a/io_scene_map/export_map.py b/io_scene_map/export_map.py index 8feb2cc83..b8f91ed4b 100644 --- a/io_scene_map/export_map.py +++ b/io_scene_map/export_map.py @@ -26,9 +26,8 @@ PREF_SCALE = 100 PREF_FACE_THICK = 0.1 PREF_GRID_SNAP = False # Quake 1/2? -# PREF_DEF_TEX_OPTS = Draw.Create(' 0 0 0 1 1\n') # not user settable yet # Quake 3+? -PREF_DEF_TEX_OPTS = ' 0 0 0 1 1 0 0 0\n' # not user settable yet +PREF_DEF_TEX_OPTS = '0 0 0 1 1 0 0 0' # not user settable yet PREF_NULL_TEX = 'NULL' # not user settable yet PREF_INVIS_TEX = 'common/caulk' @@ -80,7 +79,7 @@ def write_cube2brush(file, faces): file.write(PREF_NULL_TEX) # Texture stuff ignored for now - file.write(PREF_DEF_TEX_OPTS) + file.write(" %s\n" % PREF_DEF_TEX_OPTS) file.write('}\n') @@ -133,7 +132,7 @@ def write_face2brush(file, face): file.write(format_vec % co) file.write(image_text) # Texture stuff ignored for now - file.write(PREF_DEF_TEX_OPTS) + file.write(" %s\n" % PREF_DEF_TEX_OPTS) for co in new_vco[:3]: file.write(format_vec % co) @@ -143,7 +142,7 @@ def write_face2brush(file, face): file.write(PREF_INVIS_TEX) # Texture stuff ignored for now - file.write(PREF_DEF_TEX_OPTS) + file.write(" %s\n" % PREF_DEF_TEX_OPTS) # sides. if len(orig_vco) == 3: # Tri, it seemms tri brushes are supported. @@ -155,7 +154,7 @@ def write_face2brush(file, face): for co in orig_vco[i1], orig_vco[i2], new_vco[i2]: file.write(format_vec % co) file.write(PREF_INVIS_TEX) - file.write(PREF_DEF_TEX_OPTS) + file.write(" %s\n" % PREF_DEF_TEX_OPTS) file.write('}\n') @@ -331,7 +330,7 @@ def export_map(context, filepath): dummy_mesh.transform(ob.matrix_world * SCALE_MAT) if PREF_GRID_SNAP: - for v in dummy_mesh.verts: + for v in dummy_mesh.vertices: v.co[:] = v.co.to_tuple(0) # High quality normals @@ -464,8 +463,25 @@ NULL def save(operator, context, filepath=None, + global_scale=100.0, + face_thickness=0.1, + texture_null="NULL", + texture_opts='0 0 0 1 1 0 0 0', + grid_snap=False, ): + global PREF_SCALE + global PREF_FACE_THICK + global PREF_NULL_TEX + global PREF_DEF_TEX_OPTS + global PREF_GRID_SNAP + + PREF_SCALE = global_scale + PREF_FACE_THICK = face_thickness + PREF_NULL_TEX = texture_null + PREF_DEF_TEX_OPTS = texture_opts + PREF_GRID_SNAP = grid_snap + export_map(context, filepath) return {'FINISHED'} -- GitLab