aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
diff options
context:
space:
mode:
authorMelanie2010-04-30 11:49:16 +0100
committerMelanie2010-04-30 11:49:16 +0100
commit7dc5ebc9290cc78babee6032b0d1606d6a7848cf (patch)
tree284b6ac7d547fcc4357343336d5fc66076e6085d /OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
parentTreat a UserLevel of -1 as an unverified account and refer them to their (diff)
parentMerge branch '0.6.9-post-fixes' into careminster (diff)
downloadopensim-SC_OLD-7dc5ebc9290cc78babee6032b0d1606d6a7848cf.zip
opensim-SC_OLD-7dc5ebc9290cc78babee6032b0d1606d6a7848cf.tar.gz
opensim-SC_OLD-7dc5ebc9290cc78babee6032b0d1606d6a7848cf.tar.bz2
opensim-SC_OLD-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.cs50
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}