('ent_font_variant', 'Font:Variant', '', 10 ),
('ent_traffic', 'Traffic Model', '', 11 ),
('ent_skateshop', 'Skate Shop', '', 12 ),
- ('ent_camera', 'Camera', '', 13 )
+ ('ent_camera', 'Camera', '', 13 ),
+ ('ent_swspreview', 'Workshop Preview', '', 14 )
]
def get_entity_enum_id( alias ):
("id_camera",c_uint32)]
#}
+class ent_swspreview(Structure):
+#{
+ _fields_ = [("id_camera",c_uint32),
+ ("id_display",c_uint32),
+ ("id_display1",c_uint32)]
+#}
+
class ent_camera(Structure):
#{
_fields_ = [("transform",mdl_transform),
elif ent_type == 'ent_camera': #{
cam = ent_camera()
compile_obj_transform( obj, cam.transform )
- cam.fov = obj.data.angle
+ cam.fov = obj.data.angle * 45.0
sr_ent_push(cam)
#}
elif ent_type == 'ent_gate': #{
compile_obj_transform( obj, skateshop.transform )
sr_ent_push(skateshop)
#}
+ elif ent_type == 'ent_swspreview':#{
+ workshop_preview = ent_swspreview()
+ obj_data = obj.SR_data.ent_swspreview[0]
+ workshop_preview.id_display = sr_entity_id( obj_data.mark_display )
+ workshop_preview.id_display1 = sr_entity_id( obj_data.mark_display1)
+ workshop_preview.id_camera = sr_entity_id( obj_data.cam )
+ sr_ent_push( workshop_preview )
+ #}
#}
#}
s1 = c.split(factor=0.3)
c = s1.column()
row = c.row()
- lbl = chr(item.utf32) if item.utf32 >= 32 and item.utf32 <= 126 else 'ERR'
+ lbl = chr(item.utf32) if item.utf32 >= 32 and item.utf32 <= 126 else \
+ f'x{item.utf32:x}'
row.label(text=lbl)
c = s1.column()
c.prop( item, 'utf32', text='', emboss=True )
poll=lambda self,obj: sr_filter_ent_type(obj,['ent_camera']))
#}
+class SR_OBJECT_ENT_WORKSHOP_PREVIEW(bpy.types.PropertyGroup):
+#{
+ mark_display: bpy.props.PointerProperty( \
+ type=bpy.types.Object, name="Board Display", \
+ poll=lambda self,obj: sr_filter_ent_type(obj,['ent_marker']))
+ mark_display1: bpy.props.PointerProperty( \
+ type=bpy.types.Object, name="Board Display (other side)", \
+ poll=lambda self,obj: sr_filter_ent_type(obj,['ent_marker']))
+ cam: bpy.props.PointerProperty( \
+ type=bpy.types.Object, name="Viewpoint", \
+ poll=lambda self,obj: sr_filter_ent_type(obj,['ent_camera']))
+#}
+
class SR_OBJECT_PROPERTIES(bpy.types.PropertyGroup):
#{
ent_gate: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_GATE)
ent_font: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_FONT)
ent_traffic: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_TRAFFIC)
ent_skateshop: bpy.props.CollectionProperty(type=SR_OBJECT_ENT_SKATESHOP)
+ ent_swspreview: \
+ bpy.props.CollectionProperty(type=SR_OBJECT_ENT_WORKSHOP_PREVIEW)
+
ent_type: bpy.props.EnumProperty(
name="Type",
items=sr_entity_list,
if info:
cv_draw_ucube( info.matrix_world, cc2, info_cu, info_co )
#}
+ elif ent_type == 'ent_swspreview':#{
+ cc1 = (0.4,0.9,0.2)
+ data = obj.SR_data.ent_swspreview[0]
+ display = data.mark_display
+ display1 = data.mark_display1
+ display_cu = Vector((0.3,1.2,0.1))*0.5
+ display_co = Vector((0.0,0.0,0.1))*0.5
+ if display:
+ cv_draw_ucube( display.matrix_world, cc1, display_cu, display_co)
+ if display1:
+ cv_draw_ucube(display1.matrix_world, cc1, display_cu, display_co)
+ #}
#}
#}
SR_OBJECT_ENT_GLYPH_ENTRY,\
SR_UL_FONT_VARIANT_LIST,SR_UL_FONT_GLYPH_LIST,\
SR_OBJECT_ENT_FONT,SR_OBJECT_ENT_TRAFFIC,SR_OBJECT_ENT_SKATESHOP,\
+ SR_OBJECT_ENT_WORKSHOP_PREVIEW,\
\
SR_OBJECT_PROPERTIES, SR_LIGHT_PROPERTIES, SR_BONE_PROPERTIES,
SR_MESH_PROPERTIES, SR_MATERIAL_PROPERTIES \