forked from bartvdbraak/blender
=ID Property Script update and api bugfix=
Turned out somehow I managed to miss adding the proper type refs in Blender.Types for IDGroupType and IDArrayType, which made the script not work. So, I've got it all fixed now. Or at least hopefully :)
This commit is contained in:
parent
1645e8d287
commit
7a19fe19f6
@ -20,6 +20,7 @@ etc.
|
||||
|
||||
from Blender import *
|
||||
from Blender.BGL import *
|
||||
from Blender.Types import IDGroupType, IDArrayType
|
||||
import Blender
|
||||
|
||||
def IsInRectWH(mx, my, x, y, wid, hgt):
|
||||
|
@ -932,7 +932,7 @@ extern PyTypeObject IDGroup_Iter_Type;
|
||||
void M_Blender_Init(void)
|
||||
{
|
||||
PyObject *module;
|
||||
PyObject *dict, *smode, *SpaceHandlers, *UnpackModes, *PropertyTypes;
|
||||
PyObject *dict, *smode, *SpaceHandlers, *UnpackModes;
|
||||
|
||||
/* G.scene should only aver be NULL if blender is executed in
|
||||
background mode, not loading a blend file and executing a python script eg.
|
||||
@ -965,18 +965,6 @@ void M_Blender_Init(void)
|
||||
PyModule_AddObject(module, "SpaceHandlers", SpaceHandlers);
|
||||
}
|
||||
|
||||
PropertyTypes = PyConstant_New();
|
||||
if (PropertyTypes) {
|
||||
BPy_constant *d = (BPy_constant*)PropertyTypes;
|
||||
PyConstant_Insert(d,"STRING",PyInt_FromLong(IDP_STRING));
|
||||
PyConstant_Insert(d,"INT",PyInt_FromLong(IDP_INT));
|
||||
PyConstant_Insert(d,"FLOAT",PyInt_FromLong(IDP_FLOAT));
|
||||
PyConstant_Insert(d,"ARRAY",PyInt_FromLong(IDP_ARRAY));
|
||||
PyConstant_Insert(d,"GROUP",PyInt_FromLong(IDP_GROUP));
|
||||
|
||||
PyModule_AddObject(module, "PropertyTypes", PropertyTypes);
|
||||
}
|
||||
|
||||
if (G.background)
|
||||
smode = PyString_FromString("background");
|
||||
else
|
||||
|
@ -36,6 +36,7 @@
|
||||
is only need here now
|
||||
*/
|
||||
|
||||
extern PyTypeObject IDGroup_Type, IDArray_Type;
|
||||
extern PyTypeObject Action_Type, Armature_Type;
|
||||
extern PyTypeObject Pose_Type;
|
||||
extern PyTypeObject BezTriple_Type, Bone_Type, Button_Type;
|
||||
@ -249,6 +250,9 @@ PyObject *Types_Init( void )
|
||||
( PyObject * ) &ThemeSpace_Type);
|
||||
PyDict_SetItemString( dict, "ThemeUI_Type",
|
||||
( PyObject * ) &ThemeUI_Type);
|
||||
|
||||
PyDict_SetItemString( dict, "IDGroupType",
|
||||
( PyObject * ) &IDGroup_Type);
|
||||
PyDict_SetItemString( dict, "IDArrayType",
|
||||
( PyObject * ) &IDArray_Type);
|
||||
return submodule;
|
||||
}
|
||||
|
@ -24,6 +24,18 @@ class IDGroup:
|
||||
|
||||
del group['property']
|
||||
|
||||
To get the type of a property, use the type() operator, for example::
|
||||
|
||||
if type(group['bleh']) == str: pass
|
||||
|
||||
To tell if the property is a group or array type, import the Blender.Types module and test
|
||||
against IDGroupType and IDArrayType, like so::
|
||||
|
||||
from Blender.Types import IDGroupType, IDArrayType.
|
||||
|
||||
if type(group['bleghr']) == IDGroupType:
|
||||
(do something)
|
||||
|
||||
@ivar name: The name of the property
|
||||
@type name: string
|
||||
"""
|
||||
|
@ -65,4 +65,6 @@ objects.
|
||||
@var rgbTupleType: Blender rgbTuple. A (red, green, blue) triplet.
|
||||
@var TextureType: Blender Texture.
|
||||
@var MTexType: Blender MTex. Links materials to a texture.
|
||||
@var IDGroupType: Blender IDProperty Group type.
|
||||
@var IDArrayType: Blender IDProperty Array type.
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user