public List<IEntity> GetLinkPartsAndEntities(int linkType)
{
List<IEntity> ret = new List<IEntity> { m_host };
if (linkType == ScriptBaseClass.LINK_SET)
{
if (m_host.ParentEntity != null)
{
List<ISceneChildEntity> parts = new List<ISceneChildEntity>(m_host.ParentEntity.ChildrenEntities());
#if (!ISWIN)
return parts.ConvertAll<IEntity>(new Converter<ISceneChildEntity, IEntity>(delegate(ISceneChildEntity part)
{
return (IEntity)part;
}));
#else
return parts.ConvertAll (part => (IEntity) part);
#endif
}
return ret;
}
if (linkType == ScriptBaseClass.LINK_ROOT)
{
if (m_host.ParentEntity != null)
{
ret = new List<IEntity> { m_host.ParentEntity.RootChild };
return ret;
}
return ret;
}
if (linkType == ScriptBaseClass.LINK_ALL_OTHERS)
{
if (m_host.ParentEntity == null)
return new List<IEntity>();
List<ISceneChildEntity> sceneobjectparts = new List<ISceneChildEntity>(m_host.ParentEntity.ChildrenEntities());
#if (!ISWIN)
ret = sceneobjectparts.ConvertAll<IEntity>(new Converter<ISceneChildEntity, IEntity>(delegate(ISceneChildEntity part)
{
return (IEntity)part;
}));
#else
ret = sceneobjectparts.ConvertAll (part => (IEntity) part);
#endif
if (ret.Contains(m_host))
ret.Remove(m_host);
return ret;
}
if (linkType == ScriptBaseClass.LINK_ALL_CHILDREN)
{
if (m_host.ParentEntity == null)
return new List<IEntity>();
List<ISceneChildEntity> children = new List<ISceneChildEntity>(m_host.ParentEntity.ChildrenEntities());
#if (!ISWIN)
ret = children.ConvertAll<IEntity>(new Converter<ISceneChildEntity, IEntity>(delegate(ISceneChildEntity part)
{
return (IEntity)part;
}));
#else
ret = children.ConvertAll (part => (IEntity) part);
#endif
if (ret.Contains(m_host.ParentEntity.RootChild))
ret.Remove(m_host.ParentEntity.RootChild);
return ret;
}
if (linkType == ScriptBaseClass.LINK_THIS)
{
return ret;
}
if (linkType < 0 || m_host.ParentEntity == null)
return new List<IEntity>();
IEntity target = m_host.ParentEntity.GetLinkNumPart(linkType);
if (target == null)
return new List<IEntity>();
ret = new List<IEntity> { target };
return ret;
}