diff options
author | Benoit Bolsee <benoit.bolsee@online.be> | 2009-03-31 23:02:01 +0400 |
---|---|---|
committer | Benoit Bolsee <benoit.bolsee@online.be> | 2009-03-31 23:02:01 +0400 |
commit | 8518f6e6603ed93d126771e1b372021ae0b4ff98 (patch) | |
tree | 89d7b603d9ba559ae5fa69c364a7151cd38cc7c6 /source/gameengine/Ketsji/KXNetwork | |
parent | 74e6231ff45dfe09d213a4deb72641e8138e260c (diff) |
BGE API cleanup, patch from Moguri: RaySensor, NetworkMessageActuator, NetworkMessageSensor.
Diffstat (limited to 'source/gameengine/Ketsji/KXNetwork')
4 files changed, 79 insertions, 5 deletions
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index 4e5f27df2da..fa4fdaee972 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -47,7 +47,7 @@ KX_NetworkMessageActuator::KX_NetworkMessageActuator( m_networkscene(networkscene), m_toPropName(toPropName), m_subject(subject), - m_bodyType(bodyType), + m_bPropBody(bodyType), m_body(body) { } @@ -69,7 +69,7 @@ bool KX_NetworkMessageActuator::Update() } //printf("messageactuator true event\n"); - if (m_bodyType == 1) // ACT_MESG_PROP in DNA_actuator_types.h + if (m_bPropBody) // ACT_MESG_PROP in DNA_actuator_types.h { m_networkscene->SendMessage( m_toPropName, @@ -132,6 +132,7 @@ PyParentObject KX_NetworkMessageActuator::Parents[] = { }; PyMethodDef KX_NetworkMessageActuator::Methods[] = { + // Deprecated -----> {"setToPropName", (PyCFunction) KX_NetworkMessageActuator::sPySetToPropName, METH_VARARGS}, {"setSubject", (PyCFunction) @@ -140,23 +141,40 @@ PyMethodDef KX_NetworkMessageActuator::Methods[] = { KX_NetworkMessageActuator::sPySetBodyType, METH_VARARGS}, {"setBody", (PyCFunction) KX_NetworkMessageActuator::sPySetBody, METH_VARARGS}, + // <----- {NULL,NULL} // Sentinel }; PyAttributeDef KX_NetworkMessageActuator::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("propName", 0, 100, false, KX_NetworkMessageActuator, m_toPropName), + KX_PYATTRIBUTE_STRING_RW("subject", 0, 100, false, KX_NetworkMessageActuator, m_subject), + KX_PYATTRIBUTE_BOOL_RW("usePropBody", KX_NetworkMessageActuator, m_bPropBody), + KX_PYATTRIBUTE_STRING_RW("body", 0, 100, false, KX_NetworkMessageActuator, m_body), { NULL } //Sentinel }; PyObject* KX_NetworkMessageActuator::_getattr(const char *attr) { + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; _getattr_up(SCA_IActuator); } +int KX_NetworkMessageActuator::_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. SetToPropName PyObject* KX_NetworkMessageActuator::PySetToPropName( PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setToProp()", "the propName property"); char* ToPropName; if (PyArg_ParseTuple(args, "s", &ToPropName)) { @@ -175,6 +193,7 @@ PyObject* KX_NetworkMessageActuator::PySetSubject( PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setSubject()", "the subject property"); char* Subject; if (PyArg_ParseTuple(args, "s", &Subject)) { @@ -193,10 +212,11 @@ PyObject* KX_NetworkMessageActuator::PySetBodyType( PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setBodyType()", "the usePropBody property"); int BodyType; if (PyArg_ParseTuple(args, "i", &BodyType)) { - m_bodyType = BodyType; + m_bPropBody = (BodyType != 0); } else { return NULL; @@ -211,6 +231,7 @@ PyObject* KX_NetworkMessageActuator::PySetBody( PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setBody()", "the body property"); char* Body; if (PyArg_ParseTuple(args, "s", &Body)) { @@ -223,3 +244,4 @@ PyObject* KX_NetworkMessageActuator::PySetBody( Py_RETURN_NONE; } +// <----- Deprecated
\ No newline at end of file diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h index 96b55ef839b..d9a7f787333 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h @@ -41,7 +41,7 @@ class KX_NetworkMessageActuator : public SCA_IActuator class NG_NetworkScene* m_networkscene; // needed for replication STR_String m_toPropName; STR_String m_subject; - int m_bodyType; + bool m_bPropBody; STR_String m_body; public: KX_NetworkMessageActuator( @@ -62,11 +62,14 @@ public: /* ------------------------------------------------------------ */ virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); + // Deprecated -----> KX_PYMETHOD(KX_NetworkMessageActuator, SetToPropName); KX_PYMETHOD(KX_NetworkMessageActuator, SetSubject); KX_PYMETHOD(KX_NetworkMessageActuator, SetBodyType); KX_PYMETHOD(KX_NetworkMessageActuator, SetBody); + // <----- }; diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index ac89d8b0716..40ade460792 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -195,6 +195,7 @@ PyParentObject KX_NetworkMessageSensor::Parents[] = { }; PyMethodDef KX_NetworkMessageSensor::Methods[] = { + // Deprecated -----> {"setSubjectFilterText", (PyCFunction) KX_NetworkMessageSensor::sPySetSubjectFilterText, METH_O, (PY_METHODCHAR)SetSubjectFilterText_doc}, @@ -210,17 +211,53 @@ PyMethodDef KX_NetworkMessageSensor::Methods[] = { {"getSubjects", (PyCFunction) KX_NetworkMessageSensor::sPyGetSubjects, METH_NOARGS, (PY_METHODCHAR)GetSubjects_doc}, + // <----- {NULL,NULL} //Sentinel }; PyAttributeDef KX_NetworkMessageSensor::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("subject", 0, 100, false, KX_NetworkMessageSensor, m_subject), + KX_PYATTRIBUTE_INT_RO("frameMessageCount", KX_NetworkMessageSensor, m_frame_message_count), + KX_PYATTRIBUTE_RO_FUNCTION("bodies", KX_NetworkMessageSensor, pyattr_get_bodies), + KX_PYATTRIBUTE_RO_FUNCTION("subjects", KX_NetworkMessageSensor, pyattr_get_subjects), { NULL } //Sentinel }; PyObject* KX_NetworkMessageSensor::_getattr(const char *attr) { - _getattr_up(SCA_ISensor); // implicit return! + PyObject* object = _getattr_self(Attributes, this, attr); + if (object != NULL) + return object; + _getattr_up(SCA_ISensor); } +int KX_NetworkMessageSensor::_setattr(const char *attr, PyObject *value) { + int ret = _setattr_self(Attributes, this, attr, value); + if (ret >= 0) + return ret; + return SCA_ISensor::_setattr(attr, value); +} + +PyObject* KX_NetworkMessageSensor::pyattr_get_bodies(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_NetworkMessageSensor *self = static_cast<KX_NetworkMessageSensor*>(self_v); + if (self->m_BodyList) { + return ((PyObject*) self->m_BodyList->AddRef()); + } else { + return ((PyObject*) new CListValue()); + } +} + +PyObject* KX_NetworkMessageSensor::pyattr_get_subjects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_NetworkMessageSensor *self = static_cast<KX_NetworkMessageSensor*>(self_v); + if (self->m_SubjectList) { + return ((PyObject*) self->m_SubjectList->AddRef()); + } else { + return ((PyObject*) new CListValue()); + } +} + +// Deprecated -----> // 1. Set the message subject that this sensor listens for const char KX_NetworkMessageSensor::SetSubjectFilterText_doc[] = "\tsetSubjectFilterText(value)\n" @@ -228,6 +265,7 @@ const char KX_NetworkMessageSensor::SetSubjectFilterText_doc[] = PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText( PyObject* self, PyObject* value) { + ShowDeprecationWarning("setSubjectFilterText()", "subject"); char* Subject = PyString_AsString(value); if (Subject==NULL) { PyErr_SetString(PyExc_TypeError, "expected a string message"); @@ -245,6 +283,7 @@ const char KX_NetworkMessageSensor::GetFrameMessageCount_doc[] = PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount( PyObject* ) { + ShowDeprecationWarning("getFrameMessageCount()", "frameMessageCount"); return PyInt_FromLong(long(m_frame_message_count)); } @@ -255,6 +294,7 @@ const char KX_NetworkMessageSensor::GetBodies_doc[] = PyObject* KX_NetworkMessageSensor::PyGetBodies( PyObject* ) { + ShowDeprecationWarning("getBodies()", "bodies"); if (m_BodyList) { return ((PyObject*) m_BodyList->AddRef()); } else { @@ -269,6 +309,7 @@ const char KX_NetworkMessageSensor::GetSubject_doc[] = PyObject* KX_NetworkMessageSensor::PyGetSubject( PyObject* ) { + ShowDeprecationWarning("getSubject()", "subject"); return PyString_FromString(m_subject ? m_subject : ""); } @@ -279,9 +320,11 @@ const char KX_NetworkMessageSensor::GetSubjects_doc[] = PyObject* KX_NetworkMessageSensor::PyGetSubjects( PyObject* ) { + ShowDeprecationWarning("getSubjects()", "subjects"); if (m_SubjectList) { return ((PyObject*) m_SubjectList->AddRef()); } else { return ((PyObject*) new CListValue()); } } +// <----- Deprecated
\ No newline at end of file diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h index 26adbc9945a..79e8bc910d1 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h @@ -73,13 +73,19 @@ public: /* ------------------------------------------------------------- */ virtual PyObject* _getattr(const char *attr); + virtual int _setattr(const char *attr, PyObject *value); + // Deprecated -----> KX_PYMETHOD_DOC_O(KX_NetworkMessageSensor, SetSubjectFilterText); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetFrameMessageCount); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetBodies); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetSubject); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetSubjects); + // <----- + /* attributes */ + static PyObject* pyattr_get_bodies(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_subjects(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); }; |