[Bf-blender-cvs] [3d4f0fe7fe1] functions: remove mockup nodes

Jacques Lucke noreply at git.blender.org
Thu Dec 19 13:21:28 CET 2019


Commit: 3d4f0fe7fe1b19c87ed7bbb93e62655fdbe99e55
Author: Jacques Lucke
Date:   Thu Dec 19 11:17:23 2019 +0100
Branches: functions
https://developer.blender.org/rB3d4f0fe7fe1b19c87ed7bbb93e62655fdbe99e55

remove mockup nodes

===================================================================

M	release/scripts/startup/nodes/base.py
D	release/scripts/startup/nodes/bparticle_nodes/mockups.py
M	release/scripts/startup/nodes/search.py
M	release/scripts/startup/nodes/tree_panel.py

===================================================================

diff --git a/release/scripts/startup/nodes/base.py b/release/scripts/startup/nodes/base.py
index 00d72db5654..eea1846c8b7 100644
--- a/release/scripts/startup/nodes/base.py
+++ b/release/scripts/startup/nodes/base.py
@@ -5,11 +5,6 @@ import itertools
 from collections import defaultdict
 
 class BaseTree:
-    show_mockups: BoolProperty(
-        name="Show Mockups",
-        default=False,
-    )
-
     def new_link(self, a, b):
         if a.is_output:
             self.links.new(a, b)
diff --git a/release/scripts/startup/nodes/bparticle_nodes/mockups.py b/release/scripts/startup/nodes/bparticle_nodes/mockups.py
deleted file mode 100644
index 045e57ba68a..00000000000
--- a/release/scripts/startup/nodes/bparticle_nodes/mockups.py
+++ /dev/null
@@ -1,86 +0,0 @@
-import bpy
-from bpy.props import *
-from .. base import SimulationNode
-from .. node_builder import NodeBuilder
-
-
-class ParticleMeshDistanceNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_ParticleSurfaceDistanceNode"
-    bl_label = "Mockup - Particle Surface Distance"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("object", "Object", "Object")
-        builder.fixed_output("distance", "Distance", "Float")
-        builder.fixed_output("is_inside", "Is Inside", "Boolean")
-
-
-class DerivedAttributeNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_DerivedAttributeNode"
-    bl_label = "Mockup - Derived Attribute"
-
-    predefined_attributes = {
-        "Position" : "Vector",
-        "Velocity" : "Vector",
-        "Color" : "Color",
-        "Size" : "Float",
-    }
-
-    attribute: EnumProperty(
-        name="Attribute",
-        items=[(name, name, "") for name in predefined_attributes.keys()] + [("Custom", "Custom", "")],
-        update=SimulationNode.sync_tree,
-    )
-
-    attribute_type: EnumProperty(
-        name="Attribute Type",
-        items=[
-            ("Vector", "Vector", ""),
-            ("Float", "Float", ""),
-            ("Color", "Color", ""),
-        ],
-        update=SimulationNode.sync_tree,
-    )
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("is_active", "Is Active", "Boolean")
-        if self.attribute == "Custom":
-            builder.fixed_input("name", "Attribute Name", "Text")
-            builder.fixed_input("value", "Value", self.attribute_type)
-        else:
-            builder.fixed_input("value", "Value", self.predefined_attributes[self.attribute])
-        builder.influences_output("influence", "Influence")
-
-    def draw(self, layout):
-        layout.prop(self, "attribute", text="")
-        if self.attribute == "Custom":
-            layout.prop(self, "attribute_type", text="")
-
-
-class SetAgeLimitNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_SetAgeLimitNode"
-    bl_label = "Mockup - Set Age Limit"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.fixed_input("lifetime", "Lifetime (seconds)", "Float", default=3)
-        builder.fixed_input("variation", "Variation", "Float", default=0)
-        builder.execute_output("execute", "Execute")
-
-
-class AgeLimitReachedNode(bpy.types.Node, SimulationNode):
-    bl_idname = "fn_AgeLimitReachedNode"
-    bl_label = "Mockup - Age Limit Reached"
-
-    kill: BoolProperty(
-        name="Kill",
-        default=True,
-        description="Kill the particle when its age limit is reached",
-    )
-
-    execute__prop: NodeBuilder.ExecuteInputProperty()
-
-    def declaration(self, builder: NodeBuilder):
-        builder.execute_input("execute", "Execute", "execute__prop")
-        builder.influences_output("event", "Event")
-
-    def draw(self, layout):
-        layout.prop(self, "kill")
diff --git a/release/scripts/startup/nodes/search.py b/release/scripts/startup/nodes/search.py
index 1bd27ff2030..0f6c36f8f15 100644
--- a/release/scripts/startup/nodes/search.py
+++ b/release/scripts/startup/nodes/search.py
@@ -13,16 +13,13 @@ class NodeSearch(bpy.types.Operator):
         items = []
         tree = context.space_data.edit_tree
         for node_cls in BaseNode.iter_final_subclasses():
