Undo revision 23130 which was a merge with 2.5, a messy one because I did something...
[blender.git] / source / gameengine / Converter / BL_ActionActuator.cpp
index ca42907..5a3629c 100644 (file)
@@ -436,6 +436,365 @@ bool BL_ActionActuator::Update(double curtime, bool frame)
 /* Python functions                                                          */
 /* ------------------------------------------------------------------------- */
 
+/*     setStart                                                              */
+const char BL_ActionActuator::GetAction_doc[] = 
+"getAction()\n"
+"\tReturns a string containing the name of the current action.\n";
+
+PyObject* BL_ActionActuator::PyGetAction(PyObject* args, 
+                                                                                PyObject* kwds) {
+       ShowDeprecationWarning("getAction()", "the action property");
+
+       if (m_action){
+               return PyUnicode_FromString(m_action->id.name+2);
+       }
+       Py_RETURN_NONE;
+}
+
+/*     getProperty                                                             */
+const char BL_ActionActuator::GetProperty_doc[] = 
+"getProperty()\n"
+"\tReturns the name of the property to be used in FromProp mode.\n";
+
+PyObject* BL_ActionActuator::PyGetProperty(PyObject* args, 
+                                                                                  PyObject* kwds) {
+       ShowDeprecationWarning("getProperty()", "the property property");
+
+       PyObject *result;
+       
+       result = Py_BuildValue("s", (const char *)m_propname);
+       
+       return result;
+}
+
+/*     getProperty                                                             */
+const char BL_ActionActuator::GetFrameProperty_doc[] = 
+"getFrameProperty()\n"
+"\tReturns the name of the property, that is set to the current frame number.\n";
+
+PyObject* BL_ActionActuator::PyGetFrameProperty(PyObject* args, 
+                                                                                  PyObject* kwds) {
+       ShowDeprecationWarning("getFrameProperty()", "the frameProperty property");
+
+       PyObject *result;
+       
+       result = Py_BuildValue("s", (const char *)m_framepropname);
+       
+       return result;
+}
+
+/*     getFrame                                                              */
+const char BL_ActionActuator::GetFrame_doc[] = 
+"getFrame()\n"
+"\tReturns the current frame number.\n";
+
+PyObject* BL_ActionActuator::PyGetFrame(PyObject* args, 
+                                                                               PyObject* kwds) {
+       ShowDeprecationWarning("getFrame()", "the frame property");
+
+       PyObject *result;
+       
+       result = Py_BuildValue("f", m_localtime);
+       
+       return result;
+}
+
+/*     getEnd                                                                */
+const char BL_ActionActuator::GetEnd_doc[] = 
+"getEnd()\n"
+"\tReturns the last frame of the action.\n";
+
+PyObject* BL_ActionActuator::PyGetEnd(PyObject* args, 
+                                                                         PyObject* kwds) {
+       ShowDeprecationWarning("getEnd()", "the end property");
+
+       PyObject *result;
+       
+       result = Py_BuildValue("f", m_endframe);
+       
+       return result;
+}
+
+/*     getStart                                                              */
+const char BL_ActionActuator::GetStart_doc[] = 
+"getStart()\n"
+"\tReturns the starting frame of the action.\n";
+
+PyObject* BL_ActionActuator::PyGetStart(PyObject* args, 
+                                                                               PyObject* kwds) {
+       ShowDeprecationWarning("getStart()", "the start property");
+
+       PyObject *result;
+       
+       result = Py_BuildValue("f", m_startframe);
+       
+       return result;
+}
+
+/*     getBlendin                                                            */
+const char BL_ActionActuator::GetBlendin_doc[] = 
+"getBlendin()\n"
+"\tReturns the number of interpolation animation frames to be\n"
+"\tgenerated when this actuator is triggered.\n";
+
+PyObject* BL_ActionActuator::PyGetBlendin(PyObject* args, 
+                                                                                 PyObject* kwds) {
+       ShowDeprecationWarning("getBlendin()", "the blendin property");
+
+       PyObject *result;
+       
+       result = Py_BuildValue("f", m_blendin);
+       
+       return result;
+}
+
+/*     getPriority                                                           */
+const char BL_ActionActuator::GetPriority_doc[] = 
+"getPriority()\n"
+"\tReturns the priority for this actuator.  Actuators with lower\n"
+"\tPriority numbers will override actuators with higher numbers.\n";
+
+PyObject* BL_ActionActuator::PyGetPriority(PyObject* args, 
+                                                                                  PyObject* kwds) {
+       ShowDeprecationWarning("getPriority()", "the priority property");
+
+       PyObject *result;
+       
+       result = Py_BuildValue("i", m_priority);
+       
+       return result;
+}
+
+/*     setAction                                                             */
+const char BL_ActionActuator::SetAction_doc[] = 
+"setAction(action, (reset))\n"
+"\t - action    : The name of the action to set as the current action.\n"
+"\t - reset     : Optional parameter indicating whether to reset the\n"
+"\t               blend timer or not.  A value of 1 indicates that the\n"
+"\t               timer should be reset.  A value of 0 will leave it\n"
+"\t               unchanged.  If reset is not specified, the timer will"
+"\t                  be reset.\n";
+
+PyObject* BL_ActionActuator::PySetAction(PyObject* args, 
+                                                                                PyObject* kwds) {
+       ShowDeprecationWarning("setAction()", "the action property");
+
+       char *string;
+       int     reset = 1;
+
+       if (PyArg_ParseTuple(args,"s|i:setAction",&string, &reset))
+       {
+               bAction *action;
+               
+               action = (bAction*)SCA_ILogicBrick::m_sCurrentLogicManager->GetActionByName(STR_String(string));
+               
+               if (!action){
+                       /* NOTE!  Throw an exception or something */
+                       //                      printf ("setAction failed: Action not found\n", string);
+               }
+               else{
+                       m_action=action;
+                       if (reset)
+                               m_blendframe = 0;
+               }
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
+/*     setStart                                                              */
+const char BL_ActionActuator::SetStart_doc[] = 
+"setStart(start)\n"
+"\t - start     : Specifies the starting frame of the animation.\n";
+
+PyObject* BL_ActionActuator::PySetStart(PyObject* args, 
+                                                                               PyObject* kwds) {
+       ShowDeprecationWarning("setStart()", "the start property");
+
+       float start;
+       
+       if (PyArg_ParseTuple(args,"f:setStart",&start))
+       {
+               m_startframe = start;
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
+/*     setEnd                                                                */
+const char BL_ActionActuator::SetEnd_doc[] = 
+"setEnd(end)\n"
+"\t - end       : Specifies the ending frame of the animation.\n";
+
+PyObject* BL_ActionActuator::PySetEnd(PyObject* args, 
+                                                                         PyObject* kwds) {
+       ShowDeprecationWarning("setEnd()", "the end property");
+
+       float end;
+       
+       if (PyArg_ParseTuple(args,"f:setEnd",&end))
+       {
+               m_endframe = end;
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
+/*     setBlendin                                                            */
+const char BL_ActionActuator::SetBlendin_doc[] = 
+"setBlendin(blendin)\n"
+"\t - blendin   : Specifies the number of frames of animation to generate\n"
+"\t               when making transitions between actions.\n";
+
+PyObject* BL_ActionActuator::PySetBlendin(PyObject* args, 
+                                                                                 PyObject* kwds) {
+       ShowDeprecationWarning("setBlendin()", "the blendin property");
+
+       float blendin;
+       
+       if (PyArg_ParseTuple(args,"f:setBlendin",&blendin))
+       {
+               m_blendin = blendin;
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
+/*     setBlendtime                                                          */
+const char BL_ActionActuator::SetBlendtime_doc[] = 
+"setBlendtime(blendtime)\n"
+"\t - blendtime : Allows the script to directly modify the internal timer\n"
+"\t               used when generating transitions between actions.  This\n"
+"\t               parameter must be in the range from 0.0 to 1.0.\n";
+
+PyObject* BL_ActionActuator::PySetBlendtime(PyObject* args, 
+                                                                                 PyObject* kwds) {
+       ShowDeprecationWarning("setBlendtime()", "the blendtime property");
+
+       float blendframe;
+       
+       if (PyArg_ParseTuple(args,"f:setBlendtime",&blendframe))
+       {
+               m_blendframe = blendframe * m_blendin;
+               if (m_blendframe<0)
+                       m_blendframe = 0;
+               if (m_blendframe>m_blendin)
+                       m_blendframe = m_blendin;
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
+/*     setPriority                                                           */
+const char BL_ActionActuator::SetPriority_doc[] = 
+"setPriority(priority)\n"
+"\t - priority  : Specifies the new priority.  Actuators will lower\n"
+"\t               priority numbers will override actuators with higher\n"
+"\t               numbers.\n";
+
+PyObject* BL_ActionActuator::PySetPriority(PyObject* args, 
+                                                                                  PyObject* kwds) {
+       ShowDeprecationWarning("setPriority()", "the priority property");
+
+       int priority;
+       
+       if (PyArg_ParseTuple(args,"i:setPriority",&priority))
+       {
+               m_priority = priority;
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
+/*     setFrame                                                              */
+const char BL_ActionActuator::SetFrame_doc[] = 
+"setFrame(frame)\n"
+"\t - frame     : Specifies the new current frame for the animation\n";
+
+PyObject* BL_ActionActuator::PySetFrame(PyObject* args, 
+                                                                               PyObject* kwds) {
+       ShowDeprecationWarning("setFrame()", "the frame property");
+
+       float frame;
+       
+       if (PyArg_ParseTuple(args,"f:setFrame",&frame))
+       {
+               m_localtime = frame;
+               if (m_localtime<m_startframe)
+                       m_localtime=m_startframe;
+               else if (m_localtime>m_endframe)
+                       m_localtime=m_endframe;
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
+/*     setProperty                                                           */
+const char BL_ActionActuator::SetProperty_doc[] = 
+"setProperty(prop)\n"
+"\t - prop      : A string specifying the property name to be used in\n"
+"\t               FromProp playback mode.\n";
+
+PyObject* BL_ActionActuator::PySetProperty(PyObject* args, 
+                                                                                  PyObject* kwds) {
+       ShowDeprecationWarning("setProperty()", "the property property");
+
+       char *string;
+       
+       if (PyArg_ParseTuple(args,"s:setProperty",&string))
+       {
+               m_propname = string;
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
+/*     setFrameProperty                                                          */
+const char BL_ActionActuator::SetFrameProperty_doc[] = 
+"setFrameProperty(prop)\n"
+"\t - prop      : A string specifying the property of the frame set up update.\n";
+
+PyObject* BL_ActionActuator::PySetFrameProperty(PyObject* args, 
+                                                                                  PyObject* kwds) {
+       ShowDeprecationWarning("setFrameProperty()", "the frameProperty property");
+
+       char *string;
+       
+       if (PyArg_ParseTuple(args,"s:setFrameProperty",&string))
+       {
+               m_framepropname = string;
+       }
+       else {
+               return NULL;
+       }
+       
+       Py_RETURN_NONE;
+}
+
 PyObject* BL_ActionActuator::PyGetChannel(PyObject* value) {
        char *string= _PyUnicode_AsString(value);
        
@@ -490,6 +849,72 @@ PyObject* BL_ActionActuator::PyGetChannel(PyObject* value) {
 */
 }
 
+/* getType */
+const char BL_ActionActuator::GetType_doc[] =
+"getType()\n"
+"\tReturns the operation mode of the actuator.\n";
+PyObject* BL_ActionActuator::PyGetType(PyObject* args, 
+                                       PyObject* kwds) {
+       ShowDeprecationWarning("getType()", "the type property");
+
+    return Py_BuildValue("h", m_playtype);
+}
+
+/* setType */
+const char BL_ActionActuator::SetType_doc[] =
+"setType(mode)\n"
+"\t - mode: Play (0), Flipper (2), LoopStop (3), LoopEnd (4) or Property (6)\n"
+"\tSet the operation mode of the actuator.\n";
+PyObject* BL_ActionActuator::PySetType(PyObject* args,
+                                       PyObject* kwds) {
+       ShowDeprecationWarning("setType()", "the type property");
+
+       short typeArg;
+                                                                                                             
+    if (!PyArg_ParseTuple(args, "h:setType", &typeArg)) {
+        return NULL;
+    }
+
+       switch (typeArg) {
+       case ACT_ACTION_PLAY:
+       case ACT_ACTION_FLIPPER:
+       case ACT_ACTION_LOOP_STOP:
+       case ACT_ACTION_LOOP_END:
+       case ACT_ACTION_FROM_PROP:
+               m_playtype = typeArg;
+               break;
+       default:
+               printf("Invalid type for action actuator: %d\n", typeArg); /* error */
+    }
+       Py_RETURN_NONE;
+}
+
+PyObject* BL_ActionActuator::PyGetContinue() {
+       ShowDeprecationWarning("getContinue()", "the continue property");
+
+    return PyLong_FromSsize_t((long)(m_end_reset==0));
+}
+
+PyObject* BL_ActionActuator::PySetContinue(PyObject* value) {
+       ShowDeprecationWarning("setContinue()", "the continue property");
+
+       int param = PyObject_IsTrue( value );
+       
+       if( param == -1 ) {
+               PyErr_SetString( PyExc_TypeError, "expected True/False or 0/1" );
+               return NULL;
+       }
+
+       if (param) {
+               m_end_reset = 0;
+       } else {
+               m_end_reset = 1;
+       }
+    Py_RETURN_NONE;
+}
+
+//<-----Deprecated
+
 /*     setChannel                                                         */
 KX_PYMETHODDEF_DOC(BL_ActionActuator, setChannel,
 "setChannel(channel, matrix)\n"
@@ -603,7 +1028,31 @@ PyTypeObject BL_ActionActuator::Type = {
 };
 
 PyMethodDef BL_ActionActuator::Methods[] = {
+       //Deprecated ----->
+       {"setAction", (PyCFunction) BL_ActionActuator::sPySetAction, METH_VARARGS, (const char *)SetAction_doc},
+       {"setStart", (PyCFunction) BL_ActionActuator::sPySetStart, METH_VARARGS, (const char *)SetStart_doc},
+       {"setEnd", (PyCFunction) BL_ActionActuator::sPySetEnd, METH_VARARGS, (const char *)SetEnd_doc},
+       {"setBlendin", (PyCFunction) BL_ActionActuator::sPySetBlendin, METH_VARARGS, (const char *)SetBlendin_doc},
+       {"setPriority", (PyCFunction) BL_ActionActuator::sPySetPriority, METH_VARARGS, (const char *)SetPriority_doc},
+       {"setFrame", (PyCFunction) BL_ActionActuator::sPySetFrame, METH_VARARGS, (const char *)SetFrame_doc},
+       {"setProperty", (PyCFunction) BL_ActionActuator::sPySetProperty, METH_VARARGS, (const char *)SetProperty_doc},
+       {"setFrameProperty", (PyCFunction) BL_ActionActuator::sPySetFrameProperty, METH_VARARGS, (const char *)SetFrameProperty_doc},
+       {"setBlendtime", (PyCFunction) BL_ActionActuator::sPySetBlendtime, METH_VARARGS, (const char *)SetBlendtime_doc},
+
+       {"getAction", (PyCFunction) BL_ActionActuator::sPyGetAction, METH_VARARGS, (const char *)GetAction_doc},
+       {"getStart", (PyCFunction) BL_ActionActuator::sPyGetStart, METH_VARARGS, (const char *)GetStart_doc},
+       {"getEnd", (PyCFunction) BL_ActionActuator::sPyGetEnd, METH_VARARGS, (const char *)GetEnd_doc},
+       {"getBlendin", (PyCFunction) BL_ActionActuator::sPyGetBlendin, METH_VARARGS, (const char *)GetBlendin_doc},
+       {"getPriority", (PyCFunction) BL_ActionActuator::sPyGetPriority, METH_VARARGS, (const char *)GetPriority_doc},
+       {"getFrame", (PyCFunction) BL_ActionActuator::sPyGetFrame, METH_VARARGS, (const char *)GetFrame_doc},
+       {"getProperty", (PyCFunction) BL_ActionActuator::sPyGetProperty, METH_VARARGS, (const char *)GetProperty_doc},
+       {"getFrameProperty", (PyCFunction) BL_ActionActuator::sPyGetFrameProperty, METH_VARARGS, (const char *)GetFrameProperty_doc},
        {"getChannel", (PyCFunction) BL_ActionActuator::sPyGetChannel, METH_O},
+       {"getType", (PyCFunction) BL_ActionActuator::sPyGetType, METH_VARARGS, (const char *)GetType_doc},
+       {"setType", (PyCFunction) BL_ActionActuator::sPySetType, METH_VARARGS, (const char *)SetType_doc},
+       {"getContinue", (PyCFunction) BL_ActionActuator::sPyGetContinue, METH_NOARGS, 0},       
+       {"setContinue", (PyCFunction) BL_ActionActuator::sPySetContinue, METH_O, 0},
+       //<------
        KX_PYMETHODTABLE(BL_ActionActuator, setChannel),
        {NULL,NULL} //Sentinel
 };