[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