Temp ext fix

This commit is contained in:
luboslenco 2017-02-22 16:55:51 +01:00
parent 3a6f55161c
commit f39ab2a922
3 changed files with 52 additions and 32 deletions

View file

@ -67,7 +67,12 @@ def make_texture(image_node, tex_name):
assets.add(converted_path)
else:
# Link image path to assets
assets.add(armutils.safe_assetpath(image.filepath))
# TODO: Khamake converts .PNG to .jpg? Convert ext to lowercase on windows
if armutils.get_os() == 'win':
s = image.filepath.rsplit('.', 1)
assets.add(armutils.safe_assetpath(s[0] + '.' + s[1].lower()))
else:
assets.add(armutils.safe_assetpath(image.filepath))
# if image_format != 'RGBA32':

View file

@ -227,7 +227,7 @@ def init_properties():
bpy.types.Mesh.mesh_cached_verts = bpy.props.IntProperty(name="Last Verts", description="Number of vertices in last export", default=0)
bpy.types.Mesh.mesh_cached_edges = bpy.props.IntProperty(name="Last Edges", description="Number of edges in last export", default=0)
bpy.types.Mesh.mesh_aabb = bpy.props.FloatVectorProperty(name="AABB", size=3, default=[0,0,0])
bpy.types.Mesh.dynamic_usage = bpy.props.BoolProperty(name="Dynamic Data Usage", description="Mesh data can change at runtime", default=False)
bpy.types.Mesh.dynamic_usage = bpy.props.BoolProperty(name="Dynamic Usage", description="Mesh data can change at runtime", default=False)
bpy.types.Mesh.data_compressed = bpy.props.BoolProperty(name="Compress Data", description="Pack data into zip file", default=False)
bpy.types.Curve.mesh_cached = bpy.props.BoolProperty(name="Mesh Cached", description="No need to reexport curve data", default=False)
bpy.types.Curve.data_compressed = bpy.props.BoolProperty(name="Compress Data", description="Pack data into zip file", default=False)
@ -482,7 +482,7 @@ def init_properties():
bpy.types.Lamp.lamp_clip_start = bpy.props.FloatProperty(name="Clip Start", default=0.1)
bpy.types.Lamp.lamp_clip_end = bpy.props.FloatProperty(name="Clip End", default=50.0)
bpy.types.Lamp.lamp_fov = bpy.props.FloatProperty(name="Field of View", default=0.84)
bpy.types.Lamp.lamp_shadows_bias = bpy.props.FloatProperty(name="Shadows Bias", description="Depth offset for shadow acne", default=0.0002)
bpy.types.Lamp.lamp_shadows_bias = bpy.props.FloatProperty(name="Bias", description="Depth offset for shadow acne", default=0.0002)
bpy.types.Lamp.lamp_omni_shadows = bpy.props.BoolProperty(name="Omnidirectional Shadows", description="Fakes omnidirectional shadows by creating 6 directional lights - will result in preformance loss - usable for deferred renderers only", default=False)
if not 'Arm' in bpy.data.worlds:

View file

