Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-04-20 13:13:59 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-04-20 13:13:59 +0400
commitdee32d0b3f409007f5a392668068b92c3810026a (patch)
tree3127ac9c88ea9d783282d3bf8ed5ba8f2a40eb43 /source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
parent9078ce5da209bcfd31c60b55118076359ce7244f (diff)
BGE Python API
- initialize pythons sys.argv in the blenderplayer - ignore all arguments after a single " - " in the blenderplayer (like in blender), so args can be passed to the game. - add a utility function PyOrientationTo() - to take a Py euler, quat or 3x3 matrix and convert into a C++ MT_Matrix3x3. - add utility function ConvertPythonToMesh to get a RAS_MeshObject from a KX_MeshProxy or a name. - Added error prefix arguments to ConvertPythonToGameObject, ConvertPythonToMesh and PyOrientationTo so the error messages can include what function they came from. - deprecated brick.getOwner() for the "owner" attribute.
Diffstat (limited to 'source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp41
1 files changed, 10 insertions, 31 deletions
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
index 53067e94cd8..38f8d581d55 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
@@ -116,22 +116,12 @@ PyObject* KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct K
int KX_SCA_ReplaceMeshActuator::pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
{
KX_SCA_ReplaceMeshActuator* actuator = static_cast<KX_SCA_ReplaceMeshActuator*>(self);
- if (value == Py_None) {
- actuator->m_mesh = NULL;
- } else if (PyString_Check(value)) {
- void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(PyString_AsString(value)));
- if (mesh==NULL) {
- PyErr_SetString(PyExc_ValueError, "actuator.mesh = string: Replace Mesh Actuator, mesh name given does not exist");
- return 1;
- }
- actuator->m_mesh= (class RAS_MeshObject*)mesh;
- } else if PyObject_TypeCheck(value, &KX_MeshProxy::Type) {
- KX_MeshProxy* proxy = (KX_MeshProxy*)value;
- actuator->m_mesh= proxy->GetMesh();
- } else {
- PyErr_SetString(PyExc_ValueError, "actuator.mesh = value: Replace Mesh Actuator, expected the mesh name, a KX_MeshProxy or None");
+ RAS_MeshObject* new_mesh;
+
+ if (!ConvertPythonToMesh(value, &new_mesh, true, "actuator.mesh = value: KX_SCA_ReplaceMeshActuator"))
return 1;
- }
+
+ actuator->m_mesh = new_mesh;
return 0;
}
@@ -144,23 +134,12 @@ const char KX_SCA_ReplaceMeshActuator::SetMesh_doc[] =
PyObject* KX_SCA_ReplaceMeshActuator::PySetMesh(PyObject* value)
{
ShowDeprecationWarning("setMesh()", "the mesh property");
- if (value == Py_None) {
- m_mesh = NULL;
- } else {
- char* meshname = PyString_AsString(value);
- if (!meshname) {
- PyErr_SetString(PyExc_ValueError, "Expected the name of a mesh or None");
- return NULL;
- }
- void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname));
-
- if (mesh==NULL) {
- PyErr_SetString(PyExc_ValueError, "The mesh name given does not exist");
- return NULL;
- }
- m_mesh= (class RAS_MeshObject*)mesh;
- }
+ RAS_MeshObject* new_mesh;
+
+ if (!ConvertPythonToMesh(value, &new_mesh, true, "actuator.mesh = value: KX_SCA_ReplaceMeshActuator"))
+ return NULL;
+ m_mesh = new_mesh;
Py_RETURN_NONE;
}