diff options
author | Melanie | 2010-04-30 11:49:16 +0100 |
---|---|---|
committer | Melanie | 2010-04-30 11:49:16 +0100 |
commit | 7dc5ebc9290cc78babee6032b0d1606d6a7848cf (patch) | |
tree | 284b6ac7d547fcc4357343336d5fc66076e6085d /OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |
parent | Treat a UserLevel of -1 as an unverified account and refer them to their (diff) | |
parent | Merge branch '0.6.9-post-fixes' into careminster (diff) | |
download | opensim-SC-7dc5ebc9290cc78babee6032b0d1606d6a7848cf.zip opensim-SC-7dc5ebc9290cc78babee6032b0d1606d6a7848cf.tar.gz opensim-SC-7dc5ebc9290cc78babee6032b0d1606d6a7848cf.tar.bz2 opensim-SC-7dc5ebc9290cc78babee6032b0d1606d6a7848cf.tar.xz |
Merge branch 'careminster' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.Inventory.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index e6e414f..90bce39 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1944,5 +1944,55 @@ namespace OpenSim.Region.Framework.Scenes | |||
1944 | part.GetProperties(remoteClient); | 1944 | part.GetProperties(remoteClient); |
1945 | } | 1945 | } |
1946 | } | 1946 | } |
1947 | |||
1948 | public void DelinkObjects(List<uint> primIds, IClientAPI client) | ||
1949 | { | ||
1950 | List<SceneObjectPart> parts = new List<SceneObjectPart>(); | ||
1951 | |||
1952 | foreach (uint localID in primIds) | ||
1953 | { | ||
1954 | SceneObjectPart part = GetSceneObjectPart(localID); | ||
1955 | |||
1956 | if (part == null) | ||
1957 | continue; | ||
1958 | |||
1959 | if (Permissions.CanDelinkObject(client.AgentId, part.ParentGroup.RootPart.UUID)) | ||
1960 | parts.Add(part); | ||
1961 | } | ||
1962 | |||
1963 | m_sceneGraph.DelinkObjects(parts); | ||
1964 | } | ||
1965 | |||
1966 | public void LinkObjects(IClientAPI client, uint parentPrimId, List<uint> childPrimIds) | ||
1967 | { | ||
1968 | List<UUID> owners = new List<UUID>(); | ||
1969 | |||
1970 | List<SceneObjectPart> children = new List<SceneObjectPart>(); | ||
1971 | SceneObjectPart root = GetSceneObjectPart(parentPrimId); | ||
1972 | |||
1973 | if (Permissions.CanLinkObject(client.AgentId, root.ParentGroup.RootPart.UUID)) | ||
1974 | return; | ||
1975 | |||
1976 | foreach (uint localID in childPrimIds) | ||
1977 | { | ||
1978 | SceneObjectPart part = GetSceneObjectPart(localID); | ||
1979 | |||
1980 | if (part == null) | ||
1981 | continue; | ||
1982 | |||
1983 | if (!owners.Contains(part.OwnerID)) | ||
1984 | owners.Add(part.OwnerID); | ||
1985 | |||
1986 | if (Permissions.CanLinkObject(client.AgentId, part.ParentGroup.RootPart.UUID)) | ||
1987 | children.Add(part); | ||
1988 | } | ||
1989 | |||
1990 | // Must be all one owner | ||
1991 | // | ||
1992 | if (owners.Count > 1) | ||
1993 | return; | ||
1994 | |||
1995 | m_sceneGraph.LinkObjects(root, children); | ||
1996 | } | ||
1947 | } | 1997 | } |
1948 | } | 1998 | } |