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
path: root/source
diff options
context:
space:
mode:
authorBenoit Bolsee <benoit.bolsee@online.be>2009-03-29 19:17:55 +0400
committerBenoit Bolsee <benoit.bolsee@online.be>2009-03-29 19:17:55 +0400
commitd57811ada14ad3f9833e77b2cff0d624c7e1ff89 (patch)
tree2133b381f5ac07ed7000b1c4bf644aafaad4124c /source
parent02191a1d396c838a0c90e4f08e4e2883c357102d (diff)
BGE API cleanup: CDActuator, ParentActuator, VisibilityActuator done. Thanks to Andre.
Diffstat (limited to 'source')
-rw-r--r--source/gameengine/Ketsji/KX_CDActuator.cpp91
-rw-r--r--source/gameengine/Ketsji/KX_CDActuator.h17
-rw-r--r--source/gameengine/Ketsji/KX_ParentActuator.cpp65
-rw-r--r--source/gameengine/Ketsji/KX_ParentActuator.h8
-rw-r--r--source/gameengine/Ketsji/KX_VisibilityActuator.cpp23
-rw-r--r--source/gameengine/Ketsji/KX_VisibilityActuator.h6
-rw-r--r--source/gameengine/PyDoc/KX_CDActuator.py21
-rw-r--r--source/gameengine/PyDoc/KX_ParentActuator.py5
-rw-r--r--source/gameengine/PyDoc/KX_VisibilityActuator.py7
9 files changed, 193 insertions, 50 deletions
diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp
index ef7883910fd..98f76dbee54 100644
--- a/source/gameengine/Ketsji/KX_CDActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CDActuator.cpp
@@ -98,7 +98,7 @@ bool KX_CDActuator::Update()
SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL);
SND_CDObject::Instance()->SetTrack(1);
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_PLAY_TRACK:
@@ -106,7 +106,7 @@ bool KX_CDActuator::Update()
SND_CDObject::Instance()->SetPlaymode(SND_CD_TRACK);
SND_CDObject::Instance()->SetTrack(m_track);
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_LOOP_TRACK:
@@ -114,7 +114,7 @@ bool KX_CDActuator::Update()
SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL);
SND_CDObject::Instance()->SetTrack(m_track);
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_STOP:
@@ -125,19 +125,19 @@ bool KX_CDActuator::Update()
case KX_CDACT_PAUSE:
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PAUSE);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_RESUME:
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_RESUME);
- result = true;
+ //result = true;
break;
}
case KX_CDACT_VOLUME:
{
SND_CDObject::Instance()->SetGain(m_gain);
- result = true;
+ //result = true;
break;
}
default:
@@ -189,53 +189,116 @@ PyParentObject KX_CDActuator::Parents[] = {
PyMethodDef KX_CDActuator::Methods[] = {
- {"startCD",(PyCFunction) KX_CDActuator::sPyStartCD,METH_VARARGS,NULL},
- {"pauseCD",(PyCFunction) KX_CDActuator::sPyPauseCD,METH_VARARGS,NULL},
- {"stopCD",(PyCFunction) KX_CDActuator::sPyStopCD,METH_VARARGS,NULL},
+ // Deprecated ----->
{"setGain",(PyCFunction) KX_CDActuator::sPySetGain,METH_VARARGS,NULL},
{"getGain",(PyCFunction) KX_CDActuator::sPyGetGain,METH_VARARGS,NULL},
+ // <-----
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, startCD),
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, pauseCD),
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, resumeCD),
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, stopCD),
+ KX_PYMETHODTABLE_NOARGS(KX_CDActuator, playAll),
+ KX_PYMETHODTABLE_O(KX_CDActuator, playTrack),
{NULL,NULL,NULL,NULL} //Sentinel
};
PyAttributeDef KX_CDActuator::Attributes[] = {
+ KX_PYATTRIBUTE_FLOAT_RW_CHECK("volume", 0.0, 1.0, KX_CDActuator, m_gain,pyattr_setGain),
+ KX_PYATTRIBUTE_INT_RW("track", 1, 99, false, KX_CDActuator, m_track),
{ NULL } //Sentinel
};
+int KX_CDActuator::pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_CDActuator* act = static_cast<KX_CDActuator*>(self);
+ SND_CDObject::Instance()->SetGain(act->m_gain);
+ return 0;
+}
+
PyObject* KX_CDActuator::_getattr(const char *attr)
{
+ PyObject* object = _getattr_self(Attributes, this, attr);
+ if (object != NULL)
+ return object;
_getattr_up(SCA_IActuator);
}
+int KX_CDActuator::_setattr(const char *attr, PyObject *value)
+{
+ int ret = _setattr_self(Attributes, this, attr, value);
+ if (ret >= 0)
+ return ret;
+ return SCA_IActuator::_setattr(attr, value);
+}
-PyObject* KX_CDActuator::PyStartCD(PyObject* self, PyObject* args, PyObject* kwds)
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, startCD,
+"startCD()\n"
+"\tStarts the CD playing.\n")
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
Py_RETURN_NONE;
}
-
-PyObject* KX_CDActuator::PyPauseCD(PyObject* self, PyObject* args, PyObject* kwds)
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, pauseCD,
+"pauseCD()\n"
+"\tPauses the CD playing.\n")
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_PAUSE);
Py_RETURN_NONE;
}
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, resumeCD,
+"resumeCD()\n"
+"\tResumes the CD playing.\n")
+{
+ SND_CDObject::Instance()->SetPlaystate(SND_MUST_RESUME);
+ Py_RETURN_NONE;
+}
+
-PyObject* KX_CDActuator::PyStopCD(PyObject* self, PyObject* args, PyObject* kwds)
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, stopCD,
+"stopCD()\n"
+"\tStops the CD playing.\n")
{
SND_CDObject::Instance()->SetPlaystate(SND_MUST_STOP);
Py_RETURN_NONE;
}
+KX_PYMETHODDEF_DOC_O(KX_CDActuator, playTrack,
+"playTrack(trackNumber)\n"
+"\tPlays the track selected.\n")
+{
+ if (PyInt_Check(value)) {
+ int track = PyInt_AsLong(value);
+ SND_CDObject::Instance()->SetPlaymode(SND_CD_TRACK);
+ SND_CDObject::Instance()->SetTrack(track);
+ SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
+ }
+ Py_RETURN_NONE;
+}
+
+
+
+KX_PYMETHODDEF_DOC_NOARGS(KX_CDActuator, playAll,
+"playAll()\n"
+"\tPlays the CD from the beginning.\n")
+{
+ SND_CDObject::Instance()->SetPlaymode(SND_CD_ALL);
+ SND_CDObject::Instance()->SetTrack(1);
+ SND_CDObject::Instance()->SetPlaystate(SND_MUST_PLAY);
+ Py_RETURN_NONE;
+}
+// Deprecated ----->
PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwds)
{
float gain = 1.0;
+ ShowDeprecationWarning("setGain()", "the volume property");
if (!PyArg_ParseTuple(args, "f", &gain))
return NULL;
@@ -249,7 +312,9 @@ PyObject* KX_CDActuator::PySetGain(PyObject* self, PyObject* args, PyObject* kwd
PyObject* KX_CDActuator::PyGetGain(PyObject* self, PyObject* args, PyObject* kwds)
{
float gain = SND_CDObject::Instance()->GetGain();
+ ShowDeprecationWarning("getGain()", "the volume property");
PyObject* result = PyFloat_FromDouble(gain);
return result;
}
+// <-----
diff --git a/source/gameengine/Ketsji/KX_CDActuator.h b/source/gameengine/Ketsji/KX_CDActuator.h
index 393c49083f9..08ca6a82db3 100644
--- a/source/gameengine/Ketsji/KX_CDActuator.h
+++ b/source/gameengine/Ketsji/KX_CDActuator.h
@@ -82,12 +82,23 @@ public:
/* -------------------------------------------------------------------- */
virtual PyObject* _getattr(const char *attr);
+ virtual int _setattr(const char *attr, PyObject *value);
- KX_PYMETHOD(KX_CDActuator,StartCD);
- KX_PYMETHOD(KX_CDActuator,PauseCD);
- KX_PYMETHOD(KX_CDActuator,StopCD);
+ // Deprecated ----->
KX_PYMETHOD(KX_CDActuator,SetGain);
KX_PYMETHOD(KX_CDActuator,GetGain);
+ // <-----
+
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, startCD);
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, pauseCD);
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, resumeCD);
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, stopCD);
+ KX_PYMETHOD_DOC_NOARGS(KX_CDActuator, playAll);
+ KX_PYMETHOD_DOC_O(KX_CDActuator, playTrack);
+
+ static int pyattr_setGain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+
+
};
#endif //__KX_CDACTUATOR
diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp
index 84d7ccb9c05..fc5d679f200 100644
--- a/source/gameengine/Ketsji/KX_ParentActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp
@@ -166,48 +166,64 @@ PyParentObject KX_ParentActuator::Parents[] = {
};
PyMethodDef KX_ParentActuator::Methods[] = {
- // ---> deprecated (all)
- {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc},
- {"getObject", (PyCFunction) KX_ParentActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc},
+ // Deprecated ----->
+ {"setObject", (PyCFunction) KX_ParentActuator::sPySetObject, METH_O, (PY_METHODCHAR)SetObject_doc},
+ {"getObject", (PyCFunction) KX_ParentActuator::sPyGetObject, METH_VARARGS, (PY_METHODCHAR)GetObject_doc},
+ // <-----
{NULL,NULL} //Sentinel
};
PyAttributeDef KX_ParentActuator::Attributes[] = {
+ KX_PYATTRIBUTE_RW_FUNCTION("object", KX_ParentActuator, pyattr_get_object, pyattr_set_object),
{ NULL } //Sentinel
};
-PyObject* KX_ParentActuator::_getattr(const char *attr) {
-
- if (!strcmp(attr, "object")) {
- if (!m_ob) Py_RETURN_NONE;
- else return m_ob->AddRef();
- }
-
- _getattr_up(SCA_IActuator);
+PyObject* KX_ParentActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_ParentActuator* actuator = static_cast<KX_ParentActuator*>(self);
+ if (!actuator->m_ob)
+ Py_RETURN_NONE;
+ else
+ return actuator->m_ob->AddRef();
}
-int KX_ParentActuator::_setattr(const char *attr, PyObject* value) {
-
- if (!strcmp(attr, "object")) {
- KX_GameObject *gameobj;
+int KX_ParentActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
+{
+ KX_ParentActuator* actuator = static_cast<KX_ParentActuator*>(self);
+ KX_GameObject *gameobj;
- if (!ConvertPythonToGameObject(value, &gameobj, true))
- return 1; // ConvertPythonToGameObject sets the error
+ if (!ConvertPythonToGameObject(value, &gameobj, true))
+ return 1; // ConvertPythonToGameObject sets the error
- if (m_ob != NULL)
- m_ob->UnregisterActuator(this);
+ if (actuator->m_ob != NULL)
+ actuator->m_ob->UnregisterActuator(actuator);
- m_ob = (SCA_IObject*)gameobj;
+ actuator->m_ob = (SCA_IObject*) gameobj;
- if (m_ob)
- m_ob->RegisterActuator(this);
+ if (actuator->m_ob)
+ actuator->m_ob->RegisterActuator(actuator);
- return 0;
- }
+ return 0;
+}
+
+
+PyObject* KX_ParentActuator::_getattr(const char *attr) {
+
+ PyObject* object = _getattr_self(Attributes, this, attr);
+ if (object != NULL)
+ return object;
+ _getattr_up(SCA_IActuator);
+}
+
+int KX_ParentActuator::_setattr(const char *attr, PyObject* value) {
+ int ret = _setattr_self(Attributes, this, attr, value);
+ if (ret >= 0)
+ return ret;
return SCA_IActuator::_setattr(attr, value);
}
+/* Deprecated -----> */
/* 1. setObject */
const char KX_ParentActuator::SetObject_doc[] =
"setObject(object)\n"
@@ -255,5 +271,6 @@ PyObject* KX_ParentActuator::PyGetObject(PyObject* self, PyObject* args)
else
return m_ob->AddRef();
}
+/* <----- */
/* eof */
diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h
index c974001c0d0..c647e6cc8a9 100644
--- a/source/gameengine/Ketsji/KX_ParentActuator.h
+++ b/source/gameengine/Ketsji/KX_ParentActuator.h
@@ -79,10 +79,14 @@ class KX_ParentActuator : public SCA_IActuator
virtual PyObject* _getattr(const char *attr);
virtual int _setattr(const char *attr, PyObject* value);
- /* 1. setObject */
+ /* These are used to get and set m_ob */
+ static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+
+ // Deprecated ----->
KX_PYMETHOD_DOC_O(KX_ParentActuator,SetObject);
- /* 2. getObject */
KX_PYMETHOD_DOC_VARARGS(KX_ParentActuator,GetObject);
+ // <-----
}; /* end of class KX_ParentActuator : public SCA_PropertyActuator */
diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
index 0ec280080bd..6d3c4e79280 100644
--- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
+++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
@@ -121,20 +121,34 @@ KX_VisibilityActuator::Parents[] = {
PyMethodDef
KX_VisibilityActuator::Methods[] = {
- {"set", (PyCFunction) KX_VisibilityActuator::sPySetVisible,
- METH_VARARGS, (PY_METHODCHAR)SetVisible_doc},
+ // Deprecated ----->
+ {"set", (PyCFunction) KX_VisibilityActuator::sPySetVisible, METH_VARARGS,
+ (PY_METHODCHAR) SetVisible_doc},
+ // <-----
{NULL,NULL} //Sentinel
};
PyAttributeDef KX_VisibilityActuator::Attributes[] = {
+ KX_PYATTRIBUTE_BOOL_RW("visibility", KX_VisibilityActuator, m_visible),
+ KX_PYATTRIBUTE_BOOL_RW("recursion", KX_VisibilityActuator, m_recursive),
{ NULL } //Sentinel
};
-PyObject* KX_VisibilityActuator::_getattr(const char *attr)
+PyObject* KX_VisibilityActuator::_getattr(const char *attr)
{
+ PyObject* object = _getattr_self(Attributes, this, attr);
+ if (object != NULL)
+ return object;
_getattr_up(SCA_IActuator);
-};
+}
+int KX_VisibilityActuator::_setattr(const char *attr, PyObject *value)
+{
+ int ret = _setattr_self(Attributes, this, attr, value);
+ if (ret >= 0)
+ return ret;
+ return SCA_IActuator::_setattr(attr, value);
+}
/* set visibility ---------------------------------------------------------- */
@@ -149,6 +163,7 @@ KX_VisibilityActuator::PySetVisible(PyObject* self,
PyObject* args,
PyObject* kwds) {
int vis;
+ ShowDeprecationWarning("SetVisible()", "the visible property");
if(!PyArg_ParseTuple(args, "i", &vis)) {
return NULL;
diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h
index 323280de8cb..2e2a5957777 100644
--- a/source/gameengine/Ketsji/KX_VisibilityActuator.h
+++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h
@@ -68,8 +68,12 @@ class KX_VisibilityActuator : public SCA_IActuator
/* --------------------------------------------------------------------- */
virtual PyObject* _getattr(const char *attr);
- //KX_PYMETHOD_DOC
+ virtual int _setattr(const char *attr, PyObject *value);
+
+ // Deprecated ----->
KX_PYMETHOD_DOC(KX_VisibilityActuator,SetVisible);
+ // <-----
+
};
diff --git a/source/gameengine/PyDoc/KX_CDActuator.py b/source/gameengine/PyDoc/KX_CDActuator.py
index 2c202476584..ffc8ddefa43 100644
--- a/source/gameengine/PyDoc/KX_CDActuator.py
+++ b/source/gameengine/PyDoc/KX_CDActuator.py
@@ -3,6 +3,13 @@
from SCA_IActuator import *
class KX_CDActuator(SCA_IActuator):
+ """
+ CD Controller actuator.
+ @ivar volume: controls the volume to set the CD to. 0.0 = silent, 1.0 = max volume.
+ @type volume: float
+ @ivar track: the track selected to be played
+ @type track: integer
+ """
def startCD():
"""
Starts the CD playing.
@@ -15,8 +22,21 @@ class KX_CDActuator(SCA_IActuator):
"""
Pauses the CD.
"""
+ def resumeCD():
+ """
+ Resumes the CD after a pause.
+ """
+ def playAll():
+ """
+ Plays the CD from the beginning.
+ """
+ def playTrack(trackNumber):
+ """
+ Plays the track selected.
+ """
def setGain(gain):
"""
+ DEPRECATED: Use the volume property.
Sets the gain (volume) of the CD.
@type gain: float
@@ -24,6 +44,7 @@ class KX_CDActuator(SCA_IActuator):
"""
def getGain():
"""
+ DEPRECATED: Use the volume property.
Gets the current gain (volume) of the CD.
@rtype: float
diff --git a/source/gameengine/PyDoc/KX_ParentActuator.py b/source/gameengine/PyDoc/KX_ParentActuator.py
index 7b5625ec82d..76252e5cfad 100644
--- a/source/gameengine/PyDoc/KX_ParentActuator.py
+++ b/source/gameengine/PyDoc/KX_ParentActuator.py
@@ -4,13 +4,13 @@ from SCA_IActuator import *
class KX_ParentActuator(SCA_IActuator):
"""
- The parent actuator can set or remove an objects parent object.
-
+ The parent actuator can set or remove an objects parent object.
@ivar object: the object this actuator sets the parent too.
@type object: KX_GameObject or None
"""
def setObject(object):
"""
+ DEPRECATED: Use the object property.
Sets the object to set as parent.
Object can be either a L{KX_GameObject} or the name of the object.
@@ -19,6 +19,7 @@ class KX_ParentActuator(SCA_IActuator):
"""
def getObject(name_only = 1):
"""
+ DEPRECATED: Use the object property.
Returns the name of the object to change to.
@type name_only: bool
@param name_only: optional argument, when 0 return a KX_GameObject
diff --git a/source/gameengine/PyDoc/KX_VisibilityActuator.py b/source/gameengine/PyDoc/KX_VisibilityActuator.py
index 22499f25d81..17d22fa5f83 100644
--- a/source/gameengine/PyDoc/KX_VisibilityActuator.py
+++ b/source/gameengine/PyDoc/KX_VisibilityActuator.py
@@ -5,13 +5,18 @@ from SCA_IActuator import *
class KX_VisibilityActuator(SCA_IActuator):
"""
Visibility Actuator.
+ @ivar visibility: whether the actuator makes its parent object visible or invisible
+ @type visibility: boolean
+ @ivar recursion: whether the visibility/invisibility should be propagated to all children of the object
+ @type recursion: boolean
"""
def set(visible):
"""
+ DEPRECATED: Use the visibility property instead.
Sets whether the actuator makes its parent object visible or invisible.
@param visible: - True: Makes its parent visible.
- False: Makes its parent invisible.
"""
- \ No newline at end of file
+