-            if node_cls.bl_label.startswith("Mockup") and not tree.show_mockups:
-                continue
             for search_term, settings in node_cls.get_search_terms():
-                item = encode_search_item(node_cls.bl_idname, search_term, settings)
+                item = encode_search_item(("BUILTIN", node_cls.bl_idname, settings), search_term)
                 items.append(item)
 
         current_tree = context.space_data.node_tree
         for tree in current_tree.find_callable_trees():
-            name = "(G) " + tree.name
-            item = encode_search_item(name, name, {})
+            item = encode_search_item(("EXISTING_GROUP", tree.name), "(G) " + tree.name)
             items.append(item)
 
         sorted_items = list(sorted(items, key=lambda item: item[1]))
@@ -44,28 +41,28 @@ class NodeSearch(bpy.types.Operator):
         for node in tree.nodes:
             node.select = False
 
-        idname, settings = decode_search_item(self.item)
-        if idname.startswith("(G) "):
-            group_name = idname[len("(G) "):]
-            idname = "fn_GroupNode"
-            node_group = bpy.data.node_groups[group_name]
-            settings = {"node_group" : node_group}
+        item_data = decode_search_item(self.item)
+        item_type = item_data[0]
 
-        bpy.ops.node.add_node('INVOKE_DEFAULT', type=idname)
-        new_node = context.active_node
-        new_node.select = True
-        for key, value in settings.items():
-            setattr(new_node, key, value)
+        if item_type == "BUILTIN":
+            idname, settings = item_data[1:]
+            bpy.ops.node.add_node('INVOKE_DEFAULT', type=idname)
+            new_node = context.active_node
+            for key, value in settings.items():
+                setattr(new_node, key, value)
+        elif item_type == "EXISTING_GROUP":
+            group_name = item_data[1]
+            bpy.ops.node.add_node('INVOKE_DEFAULT', type="fn_GroupNode")
+            new_node = context.active_node
+            new_node.node_group = bpy.data.node_groups[group_name]
 
         bpy.ops.node.translate_attach("INVOKE_DEFAULT")
         return {'FINISHED'}
 
 
-def encode_search_item(idname, search_term, settings):
-    identifier = idname + ":" + repr(settings)
+def encode_search_item(data, search_term):
+    identifier = repr(data)
     return (identifier, search_term, "")
 
 def decode_search_item(identifier):
-    idname, settings_repr = identifier.split(":", 1)
-    settings = eval(settings_repr)
-    return idname, settings
+    return eval(identifier)
diff --git a/release/scripts/startup/nodes/tree_panel.py b/release/scripts/startup/nodes/tree_panel.py
index d85b5294e27..09f7b26b907 100644
--- a/release/scripts/startup/nodes/tree_panel.py
+++ b/release/scripts/startup/nodes/tree_panel.py
@@ -15,4 +15,3 @@ class TreePanel(bpy.types.Panel, NodeSidebarPanel):
         layout = self.layout
 
         tree = context.space_data.edit_tree
-        layout.prop(tree, "show_mockups")



More information about the Bf-blender-cvs mailing list