public List<ISceneChildEntity> GetLinkParts(int linkType)
{
List<ISceneChildEntity> ret = new List<ISceneChildEntity> { m_host };
if (linkType == ScriptBaseClass.LINK_SET)
{
if (m_host.ParentEntity != null)
return new List<ISceneChildEntity>(m_host.ParentEntity.ChildrenEntities());
return ret;
}
if (linkType == ScriptBaseClass.LINK_ROOT)
{
if (m_host.ParentEntity != null)
{
ret = new List<ISceneChildEntity> { m_host.ParentEntity.RootChild };
return ret;
}
return ret;
}
if (linkType == ScriptBaseClass.LINK_ALL_OTHERS)
{
if (m_host.ParentEntity == null)
return new List<ISceneChildEntity>();
ret = new List<ISceneChildEntity>(m_host.ParentEntity.ChildrenEntities());
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<ISceneChildEntity>();
ret = new List<ISceneChildEntity>(m_host.ParentEntity.ChildrenEntities());
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<ISceneChildEntity>();
IEntity target = m_host.ParentEntity.GetLinkNumPart(linkType);
if (target is ISceneChildEntity)
{
ret = new List<ISceneChildEntity> { target as ISceneChildEntity };
}
//No allowing scene presences to be found here
return ret;
}