Add support for controlling physics nodes' behavior when disabled
New property disable_mode to set different behaviors: Remove: remove from physics simulation MakeStatic: change body mode to static (doesn't affect area and soft body) KeepActive: do nothing Extra change: Handle disable/enable node state with specific notifications, in order to differentiate global pause from disabled nodes.
This commit is contained in:
@@ -93,6 +93,9 @@
|
||||
</member>
|
||||
<member name="damping_coefficient" type="float" setter="set_damping_coefficient" getter="get_damping_coefficient" default="0.01">
|
||||
</member>
|
||||
<member name="disable_mode" type="int" setter="set_disable_mode" getter="get_disable_mode" enum="SoftBody3D.DisableMode" default="0">
|
||||
Defines the behavior in physics when [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED]. See [enum DisableMode] for more details about the different modes.
|
||||
</member>
|
||||
<member name="drag_coefficient" type="float" setter="set_drag_coefficient" getter="get_drag_coefficient" default="0.0">
|
||||
</member>
|
||||
<member name="linear_stiffness" type="float" setter="set_linear_stiffness" getter="get_linear_stiffness" default="0.5">
|
||||
@@ -113,5 +116,12 @@
|
||||
</member>
|
||||
</members>
|
||||
<constants>
|
||||
<constant name="DISABLE_MODE_REMOVE" value="0" enum="DisableMode">
|
||||
When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], remove from the physics simulation to stop all physics interactions with this [SoftBody3D].
|
||||
Automatically re-added to the physics simulation when the [Node] is processed again.
|
||||
</constant>
|
||||
<constant name="DISABLE_MODE_KEEP_ACTIVE" value="1" enum="DisableMode">
|
||||
When [member Node.process_mode] is set to [constant Node.PROCESS_MODE_DISABLED], do not affect the physics simulation.
|
||||
</constant>
|
||||
</constants>
|
||||
</class>
|
||||
|
||||
Reference in New Issue
Block a user