Aurora.ScriptEngine.AuroraDotNetEngine.APIs.LSL_Api.GetLinkPartsAndEntities C# (CSharp) Метод

GetLinkPartsAndEntities() публичный Метод

public GetLinkPartsAndEntities ( int linkType ) : List
linkType int
Результат List
        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;
        }
LSL_Api