@ -44,8 +44,9 @@ class ObjectPropsPanel(bpy.types.Panel):
layout.prop(obj, 'game_visible')
else:
layout.prop(obj, 'hide_render')
layout.prop(obj, 'spawn')
layout.prop(obj, 'mobile')
row = layout.row(align=True)
row.prop(obj, 'spawn')
row.prop(obj, 'mobile')
if obj.type == 'MESH':
layout.prop(obj, 'instanced_children')
if obj.instanced_children:
@ -106,8 +107,9 @@ class ObjectPropsPanel(bpy.types.Panel):
row.prop(animitem, "start_prop")
row.prop(animitem, "end_prop")
layout.prop(animitem, "speed_prop")
layout.prop(animitem, "loop_prop")
layout.prop(animitem, "reflect_prop")
row = layout.row(align=True)
row.prop(animitem, "loop_prop")
row.prop(animitem, "reflect_prop")
class ModifiersPropsPanel(bpy.types.Panel):
bl_label = "Armory Props"
@ -166,19 +168,23 @@ class DataPropsPanel(bpy.types.Panel):
layout.prop(obj.data, 'is_mirror')
if obj.data.is_mirror == True:
layout.label('Resolution')
layout.prop(obj.data, 'mirror_resolution_x')
layout.prop(obj.data, 'mirror_resolution_y')
row = layout.row(align=True)
row.prop(obj.data, 'mirror_resolution_x')
row.prop(obj.data, 'mirror_resolution_y')
layout.prop(obj.data, 'frustum_culling')
layout.prop_search(obj.data, "renderpath_path", bpy.data, "node_groups")
elif obj.type == 'MESH' or obj.type == 'FONT' or obj.type == 'META':
layout.prop(obj.data, 'dynamic_usage')
layout.prop(obj.data, 'data_compressed')
row = layout.row(align=True)
row.prop(obj.data, 'dynamic_usage')
row.prop(obj.data, 'data_compressed')
layout.operator("arm.invalidate_cache")
elif obj.type == 'LAMP':
layout.prop(obj.data, 'lamp_clip_start')
layout.prop(obj.data, 'lamp_clip_end')
layout.prop(obj.data, 'lamp_fov')
layout.prop(obj.data, 'lamp_shadows_bias')
row = layout.row(align=True)
row.prop(obj.data, 'lamp_clip_start')
row.prop(obj.data, 'lamp_clip_end')
row = layout.row(align=False)
row.prop(obj.data, 'lamp_fov')
row.prop(obj.data, 'lamp_shadows_bias')
if obj.data.type == 'POINT':
layout.prop(obj.data, 'lamp_omni_shadows')
if obj.data.lamp_omni_shadows:
@ -274,12 +280,13 @@ class MaterialPropsPanel(bpy.types.Panel):
if mat == None:
return
layout.prop(mat, 'cast_shadow')
layout.prop(mat, 'receive_shadow')
layout.prop(mat, 'overlay')
row = layout.row(align=True)
row.prop(mat, 'cast_shadow')
row.prop(mat, 'receive_shadow')
layout.prop(bpy.data.worlds['Arm'], 'arm_material_advanced')
if bpy.data.worlds['Arm'].arm_material_advanced:
layout.prop(mat, 'overlay')
layout.prop(mat, 'override_cull')
if mat.override_cull:
layout.prop(mat, 'override_cull_mode')
@ -300,12 +307,14 @@ class MaterialPropsPanel(bpy.types.Panel):
layout.label('Height map')
layout.prop(mat, 'height_tess')
if mat.height_tess:
layout.prop(mat, 'height_tess_inner')
layout.prop(mat, 'height_tess_outer')
row = layout.row(align=True)
row.prop(mat, 'height_tess_inner')
row.prop(mat, 'height_tess_outer')
layout.prop(mat, 'height_tess_shadows')
if mat.height_tess_shadows:
layout.prop(mat, 'height_tess_shadows_inner')
layout.prop(mat, 'height_tess_shadows_outer')
row = layout.row(align=True)
row.prop(mat, 'height_tess_shadows_inner')
row.prop(mat, 'height_tess_shadows_outer')
layout.prop(mat, 'transluc_shadows')
layout.operator("arm.invalidate_material_cache")
@ -321,9 +330,10 @@ class WorldPropsPanel(bpy.types.Panel):
# wrd = bpy.context.world
wrd = bpy.data.worlds['Arm']
layout.prop(wrd, 'generate_irradiance')
row = layout.row(align=True)
row.prop(wrd, 'generate_irradiance')
if wrd.generate_irradiance:
layout.prop(wrd, 'generate_radiance')
row.prop(wrd, 'generate_radiance')
if wrd.generate_radiance:
layout.prop(wrd, 'generate_radiance_size')
@ -379,16 +389,19 @@ class ArmoryPlayerPanel(bpy.types.Panel):
layout.prop(wrd, make_utils.runtime_to_gapi())
layout.prop(wrd, 'arm_play_console')
if armutils.with_krom():
layout.prop(wrd, 'arm_play_live_patch')
row = layout.row(align=True)
row.prop(wrd, 'arm_play_live_patch')
if wrd.arm_play_live_patch:
layout.prop(wrd, 'arm_play_auto_build')
row.prop(wrd, 'arm_play_auto_build')
layout.operator("arm.render", icon="RENDER_STILL")
layout.prop(wrd, 'arm_cache_shaders')
layout.prop(wrd, 'arm_cache_compiler')
row = layout.row(align=True)
row.prop(wrd, 'arm_cache_shaders')
row.prop(wrd, 'arm_cache_compiler')
row = layout.row(align=True)
row.prop(wrd, 'arm_minimize')
row.prop(wrd, 'arm_optimize_mesh')
layout.prop(wrd, 'arm_gpu_processing')
layout.prop(wrd, 'arm_minimize')
layout.prop(wrd, 'arm_optimize_mesh')
layout.prop(wrd, 'arm_sampled_animation')
layout.prop(wrd, 'arm_deinterleaved_buffers')
layout.label('Libraries')
@ -428,8 +441,10 @@ class ArmoryProjectPanel(bpy.types.Panel):
layout.prop(wrd, 'arm_spawn_all_layers')
layout.label('Armory v' + wrd.arm_version)
layout.operator('arm.check_updates')
layout.operator('arm.open_manual')
layout.operator('arm.report_issue')
row = layout.row(align=True)
row.alignment = 'EXPAND'
row.operator('arm.open_manual')
row.operator('arm.report_issue')
class ArmoryPlayButton(bpy.types.Operator):
'''Launch player in new window'''