Compare commits

..

4 Commits

Author SHA1 Message Date
stilobique 940bc14d77 Update export, to be more clear and readable. 2024-05-31 10:42:41 +02:00
stilobique d20a7d2198 Return an error if the placeholder export are empty or no children collection.
Update the docstring operator to be more clear.
2024-05-31 10:36:28 +02:00
stilobique e380e894d7 Add basic operator to setup a light env 2024-05-31 10:10:45 +02:00
stilobique 30531affba Add small docstring about method 2024-05-30 18:02:06 +02:00
4 changed files with 87 additions and 72 deletions
+3 -2
View File
@@ -4,6 +4,7 @@ from .ui.export import GRAOU_PT_panel
from .operators.outline import ConfigBlendScene from .operators.outline import ConfigBlendScene
from .operators.exports import ExportForFange from .operators.exports import ExportForFange
from .operators.misc import MakeBasicCollision from .operators.misc import MakeBasicCollision
from .operators.lighting import ConfigLighting
from .preference import GRAOU_AddonPreference from .preference import GRAOU_AddonPreference
from .properties.main import FangeProperties from .properties.main import FangeProperties
@@ -20,8 +21,8 @@ bl_info = {
} }
modules_class = [ modules_class = [
# Main Property # Main operators property
ExportForFange, MakeBasicCollision, ConfigBlendScene, ExportForFange, MakeBasicCollision, ConfigBlendScene, ConfigLighting,
# UI # UI
GRAOU_PT_panel, GRAOU_PT_panel,
# Preference # Preference
+8 -7
View File
@@ -5,7 +5,8 @@ from pathlib import Path
class ExportForFange(bpy.types.Operator): class ExportForFange(bpy.types.Operator):
"""Export a building for fange""" """Export a building for fange.
Requiert your blend file are write on your hard-drive."""
bl_idname = 'graou.building_export' bl_idname = 'graou.building_export'
bl_label = 'Easily export a building asset' bl_label = 'Easily export a building asset'
@@ -26,7 +27,6 @@ class ExportForFange(bpy.types.Operator):
def execute(self, context): def execute(self, context):
bpy.ops.object.select_all(action='DESELECT') bpy.ops.object.select_all(action='DESELECT')
print(f'[Pipeline] Start to export the building props.')
# Make a check if the file are saved on the disk # Make a check if the file are saved on the disk
if not bpy.data.is_saved: if not bpy.data.is_saved:
@@ -37,7 +37,10 @@ class ExportForFange(bpy.types.Operator):
self.report({'ERROR'}, 'Can\'t find the asset category.') self.report({'ERROR'}, 'Can\'t find the asset category.')
return {'CANCELLED'} return {'CANCELLED'}
if len(self.coll_layout.collection_children): if not len(self.coll_layout.children):
self.report({'WARNING'}, 'No children collection, nothing can be exported.')
return {'CANCELLED'}
for coll in self.coll_layout.children: for coll in self.coll_layout.children:
print(f'[Pipeline] Update "{coll.name}" mesh') print(f'[Pipeline] Update "{coll.name}" mesh')
child = bpy.data.collections.get(coll.name) child = bpy.data.collections.get(coll.name)
@@ -109,9 +112,6 @@ class ExportForFange(bpy.types.Operator):
self.set_instance_type() self.set_instance_type()
# for coll in coll_layout.children:
# print(f'[Pipeline] Check {coll}. Item type {type(coll)}')
self.report({'INFO'}, 'Placeholder exported') self.report({'INFO'}, 'Placeholder exported')
return {'FINISHED'} return {'FINISHED'}
@@ -138,7 +138,8 @@ class ExportForFange(bpy.types.Operator):
return Path() return Path()
@staticmethod @staticmethod
def get_asset_name(): def get_asset_name() -> str:
"""From the .blend file, return the blend name."""
abs_blend_path = Path(bpy.data.filepath) abs_blend_path = Path(bpy.data.filepath)
return abs_blend_path.stem return abs_blend_path.stem
+12
View File
@@ -0,0 +1,12 @@
import bpy
class ConfigLighting(bpy.types.Operator):
"""Add or conform a lighting build"""
bl_idname = 'graou.lighting'
bl_label = 'Config or update a lighting'
def execute(self, context):
print(f'[Pipeline] Start lighting operator')
return {'FINISHED'}
+2 -1
View File
@@ -1,5 +1,5 @@
import bpy import bpy
import os # import os
# from pathlib import Path # from pathlib import Path
# #
@@ -31,6 +31,7 @@ class GRAOU_PT_panel(bpy.types.Panel):
col.label(text='Main Config:') col.label(text='Main Config:')
col.operator('graou.build_scene', text='Init Scene', icon='OUTLINER') col.operator('graou.build_scene', text='Init Scene', icon='OUTLINER')
col.prop(context.scene.graou_props, 'socket_collection', text='Use socket', toggle=True) col.prop(context.scene.graou_props, 'socket_collection', text='Use socket', toggle=True)
col.operator('graou.lighting', text='Set basic lighting', icon='OUTLINER_OB_LIGHT')
layout.separator() layout.separator()