feat(Blenvy): ui tweaks
This commit is contained in:
parent
0cf3ec99cb
commit
29c8eba49c
|
@ -109,3 +109,5 @@ General issues:
|
||||||
- [ ] change scene selector to work on actual scenes aka to deal with renamed scenes
|
- [ ] change scene selector to work on actual scenes aka to deal with renamed scenes
|
||||||
- [x] fix asset file selection
|
- [x] fix asset file selection
|
||||||
- [x] change "assets" tab to "levels"/worlds tab & modify UI accordingly
|
- [x] change "assets" tab to "levels"/worlds tab & modify UI accordingly
|
||||||
|
- [ ] add option to 'split out' meshes from blueprints ?
|
||||||
|
- [ ] ie considering meshletts etc , it would make sense to keep blueprints seperate from purely mesh gltfs
|
|
@ -15,7 +15,8 @@ def prepare_and_export():
|
||||||
# determine changed objects
|
# determine changed objects
|
||||||
per_scene_changes = get_changes_per_scene(settings=blenvy)
|
per_scene_changes = get_changes_per_scene(settings=blenvy)
|
||||||
# determine changed parameters
|
# determine changed parameters
|
||||||
setting_changes = False # get_setting_changes()
|
setting_changes = get_setting_changes()
|
||||||
|
print("setting_changes", setting_changes)
|
||||||
# do the actual export
|
# do the actual export
|
||||||
blenvy.auto_export.dry_run = 'NO_EXPORT'#'DISABLED'#
|
blenvy.auto_export.dry_run = 'NO_EXPORT'#'DISABLED'#
|
||||||
auto_export(per_scene_changes, setting_changes, blenvy)
|
auto_export(per_scene_changes, setting_changes, blenvy)
|
||||||
|
|
|
@ -37,6 +37,7 @@ def get_setting_changes():
|
||||||
|
|
||||||
previous_gltf_settings = load_settings(".blenvy_gltf_settings_previous")
|
previous_gltf_settings = load_settings(".blenvy_gltf_settings_previous")
|
||||||
current_gltf_settings = load_settings(".blenvy_gltf_settings")
|
current_gltf_settings = load_settings(".blenvy_gltf_settings")
|
||||||
|
print("previous_gltf_settings", previous_gltf_settings, "current_gltf_settings", current_gltf_settings)
|
||||||
gltf_settings_changed = not are_settings_identical(previous_gltf_settings, current_gltf_settings)
|
gltf_settings_changed = not are_settings_identical(previous_gltf_settings, current_gltf_settings)
|
||||||
|
|
||||||
# write the new settings to the old settings
|
# write the new settings to the old settings
|
||||||
|
|
|
@ -83,7 +83,7 @@ class AutoExportTracker(PropertyGroup):
|
||||||
print("last operators", ops)
|
print("last operators", ops)
|
||||||
for op in ops:
|
for op in ops:
|
||||||
print("operator", op)"""
|
print("operator", op)"""
|
||||||
active_operator = getattr(bpy.context.active_operator, 'active_operator' , None)
|
active_operator = getattr(bpy.context, 'active_operator' , None)
|
||||||
if active_operator is not None:
|
if active_operator is not None:
|
||||||
#print("Operator", active_operator.bl_label, active_operator.bl_idname)
|
#print("Operator", active_operator.bl_label, active_operator.bl_idname)
|
||||||
if active_operator.bl_idname == "EXPORT_SCENE_OT_gltf" and active_operator.gltf_export_id == "gltf_auto_export":
|
if active_operator.bl_idname == "EXPORT_SCENE_OT_gltf" and active_operator.gltf_export_id == "gltf_auto_export":
|
||||||
|
|
|
@ -4,6 +4,7 @@ from .assets_scan import get_main_scene_assets_tree
|
||||||
from .asset_helpers import get_user_assets, does_asset_exist
|
from .asset_helpers import get_user_assets, does_asset_exist
|
||||||
|
|
||||||
def draw_assets(layout, name, title, asset_registry, target_type, target_name, editable=True, user_assets= [], generated_assets = []):
|
def draw_assets(layout, name, title, asset_registry, target_type, target_name, editable=True, user_assets= [], generated_assets = []):
|
||||||
|
nesting_indent = 0.05
|
||||||
number_of_user_assets = len(user_assets)
|
number_of_user_assets = len(user_assets)
|
||||||
number_of_generated_assets = len(generated_assets)
|
number_of_generated_assets = len(generated_assets)
|
||||||
|
|
||||||
|
@ -20,7 +21,6 @@ def draw_assets(layout, name, title, asset_registry, target_type, target_name, e
|
||||||
add_possible = does_asset_exist(target, {"path": asset_registry.asset_path_selector}) #"name": asset_registry.asset_name_selector,
|
add_possible = does_asset_exist(target, {"path": asset_registry.asset_path_selector}) #"name": asset_registry.asset_name_selector,
|
||||||
|
|
||||||
if header:
|
if header:
|
||||||
|
|
||||||
row = header.row()
|
row = header.row()
|
||||||
row.alert = add_possible
|
row.alert = add_possible
|
||||||
|
|
||||||
|
@ -38,9 +38,6 @@ def draw_assets(layout, name, title, asset_registry, target_type, target_name, e
|
||||||
add_asset.asset_type = asset_registry.asset_type_selector
|
add_asset.asset_type = asset_registry.asset_type_selector
|
||||||
add_asset.asset_path = asset_registry.asset_path_selector
|
add_asset.asset_path = asset_registry.asset_path_selector
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if panel:
|
if panel:
|
||||||
if editable:
|
if editable:
|
||||||
row = panel.row()
|
row = panel.row()
|
||||||
|
@ -61,16 +58,17 @@ def draw_assets(layout, name, title, asset_registry, target_type, target_name, e
|
||||||
add_asset.asset_type = asset_registry.asset_type_selector
|
add_asset.asset_type = asset_registry.asset_type_selector
|
||||||
add_asset.asset_path = asset_registry.asset_path_selector"""
|
add_asset.asset_path = asset_registry.asset_path_selector"""
|
||||||
|
|
||||||
panel.separator()
|
#panel.separator()
|
||||||
|
|
||||||
for asset in user_assets:
|
for asset in user_assets:
|
||||||
row = panel.row()
|
row = panel.row()
|
||||||
split = row.split(factor=0.005)
|
split = row.split(factor=nesting_indent)
|
||||||
col = split.column()
|
col = split.column()
|
||||||
col.label(text=" ")
|
col.label(text=" ")
|
||||||
col = split.column()
|
col = split.column()
|
||||||
|
|
||||||
row = col.row()
|
row = col.row()
|
||||||
|
row.label(icon="ASSET_MANAGER")
|
||||||
row.prop(asset, "name", text="")
|
row.prop(asset, "name", text="")
|
||||||
row.label(text=asset.path)
|
row.label(text=asset.path)
|
||||||
asset_selector = row.operator(operator="asset.open_filebrowser", text="", icon="FILE_FOLDER")
|
asset_selector = row.operator(operator="asset.open_filebrowser", text="", icon="FILE_FOLDER")
|
||||||
|
@ -80,11 +78,11 @@ def draw_assets(layout, name, title, asset_registry, target_type, target_name, e
|
||||||
remove_asset.target_name = target_name
|
remove_asset.target_name = target_name
|
||||||
remove_asset.asset_path = asset.path
|
remove_asset.asset_path = asset.path
|
||||||
|
|
||||||
for asset in generated_assets:
|
'''for asset in generated_assets:
|
||||||
row = panel.row()
|
row = panel.row()
|
||||||
#row.label(text=asset.name)
|
#row.label(text=asset.name)
|
||||||
#row.label(text=asset.path)
|
#row.label(text=asset.path)
|
||||||
split = row.split(factor=0.005)
|
split = row.split(factor=nesting_indent)
|
||||||
col = split.column()
|
col = split.column()
|
||||||
col.label(text=" ")
|
col.label(text=" ")
|
||||||
col = split.column()
|
col = split.column()
|
||||||
|
@ -97,7 +95,7 @@ def draw_assets(layout, name, title, asset_registry, target_type, target_name, e
|
||||||
"""remove_asset = row.operator(operator="bevyassets.remove", text="", icon="TRASH")
|
"""remove_asset = row.operator(operator="bevyassets.remove", text="", icon="TRASH")
|
||||||
remove_asset.target_type = target_type
|
remove_asset.target_type = target_type
|
||||||
remove_asset.target_name = target_name
|
remove_asset.target_name = target_name
|
||||||
remove_asset.asset_path = asset.path"""
|
remove_asset.asset_path = asset.path"""'''
|
||||||
|
|
||||||
|
|
||||||
return panel
|
return panel
|
||||||
|
|
|
@ -5,6 +5,27 @@ from ..assets.asset_helpers import get_user_assets, get_generated_assets
|
||||||
|
|
||||||
from ..assets.ui import draw_assets
|
from ..assets.ui import draw_assets
|
||||||
|
|
||||||
|
|
||||||
|
def draw_blueprints(layout, name, title, generated_assets):
|
||||||
|
nesting_indent = 0.05
|
||||||
|
number_of_generated_assets = len(generated_assets)
|
||||||
|
|
||||||
|
header, panel = layout.panel(f"assets{name}", default_closed=True)
|
||||||
|
header.label(text=title + f"({number_of_generated_assets})", icon="XRAY")
|
||||||
|
|
||||||
|
if panel:
|
||||||
|
for asset in generated_assets:
|
||||||
|
row = panel.row()
|
||||||
|
split = row.split(factor=nesting_indent)
|
||||||
|
col = split.column()
|
||||||
|
col.label(text=" ")
|
||||||
|
col = split.column()
|
||||||
|
|
||||||
|
sub_header, sub_panel = col.panel(f"assets_sub{asset.name}", default_closed=False)
|
||||||
|
sub_header.label(text=f"{asset.name} ({asset.path})", icon="XRAY")
|
||||||
|
if sub_panel:
|
||||||
|
sub_panel.label(text=" some stuff")
|
||||||
|
|
||||||
class GLTF_PT_auto_export_blueprints_list(bpy.types.Panel):
|
class GLTF_PT_auto_export_blueprints_list(bpy.types.Panel):
|
||||||
bl_space_type = 'VIEW_3D'
|
bl_space_type = 'VIEW_3D'
|
||||||
bl_region_type = 'UI'
|
bl_region_type = 'UI'
|
||||||
|
|
|
@ -137,8 +137,6 @@ class BlenvyManager(PropertyGroup):
|
||||||
bpy.types.WindowManager.blenvy = PointerProperty(type=BlenvyManager)
|
bpy.types.WindowManager.blenvy = PointerProperty(type=BlenvyManager)
|
||||||
|
|
||||||
# unsure
|
# unsure
|
||||||
# you can add components to both objects & collections
|
|
||||||
#bpy.types.Object.components_meta = PointerProperty(type=ComponentsMeta)
|
|
||||||
bpy.types.Collection.always_export = BoolProperty(default=False, description="always export this blueprint, regardless of changed status") # FIXME: not sure about this one
|
bpy.types.Collection.always_export = BoolProperty(default=False, description="always export this blueprint, regardless of changed status") # FIXME: not sure about this one
|
||||||
bpy.types.Scene.always_export = BoolProperty(default=False, description="always export this blueprint, regardless of changed status") # FIXME: not sure about this one
|
bpy.types.Scene.always_export = BoolProperty(default=False, description="always export this blueprint, regardless of changed status") # FIXME: not sure about this one
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ from types import SimpleNamespace
|
||||||
import bpy
|
import bpy
|
||||||
from ..assets.asset_helpers import get_generated_assets, get_user_assets
|
from ..assets.asset_helpers import get_generated_assets, get_user_assets
|
||||||
from ..assets.ui import draw_assets
|
from ..assets.ui import draw_assets
|
||||||
|
from ..blueprints.ui import draw_blueprints
|
||||||
|
|
||||||
class Blenvy_levels(bpy.types.Panel):
|
class Blenvy_levels(bpy.types.Panel):
|
||||||
bl_space_type = 'VIEW_3D'
|
bl_space_type = 'VIEW_3D'
|
||||||
|
@ -18,7 +19,7 @@ class Blenvy_levels(bpy.types.Panel):
|
||||||
layout.use_property_split = True
|
layout.use_property_split = True
|
||||||
layout.use_property_decorate = False # No animation.
|
layout.use_property_decorate = False # No animation.
|
||||||
blenvy = context.window_manager.blenvy
|
blenvy = context.window_manager.blenvy
|
||||||
layout.operator(operator="bevyassets.test")
|
layout.operator(operator="bevyassets.test", text="Generate")
|
||||||
|
|
||||||
asset_registry = context.window_manager.assets_registry
|
asset_registry = context.window_manager.assets_registry
|
||||||
blueprints_registry = context.window_manager.blueprints_registry
|
blueprints_registry = context.window_manager.blueprints_registry
|
||||||
|
@ -54,7 +55,7 @@ class Blenvy_levels(bpy.types.Panel):
|
||||||
col = split.column()
|
col = split.column()
|
||||||
|
|
||||||
scene_assets_panel = draw_assets(layout=col, name=f"{scene.name}_assets", title=f"Assets", asset_registry=asset_registry, user_assets=user_assets, generated_assets=generated_assets, target_type="SCENE", target_name=scene.name)
|
scene_assets_panel = draw_assets(layout=col, name=f"{scene.name}_assets", title=f"Assets", asset_registry=asset_registry, user_assets=user_assets, generated_assets=generated_assets, target_type="SCENE", target_name=scene.name)
|
||||||
|
scene_blueprints_panel = draw_blueprints(layout=col, name=f"{scene.name}_blueprints", title=f"Blueprints", generated_assets=generated_assets, )
|
||||||
|
|
||||||
settings = {"blueprints_path": "blueprints", "export_gltf_extension": ".glb"}
|
settings = {"blueprints_path": "blueprints", "export_gltf_extension": ".glb"}
|
||||||
settings = SimpleNamespace(**settings)
|
settings = SimpleNamespace(**settings)
|
||||||
|
|
Loading…
Reference in New Issue