forked from bartvdbraak/blender
BGE Animations: Exposing KX_GameObject's GetActionFrame() and SetActionFrame() to Python. KX_GameObject.setActionFrame() seems to still have some issues, which I suspect to be a timing thing. I may need to find a better way to set the local time.
This commit is contained in:
parent
7996d04474
commit
ea47125f16
@ -1556,6 +1556,8 @@ PyMethodDef KX_GameObject::Methods[] = {
|
|||||||
KX_PYMETHODTABLE(KX_GameObject, sendMessage),
|
KX_PYMETHODTABLE(KX_GameObject, sendMessage),
|
||||||
|
|
||||||
KX_PYMETHODTABLE_KEYWORDS(KX_GameObject, playAction),
|
KX_PYMETHODTABLE_KEYWORDS(KX_GameObject, playAction),
|
||||||
|
KX_PYMETHODTABLE(KX_GameObject, getActionFrame),
|
||||||
|
KX_PYMETHODTABLE(KX_GameObject, setActionFrame),
|
||||||
|
|
||||||
// dict style access for props
|
// dict style access for props
|
||||||
{"get",(PyCFunction) KX_GameObject::sPyget, METH_VARARGS},
|
{"get",(PyCFunction) KX_GameObject::sPyget, METH_VARARGS},
|
||||||
@ -3046,7 +3048,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, playAction,
|
|||||||
|
|
||||||
static const char *kwlist[] = {"name", "start_frame", "end_frame", "layer", "priority", "blendin", "play_mode", "blend_mode", "ipo_flags", "speed", NULL};
|
static const char *kwlist[] = {"name", "start_frame", "end_frame", "layer", "priority", "blendin", "play_mode", "blend_mode", "ipo_flags", "speed", NULL};
|
||||||
|
|
||||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "sff|hhfhhhf", const_cast<char**>(kwlist),
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "sff|hhfhhhf:playAction", const_cast<char**>(kwlist),
|
||||||
&name, &start, &end, &layer, &priority, &blendin, &play_mode, &blend_mode, &ipo_flags, &speed))
|
&name, &start, &end, &layer, &priority, &blendin, &play_mode, &blend_mode, &ipo_flags, &speed))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@ -3072,6 +3074,33 @@ KX_PYMETHODDEF_DOC(KX_GameObject, playAction,
|
|||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KX_PYMETHODDEF_DOC(KX_GameObject, getActionFrame,
|
||||||
|
"getActionFrame(layer)\n"
|
||||||
|
"Gets the current frame of the action playing in the supplied layer")
|
||||||
|
{
|
||||||
|
short layer;
|
||||||
|
|
||||||
|
if (!PyArg_ParseTuple(args, "h:getActionFrame", &layer))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return PyLong_FromLong(GetActionFrame(layer));
|
||||||
|
}
|
||||||
|
|
||||||
|
KX_PYMETHODDEF_DOC(KX_GameObject, setActionFrame,
|
||||||
|
"setActionFrame(layer, frame)\n"
|
||||||
|
"Set the current fram of the action playing in the supplied layer")
|
||||||
|
{
|
||||||
|
short layer, frame;
|
||||||
|
|
||||||
|
if (!PyArg_ParseTuple(args, "hh:setActionFrame", &layer, &frame))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
SetActionFrame(layer, frame);
|
||||||
|
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
/* dict style access */
|
/* dict style access */
|
||||||
|
|
||||||
|
|
||||||
|
@ -908,6 +908,8 @@ public:
|
|||||||
KX_PYMETHOD_VARARGS(KX_GameObject, ReinstancePhysicsMesh);
|
KX_PYMETHOD_VARARGS(KX_GameObject, ReinstancePhysicsMesh);
|
||||||
|
|
||||||
KX_PYMETHOD_DOC(KX_GameObject, playAction);
|
KX_PYMETHOD_DOC(KX_GameObject, playAction);
|
||||||
|
KX_PYMETHOD_DOC(KX_GameObject, getActionFrame);
|
||||||
|
KX_PYMETHOD_DOC(KX_GameObject, setActionFrame);
|
||||||
|
|
||||||
/* Dict access */
|
/* Dict access */
|
||||||
KX_PYMETHOD_VARARGS(KX_GameObject,get);
|
KX_PYMETHOD_VARARGS(KX_GameObject,get);
|
||||||
|
Loading…
Reference in New Issue
Block a user