[Bf-blender-cvs] [4d2dcb6a5fb] functions: Initial implementation of updated ui proposal

Jacques Lucke noreply at git.blender.org
Fri Aug 23 15:41:45 CEST 2019


Commit: 4d2dcb6a5fbd075df16db169460e4d3791289475
Author: Jacques Lucke
Date:   Fri Aug 23 15:41:33 2019 +0200
Branches: functions
https://developer.blender.org/rB4d2dcb6a5fbd075df16db169460e4d3791289475

Initial implementation of updated ui proposal

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

M	release/scripts/startup/bl_operators/modifiers.py
M	release/scripts/startup/nodes/bparticle_nodes/age_reached_event.py
M	release/scripts/startup/nodes/bparticle_nodes/change_color.py
M	release/scripts/startup/nodes/bparticle_nodes/change_direction.py
D	release/scripts/startup/nodes/bparticle_nodes/close_by_points.py
M	release/scripts/startup/nodes/bparticle_nodes/condition.py
D	release/scripts/startup/nodes/bparticle_nodes/custom_emitter.py
M	release/scripts/startup/nodes/bparticle_nodes/explode_particle.py
M	release/scripts/startup/nodes/bparticle_nodes/initial_grid_emitter.py
M	release/scripts/startup/nodes/bparticle_nodes/kill_particle.py
M	release/scripts/startup/nodes/bparticle_nodes/mesh_collision_event.py
M	release/scripts/startup/nodes/bparticle_nodes/mesh_emitter.py
M	release/scripts/startup/nodes/bparticle_nodes/particle_type.py
M	release/scripts/startup/nodes/bparticle_nodes/point_emitter.py
D	release/scripts/startup/nodes/bparticle_nodes/point_force.py
M	release/scripts/startup/nodes/bparticle_nodes/trails.py
M	release/scripts/startup/nodes/declaration/__init__.py
M	release/scripts/startup/nodes/declaration/bparticles.py
M	release/scripts/startup/nodes/node_builder.py
M	release/scripts/startup/nodes/sockets.py
M	source/blender/blenkernel/BKE_node_tree.hpp
M	source/blender/simulations/CMakeLists.txt
M	source/blender/simulations/bparticles/action_interface.hpp
M	source/blender/simulations/bparticles/actions.cpp
M	source/blender/simulations/bparticles/actions.hpp
M	source/blender/simulations/bparticles/emitters.cpp
M	source/blender/simulations/bparticles/emitters.hpp
M	source/blender/simulations/bparticles/events.cpp
M	source/blender/simulations/bparticles/events.hpp
M	source/blender/simulations/bparticles/forces.cpp
M	source/blender/simulations/bparticles/forces.hpp
D	source/blender/simulations/bparticles/inserters.cpp
D	source/blender/simulations/bparticles/inserters.hpp
M	source/blender/simulations/bparticles/node_frontend.cpp
M	source/blender/simulations/bparticles/offset_handlers.cpp
M	source/blender/simulations/bparticles/offset_handlers.hpp

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

diff --git a/release/scripts/startup/bl_operators/modifiers.py b/release/scripts/startup/bl_operators/modifiers.py
index 826c9eacc9e..60cbb9b36a7 100644
--- a/release/scripts/startup/bl_operators/modifiers.py
+++ b/release/scripts/startup/bl_operators/modifiers.py
@@ -78,7 +78,7 @@ class NewBParticlesTree(bpy.types.Operator, ModifierOperator):
         gravity_node.location = (-250, -100)
 
         tree.links.new(emitter_node.outputs[0], type_node.inputs[0])
-        tree.links.new(gravity_node.outputs[0], type_node.inputs[1])
+        tree.links.new(gravity_node.outputs[0], type_node.inputs[0])
 
         mod.bparticles_tree = tree
         return {'FINISHED'}
diff --git a/release/scripts/startup/nodes/bparticle_nodes/age_reached_event.py b/release/scripts/startup/nodes/bparticle_nodes/age_reached_event.py
index 9ef2b4414a7..35f5efcddea 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/age_reached_event.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/age_reached_event.py
@@ -7,7 +7,10 @@ class AgeReachedEventNode(bpy.types.Node, BParticlesNode):
     bl_idname = "bp_AgeReachedEventNode"
     bl_label = "Age Reached Event"
 
+    execute_on_event__prop: NodeBuilder.ExecuteInputProperty()
+
     def declaration(self, builder: NodeBuilder):
-        builder.event_input("event", "Event")
         builder.fixed_input("age", "Age", "Float", default=3)
