commit 732a64757272b50787b55e8751e993604f470c89 Author: WALKINGTHEDOG\wabe Date: Wed Oct 7 13:20:13 2026 +0200 base addon diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e145eb7 --- /dev/null +++ b/__init__.py @@ -0,0 +1,15 @@ +import bpy + +# Import modules +from . import ops +from . import ui + +# Register modules +def register() -> None: + ops.register() + ui.register() + +# Unregister modules +def unregister() -> None: + ops.unregister() + ui.unregister() diff --git a/blender_manifest.toml b/blender_manifest.toml new file mode 100644 index 0000000..a04d4a1 --- /dev/null +++ b/blender_manifest.toml @@ -0,0 +1,28 @@ +schema_version = "1.0.0" + +id = "wtd_tools" +version = "0.0.1" +name = "WTD Tools" +tagline = "Tools of Walking The Dog" +maintainer = "WTD" +type = "add-on" +website = "somesite.be" +tags = ["tools"] +blender_version_min = "5.2.0" + +license = ["SPDX:GPL-2.0-or-later"] +copyright = ["2026 WTD"] + +[permissions] + +[build] +paths_exclude_pattern = [ + "__pycache__/", + "/.git/", + "docs/", + ".*", + "*.blend", + "*.md", + "*.png", + "*.zip", +] diff --git a/ops.py b/ops.py new file mode 100644 index 0000000..05c51b2 --- /dev/null +++ b/ops.py @@ -0,0 +1,26 @@ +"""Operators.""" + +import bpy + +class WTDBuildOp(bpy.types.Operator): + + bl_idname = "wtd_tools.build" + bl_label = "Build" + + def execute(self, context): + if bpy.ops.kabaret.cmds_call( + actor_name="Flow", + cmd_name="action_needs_dialog", + args_json=json.dumps([oid]), + ) == {"FINISHED"}: + result = json.loads(bpy.context.window_manager.kabaret_ipc_last_result) + else: + error = bpy.context.window_manager.kabaret_ipc_last_error + return {"FINISHED"} + + +def register() -> None: + bpy.utils.register_class(WTDBuildOp) + +def unregister() -> None: + bpy.utils.unregister_class(WTDBuildOp) \ No newline at end of file diff --git a/ui.py b/ui.py new file mode 100644 index 0000000..0b967a4 --- /dev/null +++ b/ui.py @@ -0,0 +1,43 @@ +"""Sidebar UI.""" + +import bpy + + +# Panel like kabaret ipc +# class WTDToolsPanel(bpy.types.Panel): +# +# bl_idname = "wtd_tools.ui.panel" +# bl_label = "WTD TOOLS" +# bl_space_type = "VIEW_3D" +# bl_region_type = "UI" +# bl_category = "WTD" +# +# def draw(self, context) -> None: +# #wm = context.window_manager +# layout = self.layout +# +# build_op_row = layout.row() +# build_op_row.operator("wtdtools.build", text = "Build scene") + + +class WTDToolsMenu(bpy.types.Menu): + bl_label = "WTDTools" + bl_idname = "wtd_tools.ui.menu" + + def draw(self, context): + layout = self.layout + layout.operator("wtd_tools.build", text="Build") + +def draw_item(self, context): + self.layout.menu(WTDToolsMenu.bl_idname) + + +def register() -> None: + #bpy.utils.register_class(WTDToolsPanel) + bpy.utils.register_class(WTDToolsMenu) + bpy.types.TOPBAR_MT_editor_menus.append(draw_item) + +def unregister() -> None: + # bpy.utils.unregister_class(WTDToolsPanel) + bpy.utils.unregister_class(WTDToolsMenu) + bpy.types.TOPBAR_MT_editor_menus.remove(draw_item) \ No newline at end of file