[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