generated from stilobique/BlenderTemplate
Make a class panel to easily draw each class
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import bpy
|
||||
|
||||
# UI and Interface
|
||||
from .ui.asset import GRAOU_PT_asset
|
||||
from .ui.asset import GraouPanel_asset
|
||||
from .ui.export import GRAOU_PT_export
|
||||
from .ui.icon import GRAOU_PT_thumbnail
|
||||
from .ui.icon import GraouPanel_thumbnail
|
||||
from .ui.setup import GRAOU_PT_setup
|
||||
# All operators
|
||||
from .operators.exports import ExportForFange
|
||||
@@ -29,8 +29,8 @@ bl_info = {
|
||||
modules_class = [
|
||||
# Main operators property
|
||||
ExportForFange, MakeBasicCollision, ConfigBlendScene, ConfigLighting,
|
||||
# UI
|
||||
GRAOU_PT_asset, GRAOU_PT_export, GRAOU_PT_thumbnail, GRAOU_PT_setup,
|
||||
# UI, the order are the way to select how show each panel
|
||||
GRAOU_PT_setup, GraouPanel_asset, GRAOU_PT_export, GraouPanel_thumbnail,
|
||||
# Preference
|
||||
GRAOU_AddonPreference, FangeProperties
|
||||
]
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
import bpy
|
||||
from .main import GraouPanel
|
||||
|
||||
|
||||
class GRAOU_PT_asset(bpy.types.Panel):
|
||||
class GraouPanel_asset(GraouPanel):
|
||||
bl_idname = 'GRAOU_PT_asset'
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
bl_label = 'Generate Assets'
|
||||
bl_category = 'Graou Studio'
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.label(text='Asset:')
|
||||
layout.operator('graou.make_collision', text='Generate collision', icon='MOD_PHYSICS')
|
||||
|
||||
@@ -1,45 +1,13 @@
|
||||
import bpy
|
||||
# import os
|
||||
|
||||
# from pathlib import Path
|
||||
#
|
||||
# preview_collection = {}
|
||||
# icon_sauropod_path = Path(os.path.dirname(os.path.abspath(__file__)), "icons")
|
||||
#
|
||||
# pcoll = bpy.utils.previews.new()
|
||||
#
|
||||
# for entry in os.scandir(icon_sauropod_path):
|
||||
# if entry.name.endswith(".png"):
|
||||
# name = os.path.splitext(entry.name)[0]
|
||||
# print(f'[Pipeline] Add icon "{name}"')
|
||||
# pcoll.load(name.upper(), entry.path, "IMAGE")
|
||||
from .main import GraouPanel
|
||||
|
||||
|
||||
class GRAOU_PT_export(bpy.types.Panel):
|
||||
class GRAOU_PT_export(GraouPanel):
|
||||
bl_idname = 'GRAOU_PT_MAIN'
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
bl_label = 'Export'
|
||||
bl_category = 'Graou Studio'
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
# layout.label(text='Graou Pipeline', icon_value=pcoll["GRAOU"].icon_id)
|
||||
|
||||
col = layout.column(align=True)
|
||||
col.label(text='Main Config:')
|
||||
col.operator('graou.build_scene', text='Init Scene', icon='OUTLINER')
|
||||
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.label(text='Asset:')
|
||||
layout.operator('graou.make_collision', text='Generate collision', icon='MOD_PHYSICS')
|
||||
|
||||
layout.separator()
|
||||
|
||||
layout.label(text='Export scene:')
|
||||
box = layout.box()
|
||||
box.label(text='Sanity Check')
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
import bpy
|
||||
from .main import GraouPanel
|
||||
|
||||
|
||||
class GRAOU_PT_thumbnail(bpy.types.Panel):
|
||||
class GraouPanel_thumbnail(GraouPanel):
|
||||
bl_idname = 'GRAOU_PT_thumbnail'
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
bl_label = 'Thumbnail'
|
||||
bl_category = 'Graou Studio'
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import bpy
|
||||
# import os
|
||||
|
||||
# from pathlib import Path
|
||||
#
|
||||
# preview_collection = {}
|
||||
# icon_sauropod_path = Path(os.path.dirname(os.path.abspath(__file__)), "icons")
|
||||
#
|
||||
# pcoll = bpy.utils.previews.new()
|
||||
#
|
||||
# for entry in os.scandir(icon_sauropod_path):
|
||||
# if entry.name.endswith(".png"):
|
||||
# name = os.path.splitext(entry.name)[0]
|
||||
# print(f'[Pipeline] Add icon "{name}"')
|
||||
# pcoll.load(name.upper(), entry.path, "IMAGE")
|
||||
|
||||
# layout.label(text='Graou Pipeline', icon_value=pcoll["GRAOU"].icon_id)
|
||||
|
||||
|
||||
class GraouPanel(bpy.types.Panel):
|
||||
bl_idname = 'GRAOU_PT_MAIN'
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
bl_label = 'Export'
|
||||
bl_category = 'Graou Studio'
|
||||
@@ -1,14 +1,15 @@
|
||||
import bpy
|
||||
from .main import GraouPanel
|
||||
|
||||
|
||||
class GRAOU_PT_setup(bpy.types.Panel):
|
||||
class GRAOU_PT_setup(GraouPanel):
|
||||
bl_idname = 'GRAOU_PT_setup'
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'UI'
|
||||
bl_label = 'Setup Pipeline'
|
||||
bl_category = 'Graou Studio'
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.label(text='Main Config:')
|
||||
col = layout.column(align=True)
|
||||
col.label(text='Main Config:')
|
||||
col.operator('graou.build_scene', text='Init Scene', icon='OUTLINER')
|
||||
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')
|
||||
|
||||
Reference in New Issue
Block a user