[Bf-blender-cvs] [fd22a92] master: BGE: Add new world API KX_WorldInfo (KX_Scene)
Thomas Szepe
noreply at git.blender.org
Tue Mar 24 00:23:55 CET 2015
Commit: fd22a92939dc937216f50d1350a63de872e0a6be
Author: Thomas Szepe
Date: Tue Mar 24 00:23:40 2015 +0100
Branches: master
https://developer.blender.org/rBfd22a92939dc937216f50d1350a63de872e0a6be
BGE: Add new world API KX_WorldInfo (KX_Scene)
This Patch will add a the world API (mist, background, ambient) to KX_WorldInfo.
The new API uses now attributes.
Reviewers: campbellbarton, moguri
Reviewed By: moguri
Subscribers: klauser, brecht
Differential Revision: https://developer.blender.org/D157
===================================================================
M doc/python_api/rst/bge.render.rst
M doc/python_api/rst/bge_types/bge.types.KX_Scene.rst
A doc/python_api/rst/bge_types/bge.types.KX_WorldInfo.rst
M source/gameengine/Ketsji/KX_PythonInit.cpp
M source/gameengine/Ketsji/KX_PythonInitTypes.cpp
M source/gameengine/Ketsji/KX_Scene.cpp
M source/gameengine/Ketsji/KX_Scene.h
M source/gameengine/Ketsji/KX_WorldInfo.cpp
M source/gameengine/Ketsji/KX_WorldInfo.h
===================================================================
diff --git a/doc/python_api/rst/bge.render.rst b/doc/python_api/rst/bge.render.rst
index 09d16f4..2d47244 100644
--- a/doc/python_api/rst/bge.render.rst
+++ b/doc/python_api/rst/bge.render.rst
@@ -89,15 +89,15 @@ Constants
.. data:: KX_MIST_QUADRATIC
- Type of quadratic attenuation used to fade mist.
+ Type of quadratic attenuation used to fade mist. (Deprecated: use KX_WorldInfo.KX_MIST_QUADRATIC)
.. data:: KX_MIST_LINEAR
- Type of linear attenuation used to fade mist.
+ Type of linear attenuation used to fade mist. (Deprecated: use KX_WorldInfo.KX_MIST_LINEAR)
.. data:: KX_MIST_INV_QUADRATIC
- Type of inverse quadratic attenuation used to fade mist.
+ Type of inverse quadratic attenuation used to fade mist. (Deprecated: use KX_WorldInfo.KX_MIST_INV_QUADRATIC)
*********
@@ -173,50 +173,51 @@ Functions
.. function:: setBackgroundColor(rgba)
- Sets the window background color.
-
+ Sets the window background color. (Deprecated: use KX_WorldInfo.background_color)
+
:type rgba: list [r, g, b, a]
.. function:: setAmbientColor(rgb)
- Sets the color of ambient light.
-
+ Sets the color of ambient light. (Deprecated: use KX_WorldInfo.ambient_color)
+
:type rgb: list [r, g, b]
.. function:: setMistColor(rgb)
- Sets the mist color.
-
+ Sets the mist color. (Deprecated: use KX_WorldInfo.mist_color)
+
:type rgb: list [r, g, b]
.. function:: setMistType(mode)
- Sets the mist attenuation type.
+ Sets the mist attenuation type. (Deprecated: use KX_WorldInfo.mist_type)
:type mode: KX_MIST_QUADRATIC, KX_MIST_LINEAR, KX_MIST_INV_QUADRATIC
.. function:: setMistStart(start)
- Sets the mist start value. Objects further away than start will have mist applied to them.
-
+ Sets the mist start value. Objects further away than start will have mist applied to them.
+ (Deprecated: use KX_WorldInfo.mist_start)
+
:type start: float
.. function:: setMistEnd(end)
Sets the mist end value. Objects further away from this will be colored solid with
- the color set by setMistColor().
-
+ the color set by setMistColor(). (Deprecated: use KX_WorldInfo.mist_distance)
+
:type end: float
.. function:: setMistIntensity(intensity)
- Sets the mist intensity value.
+ Sets the mist intensity value. (Deprecated: use KX_WorldInfo.mist_intensity)
:type start: float
@@ -225,12 +226,12 @@ Functions
Disables mist.
- .. note:: Deprecated use setUseMist().
+ .. note:: Deprecated: use KX_WorldInfo.mist_enable.
.. function:: setUseMist(enable)
- Disable or enable the mist.
+ Disable or enable the mist. (Deprecated: use KX_WorldInfo.mist_enable)
:type enable: boolean
diff --git a/doc/python_api/rst/bge_types/bge.types.KX_Scene.rst b/doc/python_api/rst/bge_types/bge.types.KX_Scene.rst
index fc5ba35..255ff95 100644
--- a/doc/python_api/rst/bge_types/bge.types.KX_Scene.rst
+++ b/doc/python_api/rst/bge_types/bge.types.KX_Scene.rst
@@ -83,6 +83,12 @@ base class --- :class:`PyObjectPlus`
This can be set directly from python to avoid using the :class:`KX_SceneActuator`.
+ .. attribute:: world
+
+ The current active world, (read-only).
+
+ :type: :class:`KX_WorldInfo`
+
.. attribute:: suspended
True if the scene is suspended, (read-only).
diff --git a/doc/python_api/rst/bge_types/bge.types.KX_WorldInfo.rst b/doc/python_api/rst/bge_types/bge.types.KX_WorldInfo.rst
new file mode 100644
index 0000000..ffc24b4
--- /dev/null
+++ b/doc/python_api/rst/bge_types/bge.types.KX_WorldInfo.rst
@@ -0,0 +1,87 @@
+KX_WordlInfo(PyObjectPlus)
+=============================
+
+.. module:: bge.types
+
+base class --- :class:`PyObjectPlus`
+
+.. class:: KX_WorldInfo(PyObjectPlus)
+
+ A wolrd object.
+
+ .. code-block:: python
+
+ # Set the mist color to red.
+ import bge
+
+ sce = bge.logic.getCurrentScene()
+
+ sce.world.mist_color = [1.0, 0.0, 0.0]
+
+*********
+Constants
+*********
+
+ .. data:: KX_MIST_QUADRATIC
+
+ Type of quadratic attenuation used to fade mist.
+
+ .. data:: KX_MIST_LINEAR
+
+ Type of linear attenuation used to fade mist.
+
+ .. data:: KX_MIST_INV_QUADRATIC
+
+ Type of inverse quadratic attenuation used to fade mist.
+
+**********
+Attributes
+**********
+
+ .. attribute:: mist_enable
+
+ Return the state of the mist.
+
+ :type: bool
+
+ .. attribute:: mist_start
+
+ The mist start point.
+
+ :type: float
+
+ .. attribute:: mist_distance
+
+ The mist distance fom the start point to reach 100% mist.
+
+ :type: float
+
+ .. attribute:: mist_intensity
+
+ The mist intensity.
+
+ :type: float
+
+ .. attribute:: mist_type
+
+ The type of mist - must be KX_MIST_QUADRATIC, KX_MIST_LINEAR or KX_MIST_INV_QUADRATIC
+
+ .. attribute:: mist_color
+
+ The color of the mist. Black = [0.0, 0.0, 0.0], White = [1.0, 1.0, 1.0].
+ Mist and background color sould always set to the same color.
+
+ :type: :class:`mathutils.Vector`
+
+ .. attribute:: background_color
+
+ The color of the background. Black = [0.0, 0.0, 0.0], White = [1.0, 1.0, 1.0].
+ Mist and background color sould always set to the same color.
+
+ :type: :class:`mathutils.Vector`
+
+ .. attribute:: ambient_color
+
+ The color of the ambient light. Black = [0.0, 0.0, 0.0], White = [1.0, 1.0, 1.0].
+
+ :type: :class:`mathutils.Vector`
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp
index 8fd38db..b3fba74 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInit.cpp
@@ -1039,6 +1039,7 @@ static PyObject *gPySetBackgroundColor(PyObject *, PyObject *value)
return NULL;
}
+ ShowDeprecationWarning("setBackgroundColor()", "KX_WorldInfo.background_color");
wi->setBackColor((float)vec[0], (float)vec[1], (float)vec[2]);
Py_RETURN_NONE;
@@ -1056,6 +1057,7 @@ static PyObject *gPySetMistColor(PyObject *, PyObject *value)
return NULL;
}
+ ShowDeprecationWarning("setMistColor()", "KX_WorldInfo.mist_color");
wi->setMistColor((float)vec[0], (float)vec[1], (float)vec[2]);
Py_RETURN_NONE;
@@ -1068,7 +1070,7 @@ static PyObject *gPyDisableMist(PyObject *)
PyErr_SetString(PyExc_RuntimeError, "bge.render.DisableMist(), World not available");
return NULL;
}
- ShowDeprecationWarning("DisableMist()", "setUseMist(false)");
+ ShowDeprecationWarning("DisableMist()", "KX_WorldInfo.mist_enable = False");
wi->setUseMist(false);
Py_RETURN_NONE;
@@ -1086,6 +1088,7 @@ static PyObject *gPySetUseMist(PyObject *, PyObject *args)
return NULL;
}
+ ShowDeprecationWarning("setUseMist()", "KX_WorldInfo.mist_enable");
wi->setUseMist(enable);
Py_RETURN_NONE;
@@ -1109,6 +1112,7 @@ static PyObject *gPySetMistType(PyObject *, PyObject *args)
return NULL;
}
+ ShowDeprecationWarning("setMistType()", "KX_WorldInfo.mist_type");
wi->setMistType(type);
Py_RETURN_NONE;
@@ -1126,6 +1130,7 @@ static PyObject *gPySetMistStart(PyObject *, PyObject *args)
return NULL;
}
+ ShowDeprecationWarning("setMistStart()", "KX_WorldInfo.mist_start");
wi->setMistStart(miststart);
Py_RETURN_NONE;
@@ -1143,6 +1148,7 @@ static PyObject *gPySetMistEnd(PyObject *, PyObject *args)
return NULL;
}
+ ShowDeprecationWarning("setMistEnd()", "KX_WorldInfo.mist_distance");
wi->setMistDistance(mistdist);
Py_RETURN_NONE;
@@ -1161,6 +1167,7 @@ static PyObject *gPySetMistIntensity(PyObject *, PyObject *args)
return NULL;
}
+ ShowDeprecationWarning("setMistIntensity()", "KX_WorldInfo.mist_intensity");
wi->setMistIntensity(intensity);
Py_RETURN_NONE;
@@ -1178,6 +1185,7 @@ static PyObject *gPySetAmbientColor(PyObject *, PyObject *value)
return NULL;
}
+ ShowDeprecationWarning("setAmbientColor()", "KX_WorldInfo.ambient_color");
wi->setAmbientColor((float)vec[0], (float)vec[1], (float)vec[2]);
Py_RETURN_NONE;
diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
index 828fd62..b3511e4 100644
--- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
@@ -40,6 +40,7 @@
#include "BL_ArmatureConstraint.h"
#include "BL_ArmatureObject.h"
#include "BL_ArmatureChannel.h"
+#include "KX_WorldInfo.h"
#include "KX_ArmatureSensor.h"
#include "KX_BlenderMaterial.h"
#include "KX_CameraActuator.h"
@@ -231,6 +232,7 @@ PyMODINIT_FUNC initGameTypesPythonBinding(void)
PyType_Ready_Attr(dict, KX_SCA_EndObjectActuator, init_getset);
PyType_Ready_Attr(dict, KX_SCA_ReplaceMeshActuator, init_getset);
PyType_Ready_Attr(dict, KX_Scene, init_getset);
+ PyType_Ready_Attr(dict, KX_WorldInfo, init_getset);
PyType_Ready_Attr(dict, KX_NavMeshObject, init_getset);
PyType_Ready_Attr(dict, KX_SceneActuator, init_getset);
PyType_Ready_Attr(dict, KX_SoundActuator, init_getset);
@@ -279,6 +281,7 @@ PyMODINIT_FUNC initGameTypesPythonBinding(void)
/* Init mathutils callbacks */
KX_GameObject_Mathutils_Callback_Init();
KX_ObjectActuator_Mathutils_Callback_Init();
+ KX_WorldInfo_Mathutils_Callback_Init();
#endif
return m;
diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp
index e26fdaa..193a72e 100644
--- a/source/gameengine/Ketsji/KX_Scene.cpp
+++ b/source/gameengine/Ketsji/KX_Scene.cpp
@@ -2341,6 +2341,19 @@ PyObject *KX_Scene::pyattr_get_lights(void *self_v, const KX_PYATTRIBUTE_DEF *at
return self->GetLightList()->GetProxy();
}
+PyObject *KX_Scene::pyattr_get_world(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_Scene* self = static_cast<KX_Scene*>(self_v);
+ KX_WorldInfo *world = self->GetWorldInfo();
+
+ if (world->GetName() != "") {
+ return world->GetProxy();
+ }
+ else {
+ Py_RETURN_NONE;
+ }
+}
+
PyObject *KX_Scene::pyattr_get_cameras(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
/* With refcounts in this case...
@@ -2464,6 +2477,7 @@ PyAttributeDef KX_Scene::Attributes[] = {
KX_PYATTRIBUTE_RO_FUNCTION("objectsInactive", KX_Scene, pyattr_get_objects_inactive),
KX_PYATTRIBUTE_RO_FUNC
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list