diff options
Diffstat (limited to 'source/gameengine/Ketsji/KXNetwork')
6 files changed, 209 insertions, 11 deletions
diff --git a/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt b/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt index b89b0dcff9f..d9a9fc54f4b 100644 --- a/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt +++ b/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt @@ -27,16 +27,16 @@ FILE(GLOB SRC *.cpp) SET(INC - . - ../../../../source/kernel/gen_system - ../../../../intern/string - ../../../../intern/moto/include - ../../../../source/gameengine/Ketsji - ../../../../source/gameengine/GameLogic - ../../../../source/gameengine/Expressions - ../../../../source/gameengine/SceneGraph - ../../../../source/gameengine/Network - ${PYTHON_INC} + . + ../../../../source/kernel/gen_system + ../../../../intern/string + ../../../../intern/moto/include + ../../../../source/gameengine/Ketsji + ../../../../source/gameengine/GameLogic + ../../../../source/gameengine/Expressions + ../../../../source/gameengine/SceneGraph + ../../../../source/gameengine/Network + ${PYTHON_INC} ) BLENDERLIB(kx_network "${SRC}" "${INC}") diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index 3af8f765251..410cf308217 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -123,6 +123,16 @@ PyTypeObject KX_NetworkMessageActuator::Type = { }; PyMethodDef KX_NetworkMessageActuator::Methods[] = { + // Deprecated -----> + {"setToPropName", (PyCFunction) + KX_NetworkMessageActuator::sPySetToPropName, METH_VARARGS}, + {"setSubject", (PyCFunction) + KX_NetworkMessageActuator::sPySetSubject, METH_VARARGS}, + {"setBodyType", (PyCFunction) + KX_NetworkMessageActuator::sPySetBodyType, METH_VARARGS}, + {"setBody", (PyCFunction) + KX_NetworkMessageActuator::sPySetBody, METH_VARARGS}, + // <----- {NULL,NULL} // Sentinel }; @@ -133,3 +143,78 @@ PyAttributeDef KX_NetworkMessageActuator::Attributes[] = { KX_PYATTRIBUTE_STRING_RW("body", 0, 16384, false, KX_NetworkMessageActuator, m_body), { NULL } //Sentinel }; + +// Deprecated -----> +// 1. SetToPropName +PyObject* KX_NetworkMessageActuator::PySetToPropName( + PyObject* args, + PyObject* kwds) +{ + ShowDeprecationWarning("setToProp()", "the propName property"); + char* ToPropName; + + if (PyArg_ParseTuple(args, "s:setToPropName", &ToPropName)) { + m_toPropName = ToPropName; + } + else { + return NULL; + } + + Py_RETURN_NONE; +} + +// 2. SetSubject +PyObject* KX_NetworkMessageActuator::PySetSubject( + PyObject* args, + PyObject* kwds) +{ + ShowDeprecationWarning("setSubject()", "the subject property"); + char* Subject; + + if (PyArg_ParseTuple(args, "s:setSubject", &Subject)) { + m_subject = Subject; + } + else { + return NULL; + } + + Py_RETURN_NONE; +} + +// 3. SetBodyType +PyObject* KX_NetworkMessageActuator::PySetBodyType( + PyObject* args, + PyObject* kwds) +{ + ShowDeprecationWarning("setBodyType()", "the usePropBody property"); + int BodyType; + + if (PyArg_ParseTuple(args, "i:setBodyType", &BodyType)) { + m_bPropBody = (BodyType != 0); + } + else { + return NULL; + } + + Py_RETURN_NONE; +} + +// 4. SetBody +PyObject* KX_NetworkMessageActuator::PySetBody( + PyObject* args, + PyObject* kwds) +{ + ShowDeprecationWarning("setBody()", "the body property"); + char* Body; + + if (PyArg_ParseTuple(args, "s:setBody", &Body)) { + m_body = Body; + } + else { + return NULL; + } + + Py_RETURN_NONE; +} + +// <----- Deprecated diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h index fa7a674c250..b4f55f2a466 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h @@ -60,6 +60,13 @@ public: /* Python interface ------------------------------------------- */ /* ------------------------------------------------------------ */ + // Deprecated -----> + KX_PYMETHOD(KX_NetworkMessageActuator, SetToPropName); + KX_PYMETHOD(KX_NetworkMessageActuator, SetSubject); + KX_PYMETHOD(KX_NetworkMessageActuator, SetBodyType); + KX_PYMETHOD(KX_NetworkMessageActuator, SetBody); + // <----- + }; #endif //__KX_NETWORKMESSAGEACTUATOR_H diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index 392e9dd9d1b..7123277d4ef 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -53,6 +53,7 @@ KX_NetworkMessageSensor::KX_NetworkMessageSensor( const STR_String &subject ) : SCA_ISensor(gameobj,eventmgr), + m_Networkeventmgr(eventmgr), m_NetworkScene(NetworkScene), m_subject(subject), m_frame_message_count (0), @@ -186,6 +187,23 @@ PyTypeObject KX_NetworkMessageSensor::Type = { }; PyMethodDef KX_NetworkMessageSensor::Methods[] = { + // Deprecated -----> + {"setSubjectFilterText", (PyCFunction) + KX_NetworkMessageSensor::sPySetSubjectFilterText, METH_O, + (const char *)SetSubjectFilterText_doc}, + {"getFrameMessageCount", (PyCFunction) + KX_NetworkMessageSensor::sPyGetFrameMessageCount, METH_NOARGS, + (const char *)GetFrameMessageCount_doc}, + {"getBodies", (PyCFunction) + KX_NetworkMessageSensor::sPyGetBodies, METH_NOARGS, + (const char *)GetBodies_doc}, + {"getSubject", (PyCFunction) + KX_NetworkMessageSensor::sPyGetSubject, METH_NOARGS, + (const char *)GetSubject_doc}, + {"getSubjects", (PyCFunction) + KX_NetworkMessageSensor::sPyGetSubjects, METH_NOARGS, + (const char *)GetSubjects_doc}, + // <----- {NULL,NULL} //Sentinel }; @@ -216,3 +234,75 @@ PyObject* KX_NetworkMessageSensor::pyattr_get_subjects(void *self_v, const KX_PY return (new CListValue())->NewProxy(true); } } + +// Deprecated -----> +// 1. Set the message subject that this sensor listens for +const char KX_NetworkMessageSensor::SetSubjectFilterText_doc[] = +"\tsetSubjectFilterText(value)\n" +"\tChange the message subject text that this sensor is listening to.\n"; + +PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText(PyObject* value) +{ + ShowDeprecationWarning("setSubjectFilterText()", "subject"); + char* Subject = _PyUnicode_AsString(value); + if (Subject==NULL) { + PyErr_SetString(PyExc_TypeError, "sensor.tsetSubjectFilterText(string): KX_NetworkMessageSensor, expected a string message"); + return NULL; + } + + m_subject = Subject; + Py_RETURN_NONE; +} + +// 2. Get the number of messages received since the last frame +const char KX_NetworkMessageSensor::GetFrameMessageCount_doc[] = +"\tgetFrameMessageCount()\n" +"\tGet the number of messages received since the last frame.\n"; + +PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount() +{ + ShowDeprecationWarning("getFrameMessageCount()", "frameMessageCount"); + return PyLong_FromSsize_t(long(m_frame_message_count)); +} + +// 3. Get the message bodies +const char KX_NetworkMessageSensor::GetBodies_doc[] = +"\tgetBodies()\n" +"\tGet the list of message bodies.\n"; + +PyObject* KX_NetworkMessageSensor::PyGetBodies() +{ + ShowDeprecationWarning("getBodies()", "bodies"); + if (m_BodyList) { + return m_BodyList->GetProxy(); + } else { + return (new CListValue())->NewProxy(true); + } +} + +// 4. Get the message subject: field of the message sensor +const char KX_NetworkMessageSensor::GetSubject_doc[] = +"\tgetSubject()\n" +"\tGet the subject: field of the message sensor.\n"; + +PyObject* KX_NetworkMessageSensor::PyGetSubject() +{ + ShowDeprecationWarning("getSubject()", "subject"); + return PyUnicode_FromString(m_subject ? m_subject : ""); +} + +// 5. Get the message subjects +const char KX_NetworkMessageSensor::GetSubjects_doc[] = +"\tgetSubjects()\n" +"\tGet list of message subjects.\n"; + +PyObject* KX_NetworkMessageSensor::PyGetSubjects() +{ + ShowDeprecationWarning("getSubjects()", "subjects"); + if (m_SubjectList) { + return m_SubjectList->GetProxy(); + } else { + return (new CListValue())->NewProxy(true); + } +} +// <----- Deprecated diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h index d8a0651d2f1..ade87697303 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h @@ -39,6 +39,7 @@ class KX_NetworkMessageSensor : public SCA_ISensor { // note: Py_Header MUST BE the first listed here Py_Header; + KX_NetworkEventManager *m_Networkeventmgr; NG_NetworkScene *m_NetworkScene; // The subject we filter on. @@ -70,6 +71,14 @@ public: /* Python interface -------------------------------------------- */ /* ------------------------------------------------------------- */ + // 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); diff --git a/source/gameengine/Ketsji/KXNetwork/SConscript b/source/gameengine/Ketsji/KXNetwork/SConscript index 8f88511acca..e6584b55ed2 100644 --- a/source/gameengine/Ketsji/KXNetwork/SConscript +++ b/source/gameengine/Ketsji/KXNetwork/SConscript @@ -9,4 +9,11 @@ incs += ' #source/gameengine/Network #source/gameengine/SceneGraph' incs += ' ' + env['BF_PYTHON_INC'] -env.BlenderLib ( 'bf_network', Split(sources), Split(incs), defines=[],libtype=['core','player'], priority=[400,125], cxx_compileflags=env['BGE_CXXFLAGS']) +cxxflags = [] +if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): + cxxflags.append ('/GR') + cxxflags.append ('/O2') + cxxflags.append ('/EHsc') + + +env.BlenderLib ( 'kx_network', Split(sources), Split(incs), defines=[],libtype=['core', 'player'], priority=[400, 145], cxx_compileflags=cxxflags ) |