From ef20036b847396940de475c16e364661690c63a7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 2 May 2009 02:40:11 +0000 Subject: [PATCH] BGE Py API patch from Mitchell Stokes, adds extra attributes and docs --- .../Converter/BL_ActionActuator.cpp | 1 - .../gameengine/GameLogic/SCA_ILogicBrick.cpp | 2 +- source/gameengine/Ketsji/KX_GameActuator.cpp | 2 +- .../gameengine/Ketsji/KX_ParentActuator.cpp | 2 +- source/gameengine/Ketsji/KX_ParentActuator.h | 1 + source/gameengine/Ketsji/KX_PythonInit.cpp | 25 +++++++++++++++++++ source/gameengine/Ketsji/KX_SceneActuator.cpp | 4 +-- source/gameengine/PyDoc/GameLogic.py | 18 +++++++++++++ source/gameengine/PyDoc/KX_GameActuator.py | 2 ++ source/gameengine/PyDoc/KX_ParentActuator.py | 2 ++ source/gameengine/PyDoc/KX_SceneActuator.py | 2 ++ source/gameengine/PyDoc/SCA_ILogicBrick.py | 2 ++ 12 files changed, 57 insertions(+), 6 deletions(-) diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp index ee97e325a8e..8b8e6b54320 100644 --- a/source/gameengine/Converter/BL_ActionActuator.cpp +++ b/source/gameengine/Converter/BL_ActionActuator.cpp @@ -1015,7 +1015,6 @@ PyAttributeDef BL_ActionActuator::Attributes[] = { KX_PYATTRIBUTE_BOOL_RW("continue", BL_ActionActuator, m_end_reset), KX_PYATTRIBUTE_FLOAT_RW_CHECK("blendTime", 0, MAXFRAMEF, BL_ActionActuator, m_blendframe, CheckBlendTime), KX_PYATTRIBUTE_SHORT_RW_CHECK("type",0,100,false,BL_ActionActuator,m_playtype,CheckType), - //KX_PYATTRIBUTE_TODO("channel"), { NULL } //Sentinel }; diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index 84babda1d7a..c138ae46283 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -254,7 +254,7 @@ PyMethodDef SCA_ILogicBrick::Methods[] = { PyAttributeDef SCA_ILogicBrick::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("owner", SCA_ILogicBrick, pyattr_get_owner), KX_PYATTRIBUTE_INT_RW("executePriority",0,100000,false,SCA_ILogicBrick,m_Execute_Ueber_Priority), - //KX_PYATTRIBUTE_TODO("name"), + KX_PYATTRIBUTE_STRING_RO("name", SCA_ILogicBrick, m_name), {NULL} //Sentinel }; diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp index 48d7dcd84a2..9588e14d360 100644 --- a/source/gameengine/Ketsji/KX_GameActuator.cpp +++ b/source/gameengine/Ketsji/KX_GameActuator.cpp @@ -253,7 +253,7 @@ PyMethodDef KX_GameActuator::Methods[] = PyAttributeDef KX_GameActuator::Attributes[] = { KX_PYATTRIBUTE_STRING_RW("file",0,100,false,KX_GameActuator,m_filename), - //KX_PYATTRIBUTE_TODO("mode"), + KX_PYATTRIBUTE_INT_RW("mode", KX_GAME_NODEF+1, KX_GAME_MAX-1, true, KX_GameActuator, m_mode), { NULL } //Sentinel }; diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp index 37d2e50cdb6..f55ffd4f69a 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.cpp +++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp @@ -178,7 +178,7 @@ PyMethodDef KX_ParentActuator::Methods[] = { PyAttributeDef KX_ParentActuator::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("object", KX_ParentActuator, pyattr_get_object, pyattr_set_object), - //KX_PYATTRIBUTE_TODO("mode"), + KX_PYATTRIBUTE_INT_RW("mode", KX_PARENT_NODEF+1, KX_PARENT_MAX-1, true, KX_ParentActuator, m_mode), { NULL } //Sentinel }; diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h index a9bf7304bc8..6af0888e2ba 100644 --- a/source/gameengine/Ketsji/KX_ParentActuator.h +++ b/source/gameengine/Ketsji/KX_ParentActuator.h @@ -57,6 +57,7 @@ class KX_ParentActuator : public SCA_IActuator KX_PARENT_NODEF = 0, KX_PARENT_SET, KX_PARENT_REMOVE, + KX_PARENT_MAX }; diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 01c1382a6d1..afc1fc5d1f8 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -49,6 +49,9 @@ #include "KX_KetsjiEngine.h" #include "KX_RadarSensor.h" #include "KX_RaySensor.h" +#include "KX_SceneActuator.h" +#include "KX_GameActuator.h" +#include "KX_ParentActuator.h" #include "KX_SCA_DynamicActuator.h" #include "SCA_IInputDevice.h" @@ -1359,6 +1362,28 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_LOCAL, KX_ConstraintActuator::KX_ACT_CONSTRAINT_LOCAL); KX_MACRO_addTypesToDict(d, KX_ACT_CONSTRAINT_DOROTFH, KX_ConstraintActuator::KX_ACT_CONSTRAINT_DOROTFH); + /* Game Actuator Modes */ + KX_MACRO_addTypesToDict(d, KX_GAME_LOAD, KX_GameActuator::KX_GAME_LOAD); + KX_MACRO_addTypesToDict(d, KX_GAME_START, KX_GameActuator::KX_GAME_START); + KX_MACRO_addTypesToDict(d, KX_GAME_RESTART, KX_GameActuator::KX_GAME_RESTART); + KX_MACRO_addTypesToDict(d, KX_GAME_QUIT, KX_GameActuator::KX_GAME_QUIT); + KX_MACRO_addTypesToDict(d, KX_GAME_SAVECFG, KX_GameActuator::KX_GAME_SAVECFG); + KX_MACRO_addTypesToDict(d, KX_GAME_LOADCFG, KX_GameActuator::KX_GAME_LOADCFG); + + /* Scene Actuator Modes */ + KX_MACRO_addTypesToDict(d, KX_SCENE_RESTART, KX_SceneActuator::KX_SCENE_RESTART); + KX_MACRO_addTypesToDict(d, KX_SCENE_SET_SCENE, KX_SceneActuator::KX_SCENE_SET_SCENE); + KX_MACRO_addTypesToDict(d, KX_SCENE_SET_CAMERA, KX_SceneActuator::KX_SCENE_SET_CAMERA); + KX_MACRO_addTypesToDict(d, KX_SCENE_ADD_FRONT_SCENE, KX_SceneActuator::KX_SCENE_ADD_FRONT_SCENE); + KX_MACRO_addTypesToDict(d, KX_SCENE_ADD_BACK_SCENE, KX_SceneActuator::KX_SCENE_ADD_BACK_SCENE); + KX_MACRO_addTypesToDict(d, KX_SCENE_REMOVE_SCENE, KX_SceneActuator::KX_SCENE_REMOVE_SCENE); + KX_MACRO_addTypesToDict(d, KX_SCENE_SUSPEND, KX_SceneActuator::KX_SCENE_SUSPEND); + KX_MACRO_addTypesToDict(d, KX_SCENE_RESUME, KX_SceneActuator::KX_SCENE_RESUME); + + /* Parent Actuator Modes */ + KX_MACRO_addTypesToDict(d, KX_PARENT_SET, KX_ParentActuator::KX_PARENT_SET); + KX_MACRO_addTypesToDict(d, KX_PARENT_REMOVE, KX_ParentActuator::KX_PARENT_REMOVE); + // Check for errors if (PyErr_Occurred()) { diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index 1cce93fbcc5..eed1bb8027b 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -275,8 +275,8 @@ PyMethodDef KX_SceneActuator::Methods[] = PyAttributeDef KX_SceneActuator::Attributes[] = { KX_PYATTRIBUTE_STRING_RW("scene",0,32,true,KX_SceneActuator,m_nextSceneName), KX_PYATTRIBUTE_RW_FUNCTION("camera",KX_SceneActuator,pyattr_get_camera,pyattr_set_camera), - //KX_PYATTRIBUTE_TODO("useRestart"), - //KX_PYATTRIBUTE_TODO("mode"), + KX_PYATTRIBUTE_BOOL_RW("useRestart", KX_SceneActuator, m_restart), + KX_PYATTRIBUTE_INT_RW("mode", KX_SCENE_NODEF+1, KX_SCENE_MAX-1, true, KX_SceneActuator, m_mode), { NULL } //Sentinel }; diff --git a/source/gameengine/PyDoc/GameLogic.py b/source/gameengine/PyDoc/GameLogic.py index 85e94e63416..708dc29f137 100644 --- a/source/gameengine/PyDoc/GameLogic.py +++ b/source/gameengine/PyDoc/GameLogic.py @@ -187,6 +187,24 @@ Documentation for the GameLogic Module. @var KX_DYN_DISABLE_RIGID_BODY: See L{KX_SCA_DynamicActuator} @var KX_DYN_SET_MASS: See L{KX_SCA_DynamicActuator} +@group Game Actuator: KX_GAME_LOAD, KX_GAME_START, KX_GAME_RESTART, KX_GAME_QUIT, KX_GAME_SAVECFG, KX_GAME_LOADCFG +@var KX_Game_LOAD: See L{KX_GameActuator} +@var KX_Game_START: See L{KX_GameActuator} +@var KX_Game_RESTART: See L{KX_GameActuator} +@var KX_Game_QUIT: See L{KX_GameActuator} +@var KX_Game_SAVECFG: See L{KX_GameActuator} +@var KX_Game_LOADCFG: See L{KX_GameActuator} + +@group Scene Actuator: KX_SCENE_RESTART, KX_SCENE_SET_SCENE, KX_SCENE_SET_CAMERA, KX_SCENE_ADD_FRONT_SCENE, KX_SCENE_ADD_BACK_SCENE, KX_SCENE_REMOVE_SCENE, KX_SCENE_SUSPEND, KX_SCENE_RESUME +KX_SCENE_RESTART: See L{KX_SceneActuator} +KX_SCENE_SET_SCENE: See L{KX_SceneActuator} +KX_SCENE_SET_CAMERA: See L{KX_SceneActuator} +KX_SCENE_ADD_FRONT_SCENE: See L{KX_SceneActuator} +KX_SCENE_ADD_BACK_SCENE: See L{KX_SceneActuator} +KX_SCENE_REMOVE_SCENE: See L{KX_SceneActuator} +KX_SCENE_SUSPEND: See L{KX_SceneActuator} +KX_SCENE_RESUME: See L{KX_SceneActuator} + @group Input Status: KX_INPUT_NONE, KX_INPUT_JUST_ACTIVATED, KX_INPUT_ACTIVE, KX_INPUT_JUST_RELEASED @var KX_INPUT_NONE: See L{SCA_MouseSensor} @var KX_INPUT_JUST_ACTIVATED: See L{SCA_MouseSensor} diff --git a/source/gameengine/PyDoc/KX_GameActuator.py b/source/gameengine/PyDoc/KX_GameActuator.py index fc5bd6005fc..0b329419ad7 100644 --- a/source/gameengine/PyDoc/KX_GameActuator.py +++ b/source/gameengine/PyDoc/KX_GameActuator.py @@ -10,6 +10,8 @@ class KX_GameActuator(SCA_IActuator): @ivar file: the new .blend file to load @type file: string. + @ivar mode: The mode of this actuator + @type mode: int from 0 to 5 L{GameLogic.Game Actuator} """ def getFile(): """ diff --git a/source/gameengine/PyDoc/KX_ParentActuator.py b/source/gameengine/PyDoc/KX_ParentActuator.py index 2f5d9515d0b..1e2bfe60a4f 100644 --- a/source/gameengine/PyDoc/KX_ParentActuator.py +++ b/source/gameengine/PyDoc/KX_ParentActuator.py @@ -7,6 +7,8 @@ class KX_ParentActuator(SCA_IActuator): The parent actuator can set or remove an objects parent object. @ivar object: the object this actuator sets the parent too. @type object: KX_GameObject or None + @ivar mode: The mode of this actuator + @type mode: int from 0 to 1 L{GameLogic.Parent Actuator} """ def setObject(object): """ diff --git a/source/gameengine/PyDoc/KX_SceneActuator.py b/source/gameengine/PyDoc/KX_SceneActuator.py index 6e27257533e..2429cd6fb80 100644 --- a/source/gameengine/PyDoc/KX_SceneActuator.py +++ b/source/gameengine/PyDoc/KX_SceneActuator.py @@ -18,6 +18,8 @@ class KX_SceneActuator(SCA_IActuator): @ivar camera: the camera to change to. When setting the attribute, you can use either a L{KX_Camera} or the name of the camera. @type camera: L{KX_Camera} on read, string or L{KX_Camera} on write + @type mode: The mode of the actuator + @type mode: int from 0 to 5 L{GameLogic.Scene Actuator} """ def setUseRestart(flag): """ diff --git a/source/gameengine/PyDoc/SCA_ILogicBrick.py b/source/gameengine/PyDoc/SCA_ILogicBrick.py index 2bfe407204a..a96e77c3249 100644 --- a/source/gameengine/PyDoc/SCA_ILogicBrick.py +++ b/source/gameengine/PyDoc/SCA_ILogicBrick.py @@ -11,6 +11,8 @@ class SCA_ILogicBrick(CValue): @type executePriority: int @ivar owner: The game object this logic brick is attached to (read only). @type owner: L{KX_GameObject} or None in exceptional cases. + @ivar name: The name of this logic brick (read only). + @type name: string @group Deprecated: getOwner, setExecutePriority, getExecutePriority """