aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/PermissionManager.cs15
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs23
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs4
4 files changed, 39 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs
index 2698d3f..1daf5c3 100644
--- a/OpenSim/Region/Environment/PermissionManager.cs
+++ b/OpenSim/Region/Environment/PermissionManager.cs
@@ -91,16 +91,23 @@ namespace OpenSim.Region.Environment
91 91
92 #region Object Permissions 92 #region Object Permissions
93 93
94 protected virtual bool GenericObjectPermission(LLUUID user, LLUUID obj) 94 protected virtual bool GenericObjectPermission(LLUUID user, LLUUID objId)
95 { 95 {
96 // Default: deny 96 // Default: deny
97 bool permission = false; 97 bool permission = false;
98 98
99 if( !m_scene.Entities.ContainsKey( objId ))
100 {
101 return false;
102 }
103
99 // If it's not an object, we cant edit it. 104 // If it's not an object, we cant edit it.
100 if (!(m_scene.Entities[obj] is SceneObjectGroup)) 105 if (!(m_scene.Entities[objId] is SceneObjectGroup))
106 {
101 return false; 107 return false;
102 108 }
103 SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[obj]; 109
110 SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[objId];
104 LLUUID taskOwner = null; 111 LLUUID taskOwner = null;
105 112
106 // Object owners should be able to edit their own content 113 // Object owners should be able to edit their own content
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index afa4ea5..10bdd54 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -752,7 +752,7 @@ namespace OpenSim.Region.Environment.Scenes
752 } 752 }
753 } 753 }
754 754
755 public void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) 755 public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
756 { 756 {
757 this.EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient); 757 this.EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient);
758 } 758 }
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 3bd83aa..77d936d 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -863,5 +863,28 @@ namespace OpenSim.Region.Environment.Scenes
863 m_rootPart.Text = text; 863 m_rootPart.Text = text;
864 m_rootPart.ScheduleTerseUpdate(); 864 m_rootPart.ScheduleTerseUpdate();
865 } 865 }
866
867 public void ObjectGrabHandler(uint localId, LLVector3 offsetPos, IClientAPI remoteClient)
868 {
869 if( m_rootPart.LocalID == localId )
870 {
871 OnGrabGroup(offsetPos, remoteClient);
872 }
873 else
874 {
875 SceneObjectPart part = GetChildPrim(localId);
876 OnGrabPart(part, offsetPos, remoteClient);
877 }
878 }
879
880 public virtual void OnGrabPart(SceneObjectPart part, LLVector3 offsetPos, IClientAPI remoteClient)
881 {
882 part.OnGrab(offsetPos, remoteClient);
883 }
884
885 public virtual void OnGrabGroup(LLVector3 offsetPos, IClientAPI remoteClient)
886 {
887
888 }
866 } 889 }
867} 890}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index c4752a5..8e570d4 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -566,6 +566,10 @@ namespace OpenSim.Region.Environment.Scenes
566 public virtual void UpdateMovement() 566 public virtual void UpdateMovement()
567 { 567 {
568 } 568 }
569
570 public virtual void OnGrab(LLVector3 offsetPos, IClientAPI remoteClient)
571 {
572 }
569 } 573 }
570} 574}
571 575