generated from stilobique/BlenderTemplate
Make a class panel to easily draw each class
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
import bpy
|
import bpy
|
||||||
|
|
||||||
# UI and Interface
|
# 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.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
|
from .ui.setup import GRAOU_PT_setup
|
||||||
# All operators
|
# All operators
|
||||||
from .operators.exports import ExportForFange
|
from .operators.exports import ExportForFange
|
||||||
@@ -29,8 +29,8 @@ bl_info = {
|
|||||||
modules_class = [
|
modules_class = [
|
||||||
# Main operators property
|
# Main operators property
|
||||||
ExportForFange, MakeBasicCollision, ConfigBlendScene, ConfigLighting,
|
ExportForFange, MakeBasicCollision, ConfigBlendScene, ConfigLighting,
|
||||||
# UI
|
# UI, the order are the way to select how show each panel
|
||||||
GRAOU_PT_asset, GRAOU_PT_export, GRAOU_PT_thumbnail, GRAOU_PT_setup,
|
GRAOU_PT_setup, GraouPanel_asset, GRAOU_PT_export, GraouPanel_thumbnail,
|
||||||
# Preference
|
# Preference
|
||||||
GRAOU_AddonPreference, FangeProperties
|
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_idname = 'GRAOU_PT_asset'
|
||||||
bl_space_type = 'VIEW_3D'
|
|
||||||
bl_region_type = 'UI'
|
|
||||||
bl_label = 'Generate Assets'
|
bl_label = 'Generate Assets'
|
||||||
bl_category = 'Graou Studio'
|
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
layout = self.layout
|
layout = self.layout
|
||||||
|
|
||||||
layout.label(text='Asset:')
|
layout.label(text='Asset:')
|
||||||
|
layout.operator('graou.make_collision', text='Generate collision', icon='MOD_PHYSICS')
|
||||||
|
|||||||
@@ -1,45 +1,13 @@
|
|||||||
import bpy
|
from .main import GraouPanel
|
||||||
# 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")
|
|
||||||
|
|
||||||
|
|
||||||
class GRAOU_PT_export(bpy.types.Panel):
|
class GRAOU_PT_export(GraouPanel):
|
||||||
bl_idname = 'GRAOU_PT_MAIN'
|
bl_idname = 'GRAOU_PT_MAIN'
|
||||||
bl_space_type = 'VIEW_3D'
|
|
||||||
bl_region_type = 'UI'
|
|
||||||
bl_label = 'Export'
|
bl_label = 'Export'
|
||||||
bl_category = 'Graou Studio'
|
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
layout = self.layout
|
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:')
|
layout.label(text='Export scene:')
|
||||||
box = layout.box()
|
box = layout.box()
|
||||||
box.label(text='Sanity Check')
|
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_idname = 'GRAOU_PT_thumbnail'
|
||||||
bl_space_type = 'VIEW_3D'
|
|
||||||
bl_region_type = 'UI'
|
|
||||||
bl_label = 'Thumbnail'
|
bl_label = 'Thumbnail'
|
||||||
bl_category = 'Graou Studio'
|
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
layout = self.layout
|
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_idname = 'GRAOU_PT_setup'
|
||||||
bl_space_type = 'VIEW_3D'
|
|
||||||
bl_region_type = 'UI'
|
|
||||||
bl_label = 'Setup Pipeline'
|
bl_label = 'Setup Pipeline'
|
||||||
bl_category = 'Graou Studio'
|
|
||||||
|
|
||||||
def draw(self, context):
|
def draw(self, context):
|
||||||
layout = self.layout
|
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