OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.CreateLink C# (CSharp) Method

CreateLink() public method

public CreateLink ( string target, int parent ) : void
target string
parent int
return void
        public void CreateLink(string target, int parent)
        {
            UUID targetID;

            if (!UUID.TryParse(target, out targetID))
                return;           

            SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)targetID);
            if (targetPart == null)
                return;

            if (targetPart.ParentGroup.AttachmentPoint != 0)
                return; // Fail silently if attached

            if (targetPart.ParentGroup.RootPart.OwnerID != m_host.ParentGroup.RootPart.OwnerID)
                return;

            SceneObjectGroup parentPrim = null, childPrim = null;

            if (parent != 0)
            {
                parentPrim = m_host.ParentGroup;
                childPrim = targetPart.ParentGroup;
            }
            else
            {
                parentPrim = targetPart.ParentGroup;
                childPrim = m_host.ParentGroup;
            }

            // Required for linking
            childPrim.RootPart.ClearUpdateSchedule();
            parentPrim.LinkToGroup(childPrim, true);


            parentPrim.TriggerScriptChangedEvent(Changed.LINK);
            parentPrim.RootPart.CreateSelected = true;
            parentPrim.HasGroupChanged = true;
            parentPrim.ScheduleGroupForFullUpdate();

            IClientAPI client = null;
            ScenePresence sp = World.GetScenePresence(m_host.OwnerID);
            if (sp != null)
                client = sp.ControllingClient;

            if (client != null)
                parentPrim.SendPropertiesToClient(client);

            ScriptSleep(m_sleepMsOnCreateLink);
        }
LSL_Api