-        builder.control_flow_output("on_event", "On Event")
+        builder.execute_input("execute_on_event", "Execute on Event", "execute_on_event__prop")
+
+        builder.particle_effector_output("event", "Event")
diff --git a/release/scripts/startup/nodes/bparticle_nodes/change_color.py b/release/scripts/startup/nodes/bparticle_nodes/change_color.py
index 2e29f85a333..7b16a884e45 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/change_color.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/change_color.py
@@ -8,6 +8,5 @@ class ChangeParticleColorNode(bpy.types.Node, BParticlesNode):
     bl_label = "Change Particle Color"
 
     def declaration(self, builder: NodeBuilder):
-        builder.control_flow_input("control_in", "(In)")
         builder.fixed_input("color", "Color", "Color")
-        builder.control_flow_output("control_out", "(Out)")
+        builder.execute_output("execute", "Execute")
diff --git a/release/scripts/startup/nodes/bparticle_nodes/change_direction.py b/release/scripts/startup/nodes/bparticle_nodes/change_direction.py
index aeb061c253b..e716e995472 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/change_direction.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/change_direction.py
@@ -8,6 +8,5 @@ class ChangeParticleDirectionNode(bpy.types.Node, BParticlesNode):
     bl_label = "Change Particle Direction"
 
     def declaration(self, builder: NodeBuilder):
-        builder.control_flow_input("control_in", "(In)")
         builder.fixed_input("direction", "Direction", "Vector")
-        builder.control_flow_output("control_out", "(Out)")
+        builder.execute_output("execute", "Execute")
diff --git a/release/scripts/startup/nodes/bparticle_nodes/close_by_points.py b/release/scripts/startup/nodes/bparticle_nodes/close_by_points.py
deleted file mode 100644
index 88c8637a86b..00000000000
--- a/release/scripts/startup/nodes/bparticle_nodes/close_by_points.py
+++ /dev/null
@@ -1,14 +0,0 @@
-import bpy
-from bpy.props import *
-from .. base import BParticlesNode
-from .. node_builder import NodeBuilder
-
-class CloseByPointsEventNode(bpy.types.Node, BParticlesNode):
-    bl_idname = "bp_CloseByPointsEventNode"
-    bl_label = "Close By Points Event"
-
-    def declaration(self, builder: NodeBuilder):
-        builder.event_input("event", "Event")
-        builder.fixed_input("points", "Points", "Vector List")
-        builder.fixed_input("distance", "Distance", "Float", default=1)
-        builder.control_flow_output("on_event", "On Event")
diff --git a/release/scripts/startup/nodes/bparticle_nodes/condition.py b/release/scripts/startup/nodes/bparticle_nodes/condition.py
index a0fbb3af203..16a5f972d8b 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/condition.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/condition.py
@@ -7,8 +7,12 @@ class ParticleConditionNode(bpy.types.Node, BParticlesNode):
     bl_idname = "bp_ParticleConditionNode"
     bl_label = "Particle Condition"
 
+    execute_if_true__prop: NodeBuilder.ExecuteInputProperty()
+    execute_if_false__prop: NodeBuilder.ExecuteInputProperty()
+
     def declaration(self, builder: NodeBuilder):
-        builder.control_flow_input("control_in", "(In)")
         builder.fixed_input("condition", "Condition", "Boolean")
