[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19481] trunk/blender/source/gameengine: BGE API cleanup, patch from Moguri: RaySensor, NetworkMessageActuator, NetworkMessageSensor.

Benoit Bolsee benoit.bolsee at online.be
Tue Mar 31 21:02:03 CEST 2009


Revision: 19481
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19481
Author:   ben2610
Date:     2009-03-31 21:02:01 +0200 (Tue, 31 Mar 2009)

Log Message:
-----------
BGE API cleanup, patch from Moguri: RaySensor, NetworkMessageActuator, NetworkMessageSensor.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
    trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
    trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
    trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
    trunk/blender/source/gameengine/Ketsji/KX_RaySensor.cpp
    trunk/blender/source/gameengine/Ketsji/KX_RaySensor.h
    trunk/blender/source/gameengine/PyDoc/GameLogic.py
    trunk/blender/source/gameengine/PyDoc/KX_NetworkMessageActuator.py
    trunk/blender/source/gameengine/PyDoc/KX_NetworkMessageSensor.py
    trunk/blender/source/gameengine/PyDoc/KX_RaySensor.py

Modified: trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp	2009-03-31 14:29:58 UTC (rev 19480)
+++ trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp	2009-03-31 19:02:01 UTC (rev 19481)
@@ -47,7 +47,7 @@
 	m_networkscene(networkscene),
 	m_toPropName(toPropName),
 	m_subject(subject),
-	m_bodyType(bodyType),
+	m_bPropBody(bodyType),
 	m_body(body)
 {
 }
@@ -69,7 +69,7 @@
 	}
 	//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 @@
 };
 
 PyMethodDef KX_NetworkMessageActuator::Methods[] = {
+	// Deprecated ----->
 	{"setToPropName", (PyCFunction)
 		KX_NetworkMessageActuator::sPySetToPropName, METH_VARARGS},
 	{"setSubject", (PyCFunction)
@@ -140,23 +141,40 @@
 		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* args,
 	PyObject* kwds)
 {
+	ShowDeprecationWarning("setSubject()", "the subject property");
     char* Subject;
 
 	if (PyArg_ParseTuple(args, "s", &Subject)) {
@@ -193,10 +212,11 @@
 	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* args,
 	PyObject* kwds)
 {
+	ShowDeprecationWarning("setBody()", "the body property");
     char* Body;
 
 	if (PyArg_ParseTuple(args, "s", &Body)) {
@@ -223,3 +244,4 @@
 	Py_RETURN_NONE;
 }
 
+// <----- Deprecated
\ No newline at end of file

Modified: trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h	2009-03-31 14:29:58 UTC (rev 19480)
+++ trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h	2009-03-31 19:02:01 UTC (rev 19481)
@@ -41,7 +41,7 @@
 	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 @@
 	/* ------------------------------------------------------------ */
 
 	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);
+	// <-----
 
 };
 

Modified: trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp	2009-03-31 14:29:58 UTC (rev 19480)
+++ trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp	2009-03-31 19:02:01 UTC (rev 19481)
@@ -195,6 +195,7 @@
 };
 
 PyMethodDef KX_NetworkMessageSensor::Methods[] = {
+	// Deprecated ----->
 	{"setSubjectFilterText", (PyCFunction)
 		KX_NetworkMessageSensor::sPySetSubjectFilterText, METH_O,
 		(PY_METHODCHAR)SetSubjectFilterText_doc},
@@ -210,17 +211,53 @@
 	{"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 @@
 
 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 @@
 
 PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount( PyObject* )
 {
+	ShowDeprecationWarning("getFrameMessageCount()", "frameMessageCount");
 	return PyInt_FromLong(long(m_frame_message_count));
 }
 
@@ -255,6 +294,7 @@
 
 PyObject* KX_NetworkMessageSensor::PyGetBodies( PyObject* )
 {
+	ShowDeprecationWarning("getBodies()", "bodies");
 	if (m_BodyList) {
 		return ((PyObject*) m_BodyList->AddRef());
 	} else {
@@ -269,6 +309,7 @@
 
 PyObject* KX_NetworkMessageSensor::PyGetSubject( PyObject* )
 {
+	ShowDeprecationWarning("getSubject()", "subject");
 	return PyString_FromString(m_subject ? m_subject : "");
 }
 
@@ -279,9 +320,11 @@
 
 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

Modified: trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h	2009-03-31 14:29:58 UTC (rev 19480)
+++ trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h	2009-03-31 19:02:01 UTC (rev 19481)
@@ -73,13 +73,19 @@
 	/* ------------------------------------------------------------- */
 
 	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);
 
 };
 

Modified: trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp	2009-03-31 14:29:58 UTC (rev 19480)
+++ trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp	2009-03-31 19:02:01 UTC (rev 19481)
@@ -48,6 +48,7 @@
 
 #include "KX_KetsjiEngine.h"
 #include "KX_RadarSensor.h"
+#include "KX_RaySensor.h"
 
 #include "SCA_IInputDevice.h"
 #include "SCA_PropertySensor.h"
@@ -1070,6 +1071,14 @@
 	KX_MACRO_addTypesToDict(d, KX_RADAR_AXIS_NEG_Y, KX_RadarSensor::KX_RADAR_AXIS_NEG_X);
 	KX_MACRO_addTypesToDict(d, KX_RADAR_AXIS_NEG_Z, KX_RadarSensor::KX_RADAR_AXIS_NEG_Z);
 
+	/* Ray Sensor */
+	KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_POS_X, KX_RaySensor::KX_RAY_AXIS_POS_X);
+	KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_POS_Y, KX_RaySensor::KX_RAY_AXIS_POS_Y);
+	KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_POS_Z, KX_RaySensor::KX_RAY_AXIS_POS_Z);
+	KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_NEG_X, KX_RaySensor::KX_RAY_AXIS_NEG_Y);
+	KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_NEG_Y, KX_RaySensor::KX_RAY_AXIS_NEG_X);
+	KX_MACRO_addTypesToDict(d, KX_RAY_AXIS_NEG_Z, KX_RaySensor::KX_RAY_AXIS_NEG_Z);
+
 	// Check for errors

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list