Revision: 37775
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37775
Author:   moguri
Date:     2011-06-23 22:44:24 +0000 (Thu, 23 Jun 2011)
Log Message:
-----------
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.

Modified Paths:
--------------
    branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.cpp
    branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.h

Modified: branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.cpp 
2011-06-23 22:33:42 UTC (rev 37774)
+++ branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.cpp 
2011-06-23 22:44:24 UTC (rev 37775)
@@ -1556,6 +1556,8 @@
        KX_PYMETHODTABLE(KX_GameObject, sendMessage),
 
        KX_PYMETHODTABLE_KEYWORDS(KX_GameObject, playAction),
+       KX_PYMETHODTABLE(KX_GameObject, getActionFrame),
+       KX_PYMETHODTABLE(KX_GameObject, setActionFrame),
        
        // dict style access for props
        {"get",(PyCFunction) KX_GameObject::sPyget, METH_VARARGS},
@@ -3046,7 +3048,7 @@
 
        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))
                return NULL;
 
@@ -3072,6 +3074,33 @@
 
        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 */
 
 

Modified: branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.h
===================================================================
--- branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.h   
2011-06-23 22:33:42 UTC (rev 37774)
+++ branches/soc-2011-pepper/source/gameengine/Ketsji/KX_GameObject.h   
2011-06-23 22:44:24 UTC (rev 37775)
@@ -908,6 +908,8 @@
        KX_PYMETHOD_VARARGS(KX_GameObject, ReinstancePhysicsMesh);
 
        KX_PYMETHOD_DOC(KX_GameObject, playAction);
+       KX_PYMETHOD_DOC(KX_GameObject, getActionFrame);
+       KX_PYMETHOD_DOC(KX_GameObject, setActionFrame);
        
        /* Dict access */
        KX_PYMETHOD_VARARGS(KX_GameObject,get);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to