BGE: Added 'ghost' arg to KX_GameObject.suspendDynamics() method
The implementation of this 'ghost' argument already existed in the C++ source, but wasn't exposed to Python yet.
This commit is contained in:
parent
62b13c6d07
commit
4e7ef3f5cd
Notes:
blender-bot
2023-02-14 09:09:46 +01:00
Referenced by issue #44624, World menu appears in Material node header Referenced by issue #44605, RGB Curve Node: cursor jumps back (OSX only)
|
@ -84,6 +84,8 @@ base class --- :class:`SCA_IObject`
|
|||
|
||||
:type: boolean
|
||||
|
||||
.. seealso:: :py:meth:`suspendDynamics` and :py:meth:`restoreDynamics` allow you to change the state.
|
||||
|
||||
.. attribute:: linearDamping
|
||||
|
||||
The object's linear damping, also known as translational damping. Can be set simultaneously with angular damping using the :py:meth:`setDamping` method.
|
||||
|
@ -671,13 +673,19 @@ base class --- :class:`SCA_IObject`
|
|||
:arg angular_damping: Angular ("rotational") damping factor.
|
||||
:type angular_damping: float ∈ [0, 1]
|
||||
|
||||
.. method:: suspendDynamics()
|
||||
.. method:: suspendDynamics([ghost])
|
||||
|
||||
Suspends physics for this object.
|
||||
|
||||
:arg ghost: When set to `True`, collisions with the object will be ignored, similar to the "ghost" checkbox in
|
||||
Blender. When `False` (the default), the object becomes static but still collide with other objects.
|
||||
:type ghost: bool
|
||||
|
||||
.. seealso:: :py:attr:`isSuspendDynamics` allows you to inspect whether the object is in a suspended state.
|
||||
|
||||
.. method:: restoreDynamics()
|
||||
|
||||
Resumes physics for this object.
|
||||
Resumes physics for this object. Also reinstates collisions; the object will no longer be a ghost.
|
||||
|
||||
.. note::
|
||||
|
||||
|
|
|
@ -1907,7 +1907,7 @@ PyMethodDef KX_GameObject::Methods[] = {
|
|||
{"getReactionForce", (PyCFunction) KX_GameObject::sPyGetReactionForce, METH_NOARGS},
|
||||
{"alignAxisToVect",(PyCFunction) KX_GameObject::sPyAlignAxisToVect, METH_VARARGS},
|
||||
{"getAxisVect",(PyCFunction) KX_GameObject::sPyGetAxisVect, METH_O},
|
||||
{"suspendDynamics", (PyCFunction)KX_GameObject::sPySuspendDynamics,METH_NOARGS},
|
||||
{"suspendDynamics", (PyCFunction)KX_GameObject::sPySuspendDynamics, METH_VARARGS},
|
||||
{"restoreDynamics", (PyCFunction)KX_GameObject::sPyRestoreDynamics,METH_NOARGS},
|
||||
{"enableRigidBody", (PyCFunction)KX_GameObject::sPyEnableRigidBody,METH_NOARGS},
|
||||
{"disableRigidBody", (PyCFunction)KX_GameObject::sPyDisableRigidBody,METH_NOARGS},
|
||||
|
@ -3318,10 +3318,16 @@ PyObject *KX_GameObject::PyApplyImpulse(PyObject *args)
|
|||
|
||||
|
||||
|
||||
PyObject *KX_GameObject::PySuspendDynamics()
|
||||
PyObject *KX_GameObject::PySuspendDynamics(PyObject *args)
|
||||
{
|
||||
bool ghost = false;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "|b", &ghost))
|
||||
return NULL;
|
||||
|
||||
if (GetPhysicsController())
|
||||
GetPhysicsController()->SuspendDynamics();
|
||||
GetPhysicsController()->SuspendDynamics(ghost);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1005,7 +1005,7 @@ public:
|
|||
KX_PYMETHOD_O(KX_GameObject,SetState);
|
||||
KX_PYMETHOD_VARARGS(KX_GameObject,AlignAxisToVect);
|
||||
KX_PYMETHOD_O(KX_GameObject,GetAxisVect);
|
||||
KX_PYMETHOD_NOARGS(KX_GameObject,SuspendDynamics);
|
||||
KX_PYMETHOD_VARARGS(KX_GameObject,SuspendDynamics);
|
||||
KX_PYMETHOD_NOARGS(KX_GameObject,RestoreDynamics);
|
||||
KX_PYMETHOD_NOARGS(KX_GameObject,EnableRigidBody);
|
||||
KX_PYMETHOD_NOARGS(KX_GameObject,DisableRigidBody);
|
||||
|
|
Loading…
Reference in New Issue