X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=blender_export.py;h=cc0eb21ecebf9bb2a02b5135648a7601f6815bd7;hb=74b2136d5b41b18e2eec698f1fd11b503aa1100a;hp=b49bf48553a6886d58ab57dc7dc3876aba21d699;hpb=23ba25574349652d86979fc787ec4b0214001333;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/blender_export.py b/blender_export.py index b49bf48..cc0eb21 100644 --- a/blender_export.py +++ b/blender_export.py @@ -484,7 +484,8 @@ class ent_worldinfo(Structure): ("pstr_author",c_uint32), # unused ("pstr_desc",c_uint32), # unused ("timezone",c_float), - ("pstr_skybox",c_uint32)] + ("pstr_skybox",c_uint32), + ("flags",c_uint32)] #} class ent_ccmd(Structure): @@ -547,6 +548,8 @@ class ent_cubemap(Structure):#{ ("placeholder",c_uint32*2)] #} +print( sizeof(ent_cubemap) ) + class ent_miniworld(Structure):#{ _fields_ = [("transform",mdl_transform), ("pstr_world",c_uint32), @@ -560,7 +563,8 @@ class ent_prop(Structure):#{ _fields_ = [("transform",mdl_transform), ("submesh_start",c_uint32), ("submesh_count",c_uint32), - ("flags",c_uint32)] + ("flags",c_uint32), + ("pstr_alias",c_uint32)] #} def obj_ent_type( obj ): @@ -1714,7 +1718,7 @@ def sr_compile( collection ): #} #-------------------------- - print( F'[SR] {i: 3}/{mesh_count} {obj.name:<40}', end='\r' ) + print( F'[SR] {i: 3}/{mesh_count} {obj.name:<40}' ) sr_compile_mesh( obj ) #} #} @@ -1934,7 +1938,17 @@ def sr_compile( collection ): worldinfo.pstr_name = sr_compile_string( obj_data.name ) worldinfo.pstr_author = sr_compile_string( obj_data.author ) worldinfo.pstr_desc = sr_compile_string( obj_data.desc ) - worldinfo.timezone = obj_data.timezone + + flags = 0x00 + + if obj_data.fix_time:#{ + worldinfo.timezone = obj_data.fixed_time + flags |= 0x1 + #} + else: + worldinfo.timezone = obj_data.timezone + + worldinfo.flags = flags worldinfo.pstr_skybox = sr_compile_string( obj_data.skybox ) sr_ent_push( worldinfo ) #} @@ -2021,10 +2035,12 @@ def sr_compile( collection ): #} elif ent_type == 'ent_prop':#{ prop = ent_prop() + obj_data = obj.SR_data.ent_prop[0] compile_obj_transform( obj, prop.transform ) prop.submesh_start, prop.submesh_count, _ = \ sr_compile_mesh_internal( obj ) - prop.flags = 0 + prop.flags = obj_data.flags + prop.pstr_alias = sr_compile_string( obj_data.alias ) sr_ent_push( prop ) #} #} @@ -3202,6 +3218,7 @@ class SR_OBJECT_ENT_AUDIO(bpy.types.PropertyGroup): class SR_OBJECT_ENT_MARKER(bpy.types.PropertyGroup): #{ alias: bpy.props.StringProperty() + flags: bpy.props.IntProperty() #} class SR_OBJECT_ENT_GLYPH(bpy.types.PropertyGroup): @@ -3409,8 +3426,24 @@ class SR_OBJECT_ENT_WORLD_INFO(bpy.types.PropertyGroup): name: bpy.props.StringProperty(name="Name") desc: bpy.props.StringProperty(name="Description") author: bpy.props.StringProperty(name="Author") - timezone: bpy.props.FloatProperty(name="Timezone(hrs) (UTC0 +hrs)") skybox: bpy.props.StringProperty(name="Skybox") + + fix_time: bpy.props.BoolProperty(name="Fix Time") + timezone: bpy.props.FloatProperty(name="Timezone(hrs) (UTC0 +hrs)") + fixed_time: bpy.props.FloatProperty(name="Fixed Time (0-1)") + + @staticmethod + def sr_inspector( layout, data ):#{ + layout.prop( data[0], 'name' ) + layout.prop( data[0], 'desc' ) + layout.prop( data[0], 'author' ) + + layout.prop( data[0], 'fix_time' ) + if data[0].fix_time: + layout.prop( data[0], 'fixed_time' ) + else: + layout.prop( data[0], 'timezone' ) + #} #} class SR_OBJECT_ENT_CCMD(bpy.types.PropertyGroup): @@ -3529,6 +3562,7 @@ class SR_OBJECT_PROPERTIES(bpy.types.PropertyGroup): ent_volume: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_VOLUME) ent_audio: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_AUDIO) ent_marker: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_MARKER) + ent_prop: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_MARKER) ent_glyph: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_GLYPH) ent_font: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_FONT) ent_traffic: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_TRAFFIC)