forked from LeenkxTeam/LNXSDK
Repe [T3DU] Update - 31f26d171bba0355ce2a77031e3aad4c64dbc7e9
This commit is contained in:
@ -15,7 +15,7 @@ class AddRigidBodyNode(LnxLogicTreeNode):
|
||||
|
||||
@input Animated: Rigid body follows animation and will affect other active non-animated rigid bodies.
|
||||
|
||||
@input Trigger: Rigid body behaves as a trigger and detects collision. However, rigd body does not contribute to or receive collissions.
|
||||
@input Trigger: Rigid body behaves as a trigger and detects collision. However, rigid body does not contribute to or receive collissions.
|
||||
|
||||
@input Friction: Surface friction of the rigid body. Minimum value = 0, Preferred max value = 1.
|
||||
|
||||
@ -77,7 +77,8 @@ class AddRigidBodyNode(LnxLogicTreeNode):
|
||||
('Cone', 'Cone', 'Cone'),
|
||||
('Cylinder', 'Cylinder', 'Cylinder'),
|
||||
('Convex Hull', 'Convex Hull', 'Convex Hull'),
|
||||
('Mesh', 'Mesh', 'Mesh')],
|
||||
('Mesh', 'Mesh', 'Mesh'),
|
||||
('Compound Parent', 'Compound Parent', 'Compound Parent')],
|
||||
name='Shape', default='Box')
|
||||
|
||||
def lnx_init(self, context):
|
||||
@ -114,7 +115,7 @@ class AddRigidBodyNode(LnxLogicTreeNode):
|
||||
self.add_input('LnxFloatSocket', 'Linear Damping', 0.04)
|
||||
self.add_input('LnxFloatSocket', 'Angular Damping', 0.1)
|
||||
self.add_input('LnxFloatSocket', 'Angular Friction', 0.1)
|
||||
self.add_input('LnxBoolSocket', 'Use Deacivation')
|
||||
self.add_input('LnxBoolSocket', 'Use Deactivation')
|
||||
self.add_input('LnxFloatSocket', 'Linear Velocity Threshold', 0.4)
|
||||
self.add_input('LnxFloatSocket', 'Angular Velocity Threshold', 0.5)
|
||||
self.add_input('LnxIntSocket', 'Collision Group', 1)
|
||||
|
||||
14
leenkx/blender/lnx/logicnode/physics/LN_add_physics_hook.py
Normal file
14
leenkx/blender/lnx/logicnode/physics/LN_add_physics_hook.py
Normal file
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class AddPhysicsHookNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNAddPhysicsHookNode'
|
||||
bl_label = 'Add Physics Hook'
|
||||
lnx_section = 'add'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxNodeSocketObject', 'Hook')
|
||||
self.add_input('LnxNodeSocketArray', 'Vertices')
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
23
leenkx/blender/lnx/logicnode/physics/LN_add_soft_body.py
Normal file
23
leenkx/blender/lnx/logicnode/physics/LN_add_soft_body.py
Normal file
@ -0,0 +1,23 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class AddSoftBodyNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNAddSoftBodyNode'
|
||||
bl_label = 'Add Soft Body'
|
||||
lnx_section = 'softbody'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
# 0: Cloth, 1: Volume
|
||||
self.add_input('LnxIntSocket', 'Shape', default_value=0)
|
||||
self.add_input('LnxFloatSocket', 'Bend', default_value=0.5)
|
||||
self.add_input('LnxFloatSocket', 'Mass', default_value=1.0)
|
||||
self.add_input('LnxFloatSocket', 'Margin', default_value=0.04)
|
||||
self.add_input('LnxFloatSocket', 'Friction', default_value=0.5)
|
||||
self.add_input('LnxFloatSocket', 'Damping', default_value=0.01)
|
||||
self.add_input('LnxFloatSocket', 'Linear Stiffness', default_value=0.9)
|
||||
self.add_input('LnxFloatSocket', 'Angular Stiffness', default_value=0.9)
|
||||
self.add_input('LnxFloatSocket', 'Pressure', default_value=0.0)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
@ -8,19 +8,21 @@ class GetRigidBodyDataNode(LnxLogicTreeNode):
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.inputs.new('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxNodeSocketObject', 'RB')
|
||||
|
||||
self.outputs.new('LnxBoolSocket', 'Is RB')
|
||||
self.outputs.new('LnxIntSocket', 'Collision Group')
|
||||
self.outputs.new('LnxIntSocket', 'Collision Mask')
|
||||
self.outputs.new('LnxBoolSocket', 'Is Animated')
|
||||
self.outputs.new('LnxBoolSocket', 'Is Static')
|
||||
self.outputs.new('LnxFloatSocket', 'Angular Damping')
|
||||
self.outputs.new('LnxFloatSocket', 'Linear Damping')
|
||||
self.outputs.new('LnxFloatSocket', 'Friction')
|
||||
self.outputs.new('LnxFloatSocket', 'Mass')
|
||||
#self.outputs.new('LnxStringSocket', 'Collision Shape')
|
||||
#self.outputs.new('LnxIntSocket', 'Activation State')
|
||||
#self.outputs.new('LnxBoolSocket', 'Is Gravity Enabled')
|
||||
#self.outputs.new(LnxVectorSocket', Angular Factor')
|
||||
#self.outputs.new('LnxVectorSocket', Linear Factor')
|
||||
self.add_output('LnxBoolSocket', 'Is RB')
|
||||
self.add_output('LnxIntSocket', 'Collision Group')
|
||||
self.add_output('LnxIntSocket', 'Collision Mask')
|
||||
self.add_output('LnxBoolSocket', 'Is Animated')
|
||||
self.add_output('LnxBoolSocket', 'Is Static')
|
||||
self.add_output('LnxFloatSocket', 'Linear Damping')
|
||||
self.add_output('LnxFloatSocket', 'Angular Damping')
|
||||
self.add_output('LnxFloatSocket', 'Friction')
|
||||
self.add_output('LnxFloatSocket', 'Angular Friction')
|
||||
self.add_output('LnxFloatSocket', 'Mass')
|
||||
self.add_output('LnxBoolSocket', 'Is Trigger')
|
||||
self.add_output('LnxFloatSocket', 'Bounciness')
|
||||
self.add_output('LnxBoolSocket', 'Gravity Enabled')
|
||||
self.add_output('LnxVectorSocket', 'Gravity')
|
||||
self.add_output('LnxVectorSocket', 'Linear Factor')
|
||||
self.add_output('LnxVectorSocket', 'Angular Factor')
|
||||
|
||||
14
leenkx/blender/lnx/logicnode/physics/LN_get_rb_dynamics.py
Normal file
14
leenkx/blender/lnx/logicnode/physics/LN_get_rb_dynamics.py
Normal file
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetRigidBodyDynamicsNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNSetRigidBodyDynamicsNode'
|
||||
bl_label = 'Set RB Dynamics'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxBoolSocket', 'Is Static', default_value=False)
|
||||
self.add_input('LnxFloatSocket', 'Mass', default_value=1.0)
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
@ -3,11 +3,11 @@ from lnx.logicnode.lnx_nodes import *
|
||||
class GetPointVelocityNode(LnxLogicTreeNode):
|
||||
"""Returns the world velocity of the given point along the rigid body."""
|
||||
bl_idname = 'LNGetPointVelocityNode'
|
||||
bl_label = 'Get RB Point Velocity'
|
||||
bl_label = 'Get RB Velocity at Location'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketObject', 'RB')
|
||||
self.add_input('LnxVectorSocket', 'Point')
|
||||
self.add_input('LnxVectorSocket', 'Location')
|
||||
|
||||
self.add_output('LnxVectorSocket', 'Velocity')
|
||||
|
||||
22
leenkx/blender/lnx/logicnode/physics/LN_get_sb_data.py
Normal file
22
leenkx/blender/lnx/logicnode/physics/LN_get_sb_data.py
Normal file
@ -0,0 +1,22 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class GetSoftBodyDataNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNGetSoftBodyDataNode'
|
||||
bl_label = 'Get SB Data'
|
||||
lnx_section = 'softbody'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketObject', 'SB')
|
||||
|
||||
self.add_output('LnxBoolSocket', 'Has SB')
|
||||
self.add_output('LnxFloatSocket', 'Mass')
|
||||
self.add_output('LnxFloatSocket', 'Bend')
|
||||
self.add_output('LnxIntSocket', 'Shape')
|
||||
self.add_output('LnxFloatSocket', 'Margin')
|
||||
self.add_output('LnxVectorSocket', 'World Center')
|
||||
self.add_output('LnxFloatSocket', 'Friction')
|
||||
self.add_output('LnxFloatSocket', 'Damping')
|
||||
self.add_output('LnxFloatSocket', 'Pressure')
|
||||
self.add_output('LnxFloatSocket', 'Linear Stiffness')
|
||||
self.add_output('LnxFloatSocket', 'Angular Stiffness')
|
||||
@ -19,6 +19,8 @@ class OnContactArrayNode(LnxLogicTreeNode):
|
||||
self.add_input('LnxNodeSocketArray', 'RBs')
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
self.add_output('LnxNodeSocketArray', 'RBs')
|
||||
self.add_output('LnxNodeSocketObject', 'RB')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class RemovePhysicsConstraintNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNRemovePhysicsConstraintNode'
|
||||
bl_label = 'Remove Physics Constraint'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Pivot Object')
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
@ -0,0 +1,12 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class RemovePhysicsHookNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNRemovePhysicsHookNode'
|
||||
bl_label = 'Remove Physics Hook'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
14
leenkx/blender/lnx/logicnode/physics/LN_remove_sb.py
Normal file
14
leenkx/blender/lnx/logicnode/physics/LN_remove_sb.py
Normal file
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class RemoveSoftBodyNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNRemoveSoftBodyNode'
|
||||
bl_label = 'Remove SB'
|
||||
lnx_section = 'softbody'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'SB')
|
||||
self.add_input('LnxBoolSocket', 'Restore Geom')
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
@ -4,7 +4,6 @@ class SetActivationStateNode(LnxLogicTreeNode):
|
||||
"""Sets the rigid body simulation state of the given object."""
|
||||
bl_idname = 'LNSetActivationStateNode'
|
||||
bl_label = 'Set RB Activation State'
|
||||
bl_icon = 'NONE'
|
||||
lnx_version = 1
|
||||
|
||||
property0: HaxeEnumProperty(
|
||||
|
||||
13
leenkx/blender/lnx/logicnode/physics/LN_set_rb_animated.py
Normal file
13
leenkx/blender/lnx/logicnode/physics/LN_set_rb_animated.py
Normal file
@ -0,0 +1,13 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetRigidBodyAnimatedNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNSetRigidBodyAnimatedNode'
|
||||
bl_label = 'Set RB Animated'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxBoolSocket', 'Animated', default_value=False)
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
13
leenkx/blender/lnx/logicnode/physics/LN_set_rb_bounciness.py
Normal file
13
leenkx/blender/lnx/logicnode/physics/LN_set_rb_bounciness.py
Normal file
@ -0,0 +1,13 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetRigidBodyBouncinessNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNSetRigidBodyBouncinessNode'
|
||||
bl_label = 'Set RB Bounciness'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxFloatSocket', 'Bounciness', default_value=0)
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
15
leenkx/blender/lnx/logicnode/physics/LN_set_rb_damping.py
Normal file
15
leenkx/blender/lnx/logicnode/physics/LN_set_rb_damping.py
Normal file
@ -0,0 +1,15 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetRigidBodyDampingNode(LnxLogicTreeNode):
|
||||
"""Sets the linear and angular damping of a rigid body."""
|
||||
bl_idname = 'LNSetRigidBodyDampingNode'
|
||||
bl_label = 'Set RB Damping'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxFloatSocket', 'Linear Damping', default_value=0.04)
|
||||
self.add_input('LnxFloatSocket', 'Angular Damping', default_value=0.1)
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
14
leenkx/blender/lnx/logicnode/physics/LN_set_rb_factor.py
Normal file
14
leenkx/blender/lnx/logicnode/physics/LN_set_rb_factor.py
Normal file
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetRigidBodyFactorNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNSetRigidBodyFactorNode'
|
||||
bl_label = 'Set RB Factor'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxVectorSocket', 'Linear Factor', default_value=[1.0, 1.0, 1.0])
|
||||
self.add_input('LnxVectorSocket', 'Angular Factor', default_value=[1.0, 1.0, 1.0])
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
@ -1,15 +1,16 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetFrictionNode (LnxLogicTreeNode):
|
||||
class SetRigidBodyFrictionNode (LnxLogicTreeNode):
|
||||
"""Sets the friction of the given rigid body."""
|
||||
bl_idname = 'LNSetFrictionNode'
|
||||
bl_idname = 'LNSetRigidBodyFrictionNode'
|
||||
bl_label = 'Set RB Friction'
|
||||
bl_icon = 'NONE'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.inputs.new('LnxNodeSocketAction', 'In')
|
||||
self.inputs.new('LnxNodeSocketObject', 'RB')
|
||||
self.inputs.new('LnxFloatSocket', 'Friction')
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'RB')
|
||||
self.add_input('LnxFloatSocket', 'Friction', default_value=0.5)
|
||||
self.add_input('LnxFloatSocket', 'Angular Friction', default_value=0.1)
|
||||
|
||||
self.outputs.new('LnxNodeSocketAction', 'Out')
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
|
||||
14
leenkx/blender/lnx/logicnode/physics/LN_set_rb_gravity.py
Normal file
14
leenkx/blender/lnx/logicnode/physics/LN_set_rb_gravity.py
Normal file
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetRigidBodyGravityNode(LnxLogicTreeNode):
|
||||
"""Sets the gravity for the given rigid body."""
|
||||
bl_idname = 'LNSetRigidBodyGravityNode'
|
||||
bl_label = 'Set RB Gravity'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'RB')
|
||||
self.add_input('LnxVectorSocket', 'Gravity')
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
13
leenkx/blender/lnx/logicnode/physics/LN_set_rb_trigger.py
Normal file
13
leenkx/blender/lnx/logicnode/physics/LN_set_rb_trigger.py
Normal file
@ -0,0 +1,13 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetRigidBodyTriggerNode(LnxLogicTreeNode):
|
||||
bl_idname = 'LNSetRigidBodyTriggerNode'
|
||||
bl_label = 'Set RB Trigger'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxBoolSocket', 'Is Trigger', default_value=False)
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
@ -2,16 +2,35 @@ from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class SetVelocityNode(LnxLogicTreeNode):
|
||||
"""Sets the velocity of the given rigid body."""
|
||||
bl_idname = 'LNSetVelocityNode'
|
||||
bl_idname = 'LNSetRigidBodyVelocityNode'
|
||||
bl_label = 'Set RB Velocity'
|
||||
lnx_section = 'props'
|
||||
lnx_version = 1
|
||||
|
||||
def update_sockets(self, context):
|
||||
self.inputs[2].hide = self.property0 == 'Angular'
|
||||
self.inputs[3].hide = self.property0 == 'Angular'
|
||||
self.inputs[4].hide = self.property0 == 'Linear'
|
||||
self.inputs[5].hide = self.property0 == 'Linear'
|
||||
|
||||
property0: HaxeEnumProperty(
|
||||
'property0',
|
||||
items=[('Both', 'Both', 'Set both velocities'),
|
||||
('Linear', 'Linear', 'Set only linear velocity'),
|
||||
('Angular', 'Angular', 'Set only angular velocity')],
|
||||
name='Velocity',
|
||||
default='Both',
|
||||
update=update_sockets
|
||||
)
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'RB')
|
||||
self.add_input('LnxVectorSocket', 'Linear')
|
||||
self.add_input('LnxVectorSocket', 'Linear Factor', default_value=[1.0, 1.0, 1.0])
|
||||
self.add_input('LnxBoolSocket', 'Linear On Local Axis')
|
||||
self.add_input('LnxVectorSocket', 'Angular')
|
||||
self.add_input('LnxVectorSocket', 'Angular Factor', default_value=[1.0, 1.0, 1.0])
|
||||
|
||||
self.add_input('LnxBoolSocket', 'Angular On Local Axis')
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
||||
Reference in New Issue
Block a user