-        builder.control_flow_output("if_true", "If True")
-        builder.control_flow_output("if_false", "If False")
+        builder.execute_input("execute_if_true", "Execute If True", "execute_if_true__prop")
+        builder.execute_input("execute_if_false", "Execute If False", "execute_if_false__prop")
+
+        builder.execute_output("execute", "Execute")
diff --git a/release/scripts/startup/nodes/bparticle_nodes/custom_emitter.py b/release/scripts/startup/nodes/bparticle_nodes/custom_emitter.py
deleted file mode 100644
index 9c5d950b815..00000000000
--- a/release/scripts/startup/nodes/bparticle_nodes/custom_emitter.py
+++ /dev/null
@@ -1,42 +0,0 @@
-import bpy
-from bpy.props import *
-from .. base import FunctionNode
-from .. node_builder import NodeBuilder
-from .. node_operators import new_function_tree
-
-class CustomEmitterNode(bpy.types.Node, FunctionNode):
-    bl_idname = "bp_CustomEmitterNode"
-    bl_label = "Custom Emitter"
-
-    function_tree: PointerProperty(
-        name="Function Tree",
-        type=bpy.types.NodeTree,
-        update=FunctionNode.sync_tree,
-    )
-
-    def declaration(self, builder: NodeBuilder):
-        if self.function_tree:
-            builder.tree_interface_input("inputs", self.function_tree, 'IN',
-                ignored={("Float", "Time Step"), ("Float", "Start Time")})
-
-        builder.emitter_output("emitter", "Emitter")
-
-    def draw(self, layout):
-        row = layout.row(align=True)
-        row.prop(self, "function_tree", text="")
-        if self.function_tree is None:
-            self.invoke_function(row, "new_function", "", icon='PLUS')
-
-    def new_function(self):
-        self.function_tree = new_function_tree("Custom Emitter", [
-            ("Float", "Start Time"),
-            ("Float", "Time Step"),
-        ], [
-            ("Vector List", "Position"),
-            ("Vector List", "Velocity"),
-            ("Float List", "Size"),
-        ])
-
-    def iter_dependency_trees(self):
-        if self.function_tree is not None:
-            yield self.function_tree
diff --git a/release/scripts/startup/nodes/bparticle_nodes/explode_particle.py b/release/scripts/startup/nodes/bparticle_nodes/explode_particle.py
index da35660aa8d..4de130a649a 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/explode_particle.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/explode_particle.py
@@ -7,20 +7,12 @@ class ExplodeParticleNode(bpy.types.Node, BParticlesNode):
     bl_idname = "bp_ExplodeParticleNode"
     bl_label = "Explode Particle"
 
-    particle_type_name: StringProperty(maxlen=64)
+    execute_on_birth__prop: NodeBuilder.ExecuteInputProperty()
 
     def declaration(self, builder: NodeBuilder):
-        builder.control_flow_input("control_in", "(In)")
         builder.fixed_input("amount", "Amount", "Integer", default=10)
         builder.fixed_input("speed", "Speed", "Float", default=2)
-        builder.control_flow_output("control_out", "(Out)")
-        builder.control_flow_output("new_control_out", "On Birth")
+        builder.execute_input("execute_on_birth", "Execute on Birth", "execute_on_birth__prop")
 
-    def draw(self, layout):
-        row = layout.row(align=True)
-        row.prop(self, "particle_type_name", text="", icon="MOD_PARTICLES")
-        self.invoke_particle_type_creation(row, "on_type_created", "", icon='ADD')
-
-    def on_type_created(self, new_node):
-        new_node.name = "Exploded"
-        self.particle_type_name = new_node.name
+        builder.execute_output("execute", "Execute")
+        builder.particle_effector_output("type", "Type")
diff --git a/release/scripts/startup/nodes/bparticle_nodes/initial_grid_emitter.py b/release/scripts/startup/nodes/bparticle_nodes/initial_grid_emitter.py
index 39e501750e2..c96a78d3dd8 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/initial_grid_emitter.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/initial_grid_emitter.py
@@ -13,4 +13,4 @@ class InitialGridEmitterNode(bpy.types.Node, BParticlesNode):
         builder.fixed_input("step_x", "Step X", "Float", default=0.2)
         builder.fixed_input("step_y", "Step Y", "Float", default=0.2)
         builder.fixed_input("size", "Size", "Float", default=0.01)
-        builder.emitter_output("emitter", "Emitter")
+        builder.particle_effector_output("emitter", "Emitter")
diff --git a/release/scripts/startup/nodes/bparticle_nodes/kill_particle.py b/release/scripts/startup/nodes/bparticle_nodes/kill_particle.py
index 04e0784dd6e..55a244d24b0 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/kill_particle.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/kill_particle.py
@@ -8,4 +8,4 @@ class KillParticleNode(bpy.types.Node, BParticlesNode):
     bl_label = "Kill Particle"
 
     def declaration(self, builder: NodeBuilder):
-        builder.control_flow_input("control_in", "(In)")
+        builder.execute_output("execute", "Execute")
diff --git a/release/scripts/startup/nodes/bparticle_nodes/mesh_collision_event.py b/release/scripts/startup/nodes/bparticle_nodes/mesh_collision_event.py
index d815638952e..b87d2a50937 100644
--- a/release/scripts/startup/nodes/bparticle_nodes/mesh_collision_event.py
+++ b/release/scripts/startup/nodes/bparticle_nodes/mesh_collision_event.py
@@ -7,7 +7,10 @@ class MeshCollisionEventNode(bpy.types.Node, BParticlesNode):
     bl_idname = "bp_MeshCollisionEventNode"
     bl_label = "Mesh Collision Event"
 
+    execute_on_event__prop: NodeBuilder.ExecuteInputProperty()
+
     def

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list