[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18270] trunk/blender/source/gameengine/ GameLogic: BGE API cleanup: more bricks converted to attributes.

Benoit Bolsee benoit.bolsee at online.be
Fri Jan 2 23:09:57 CET 2009


Revision: 18270
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18270
Author:   ben2610
Date:     2009-01-02 23:09:57 +0100 (Fri, 02 Jan 2009)

Log Message:
-----------
BGE API cleanup: more bricks converted to attributes.

Modified Paths:
--------------
    trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
    trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.h
    trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.cpp
    trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.h

Modified: trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.cpp	2009-01-02 19:22:43 UTC (rev 18269)
+++ trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.cpp	2009-01-02 22:09:57 UTC (rev 18270)
@@ -247,11 +247,18 @@
 
 PyMethodDef SCA_ILogicBrick::Methods[] = {
   {"getOwner", (PyCFunction) SCA_ILogicBrick::sPyGetOwner, METH_NOARGS},
+  // --> Deprecated
   {"getExecutePriority", (PyCFunction) SCA_ILogicBrick::sPyGetExecutePriority, METH_NOARGS},
   {"setExecutePriority", (PyCFunction) SCA_ILogicBrick::sPySetExecutePriority, METH_VARARGS},
+  // <-- Deprecated
   {NULL,NULL} //Sentinel
 };
 
+PyAttributeDef SCA_ILogicBrick::Attributes[] = {
+	KX_PYATTRIBUTE_INT_RW("executePriority",0,100000,false,SCA_ILogicBrick,m_Execute_Ueber_Priority),
+	{NULL} //Sentinel
+};
+
 int SCA_ILogicBrick::CheckProperty(void *self, const PyAttributeDef *attrdef)
 {
 	if (attrdef->m_type != KX_PYATTRIBUTE_TYPE_STRING || attrdef->m_length != 1) {
@@ -273,9 +280,19 @@
 PyObject*
 SCA_ILogicBrick::_getattr(const STR_String& attr)
 {
+	PyObject* object = _getattr_self(Attributes, this, attr);
+	if (object != NULL)
+		return object;
   _getattr_up(CValue);
 }
 
+int SCA_ILogicBrick::_setattr(const STR_String& attr, PyObject *value)
+{
+	int ret = _setattr_self(Attributes, this, attr, value);
+	if (ret >= 0)
+		return ret;
+	return CValue::_setattr(attr, value);
+}
 
 
 PyObject* SCA_ILogicBrick::PyGetOwner(PyObject* self)
@@ -297,6 +314,7 @@
 			       PyObject* args, 
 			       PyObject* kwds)
 {
+	ShowDeprecationWarning("setExecutePriority()", "the executePriority property");
 
 	int priority=0;
 
@@ -313,6 +331,7 @@
 
 PyObject* SCA_ILogicBrick::PyGetExecutePriority(PyObject* self)
 {
+	ShowDeprecationWarning("getExecutePriority()", "the executePriority property");
 	return PyInt_FromLong(m_Execute_Ueber_Priority);
 }
 

Modified: trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.h
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.h	2009-01-02 19:22:43 UTC (rev 18269)
+++ trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.h	2009-01-02 22:09:57 UTC (rev 18270)
@@ -79,6 +79,7 @@
 	virtual	bool		LessComparedTo(SCA_ILogicBrick* other);
 	
 	virtual PyObject* _getattr(const STR_String& attr);
+	virtual int _setattr(const STR_String& attr, PyObject *value);
 
 	static class SCA_LogicManager*	m_sCurrentLogicManager;
 

Modified: trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.cpp
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.cpp	2009-01-02 19:22:43 UTC (rev 18269)
+++ trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.cpp	2009-01-02 22:09:57 UTC (rev 18270)
@@ -160,10 +160,39 @@
 	{NULL,NULL} //Sentinel
 };
 
+PyAttributeDef SCA_RandomSensor::Attributes[] = {
+	KX_PYATTRIBUTE_BOOL_RO("lastDraw",SCA_RandomSensor,m_lastdraw),
+	{NULL} //Sentinel
+};
+
 PyObject* SCA_RandomSensor::_getattr(const STR_String& attr) {
+	PyObject* object = _getattr_self(Attributes, this, attr);
+	if (object != NULL)
+		return object;
+	if (attr == "seed") {
+		return PyInt_FromLong(m_basegenerator->GetSeed());
+	}
 	_getattr_up(SCA_ISensor);
 }
 
+int SCA_RandomSensor::_setattr(const STR_String& attr, PyObject *value)
+{
+	int ret = _setattr_self(Attributes, this, attr, value);
+	if (ret >= 0)
+		return ret;
+	if (attr == "seed") {
+		if (PyInt_Check(value))	{
+			int ival = PyInt_AsLong(value);
+			m_basegenerator->SetSeed(ival);
+			return 0;
+		} else {
+			PyErr_SetString(PyExc_TypeError, "expected an integer");
+			return 1;
+		}
+	}
+	return SCA_ISensor::_setattr(attr, value);
+}
+
 /* 1. setSeed                                                            */
 const char SCA_RandomSensor::SetSeed_doc[] = 
 "setSeed(seed)\n"
@@ -172,6 +201,7 @@
 "\tequal series. If the seed is 0, the generator will produce\n"
 "\tthe same value on every call.\n";
 PyObject* SCA_RandomSensor::PySetSeed(PyObject* self, PyObject* args, PyObject* kwds) {
+	ShowDeprecationWarning("setSeed()", "the seed property");
 	long seedArg;
 	if(!PyArg_ParseTuple(args, "i", &seedArg)) {
 		return NULL;
@@ -188,6 +218,7 @@
 "\tReturns the initial seed of the generator. Equal seeds produce\n"
 "\tequal series.\n";
 PyObject* SCA_RandomSensor::PyGetSeed(PyObject* self, PyObject* args, PyObject* kwds) {
+	ShowDeprecationWarning("getSeed()", "the seed property");
 	return PyInt_FromLong(m_basegenerator->GetSeed());
 }
 
@@ -196,6 +227,7 @@
 "getLastDraw()\n"
 "\tReturn the last value that was drawn.\n";
 PyObject* SCA_RandomSensor::PyGetLastDraw(PyObject* self, PyObject* args, PyObject* kwds) {
+	ShowDeprecationWarning("getLastDraw()", "the lastDraw property");
 	return PyInt_FromLong(m_lastdraw);
 }
 

Modified: trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.h
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.h	2009-01-02 19:22:43 UTC (rev 18269)
+++ trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.h	2009-01-02 22:09:57 UTC (rev 18270)
@@ -61,6 +61,7 @@
 	/* --------------------------------------------------------------------- */
 
 	virtual PyObject* _getattr(const STR_String& attr);
+	virtual int _setattr(const STR_String& attr, PyObject *value);
 
 	/* 1. setSeed                                                            */
 	KX_PYMETHOD_DOC(SCA_RandomSensor,SetSeed);





More information about the Bf-blender-cvs mailing list