diff options
author | Benoit Bolsee <benoit.bolsee@online.be> | 2009-03-01 01:25:23 +0300 |
---|---|---|
committer | Benoit Bolsee <benoit.bolsee@online.be> | 2009-03-01 01:25:23 +0300 |
commit | d4adc43fc1746389ef89dce5c32163ba1d6011aa (patch) | |
tree | eb8dd56b999b0261942ac385029c2e2ef5796e7b | |
parent | 56977d62d43f7591ddeef47ff4ff1f0858d5c41f (diff) |
BGE patch #18309 commited: Add an addObject() method to KX_Scene.
-rw-r--r-- | source/gameengine/Ketsji/KX_Scene.cpp | 47 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_Scene.h | 1 |
2 files changed, 36 insertions, 12 deletions
diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 073cfc98bf1..0fded15f1a1 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1517,18 +1517,6 @@ double KX_Scene::getSuspendedDelta() //---------------------------------------------------------------------------- //Python -PyMethodDef KX_Scene::Methods[] = { - KX_PYMETHODTABLE_NOARGS(KX_Scene, getLightList), - KX_PYMETHODTABLE_NOARGS(KX_Scene, getObjectList), - KX_PYMETHODTABLE_NOARGS(KX_Scene, getName), - - {NULL,NULL} //Sentinel -}; - -PyAttributeDef KX_Scene::Attributes[] = { - { NULL } //Sentinel -}; - PyTypeObject KX_Scene::Type = { PyObject_HEAD_INIT(&PyType_Type) 0, @@ -1554,6 +1542,19 @@ PyParentObject KX_Scene::Parents[] = { NULL }; +PyMethodDef KX_Scene::Methods[] = { + KX_PYMETHODTABLE(KX_Scene, getLightList), + KX_PYMETHODTABLE(KX_Scene, getObjectList), + KX_PYMETHODTABLE(KX_Scene, getName), + KX_PYMETHODTABLE(KX_Scene, addObject), + + {NULL,NULL} //Sentinel +}; + +PyAttributeDef KX_Scene::Attributes[] = { + { NULL } //Sentinel +}; + PyObject* KX_Scene::_getattr(const char *attr) { if (!strcmp(attr, "name")) @@ -1622,3 +1623,25 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Scene, getName, { return PyString_FromString(GetName()); } + +KX_PYMETHODDEF_DOC(KX_Scene, addObject, +"addObject(object, other, time=0)\n" +"Returns the added object.\n") +{ + PyObject *pyob, *pyother; + KX_GameObject *ob, *other; + + int time = 0; + + if (!PyArg_ParseTuple(args, "OO|i", &pyob, &pyother, &time)) + return NULL; + + if (!ConvertPythonToGameObject(pyob, &ob, false) + || !ConvertPythonToGameObject(pyother, &other, false)) + return NULL; + + + SCA_IObject* replica = AddReplicaObject((SCA_IObject*)ob, other, time); + replica->AddRef(); + return replica; +}
\ No newline at end of file diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h index e49a87b0402..962db1a9b96 100644 --- a/source/gameengine/Ketsji/KX_Scene.h +++ b/source/gameengine/Ketsji/KX_Scene.h @@ -550,6 +550,7 @@ public: KX_PYMETHOD_DOC_NOARGS(KX_Scene, getLightList); KX_PYMETHOD_DOC_NOARGS(KX_Scene, getObjectList); KX_PYMETHOD_DOC_NOARGS(KX_Scene, getName); + KX_PYMETHOD_DOC(KX_Scene, addObject); /* KX_PYMETHOD_DOC(KX_Scene, getActiveCamera); KX_PYMETHOD_DOC(KX_Scene, getActiveCamera); |