I would actually use EC_DynamicComponent. With this you can create a
component, define it all kinds of attributes on the fly and set their
values. Its kind of a neat "I'll just put my data hear" component, it will
save to txml so the data is persistent.
You can add/edit/remove the attributes from the entity editor by right
clicking the component or from javascript code:
var dataComp = someEntity.GetOrCreateComponent("EC_DynamicComponent",
"MyData");
if (!dataComp.HasAttribute("materialList"))
dataComp.CreateAttribute("qvariantlist", "materialList");
if (!dataComp.HasAttribute("materialList"))
dataComp.CreateAttribute("real", "targetDistance");
if (!dataComp.HasAttribute("logicEnabled"))
dataComp.CreateAttribute("bool", "logicEnabled");
if (!dataComp.HasAttribute("targetOffset"))
dataComp.CreateAttribute("float3", "targetOffset");
var targetDist = 12 * x / 2;
dataComp.SetAttribute("materialList", [ "my.material", "whee whoo", "
http://assets.com/second.material"]);
dataComp.SetAttribute("materialList", targetDist);
dataComp.SetAttribute("logicEnabled", (targetDist > 1 ? true : false));
dataComp.SetAttribute("targetOffset", new float3(10, 5, -1.33));
// Later in the code using it
var dataComp = someEntity.GetOrCreateComponent("EC_DynamicComponent",
"MyData");
if (dataComp.GetAttribute("logicEnabled"))
{
targetEnt.placeable.WorldPosition().Add(dataComp.GetAttribute("
targetOffset"));
// etc...
}
Best regards,
Jonne Nauha
Adminotech developer
On Wed, Sep 26, 2012 at 10:03 PM, Toni Alatalo <[email protected]> wrote:
> On Sep 26, 2012, at 9:08 PM, Peter C. wrote:
>
> I was wondering if anyone had any knowledge of how to implement a entity
> component with an array of groups of properties. I'm trying to implement an
> ogre terrain entity component, however in order to properly implement it, I
> need to implement an array that can be expanded as needed of groups of
> textures/materials. I was wondering if A. this functionality was possible
> in RealXtend,
>
>
> EC_Mesh has an array of materials in the attributes,
> in
> https://github.com/realXtend/naali/blob/tundra2/src/Core/OgreRenderingModule/EC_Mesh.h#L161
>
> /// Mesh material asset reference list, material requests are handled
> automatically.
> Q_PROPERTY(AssetReferenceList meshMaterial READ getmeshMaterial WRITE
> setmeshMaterial);
> DEFINE_QPROPERTY_ATTRIBUTE(AssetReferenceList, meshMaterial);
>
>
> Peter
>
>
> ~Toni
>
> --
> http://groups.google.com/group/realxtend
> http://www.realxtend.org
>
--
http://groups.google.com/group/realxtend
http://www.realxtend.org