aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authorTeravus Ovares2008-05-18 03:21:22 +0000
committerTeravus Ovares2008-05-18 03:21:22 +0000
commit2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09 (patch)
treebf74f24df560c0fffaf90b98f0d4e50bb0248107 /OpenSim/Region/Environment/Scenes
parentThank you very kindly, Melanie for: (diff)
downloadopensim-SC-2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09.zip
opensim-SC-2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09.tar.gz
opensim-SC-2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09.tar.bz2
opensim-SC-2bd03b7c8c3b14ea5e7b709aa9e1a3d63ed67e09.tar.xz
* Group type stuff. Nothing spectacular. two packets, sorta almost semi half tiny amount implemented.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r--OpenSim/Region/Environment/Scenes/InnerScene.cs23
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs1
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs11
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs8
4 files changed, 42 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index 352fdf9..7a460a2 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -330,7 +330,30 @@ namespace OpenSim.Region.Environment.Scenes
330 330
331 331
332 } 332 }
333 public void HandleObjectGroupUpdate(
334 IClientAPI remoteClient, LLUUID GroupID, uint objectLocalID, LLUUID Garbage)
335 {
336 List<EntityBase> EntityList = GetEntities();
333 337
338 foreach (EntityBase obj in EntityList)
339 {
340 if (obj is SceneObjectGroup)
341 {
342 if (((SceneObjectGroup)obj).LocalId == objectLocalID)
343 {
344 SceneObjectGroup group = (SceneObjectGroup)obj;
345
346 if (m_parentScene.ExternalChecks.ExternalChecksCanEditObject(group.UUID, remoteClient.AgentId))
347 group.SetGroup(GroupID, remoteClient);
348 else
349 remoteClient.SendAgentAlertMessage("You don't have permission to set the group", false);
350
351 }
352 }
353 }
354
355
356 }
334 /// <summary> 357 /// <summary>
335 /// Event Handling routine for Attach Object 358 /// Event Handling routine for Attach Object
336 /// </summary> 359 /// </summary>
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index a798f40..d4b85c2 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1651,6 +1651,7 @@ namespace OpenSim.Region.Environment.Scenes
1651 1651
1652 client.OnSetStartLocationRequest += SetHomeRezPoint; 1652 client.OnSetStartLocationRequest += SetHomeRezPoint;
1653 client.OnUndo += m_innerScene.HandleUndo; 1653 client.OnUndo += m_innerScene.HandleUndo;
1654 client.OnObjectGroupRequest += m_innerScene.HandleObjectGroupUpdate;
1654 1655
1655 EventManager.TriggerOnNewClient(client); 1656 EventManager.TriggerOnNewClient(client);
1656 } 1657 }
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 635a989..44e4c81 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -2510,5 +2510,16 @@ namespace OpenSim.Region.Environment.Scenes
2510 } 2510 }
2511 } 2511 }
2512 } 2512 }
2513 public void SetGroup(LLUUID GroupID, IClientAPI client)
2514 {
2515 lock (m_parts)
2516 {
2517 foreach (SceneObjectPart part in m_parts.Values)
2518 {
2519 part.SetGroup(GroupID, client);
2520 }
2521 }
2522 ScheduleGroupForFullUpdate();
2523 }
2513 } 2524 }
2514} 2525}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index a7b7692..a23083c 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -2760,13 +2760,19 @@ namespace OpenSim.Region.Environment.Scenes
2760 public void GetProperties(IClientAPI client) 2760 public void GetProperties(IClientAPI client)
2761 { 2761 {
2762 2762
2763 client.SendObjectPropertiesReply(LLUUID.Zero, (ulong)CreationDate, CreatorID, LLUUID.Zero, LLUUID.Zero, 2763 client.SendObjectPropertiesReply(LLUUID.Zero, (ulong)CreationDate, CreatorID, LLUUID.Zero, GroupID,
2764 LLUUID.Zero, (short)InventorySerial, LastOwnerID, UUID, OwnerID, 2764 LLUUID.Zero, (short)InventorySerial, LastOwnerID, UUID, OwnerID,
2765 ParentGroup.RootPart.TouchName, new byte[0], ParentGroup.RootPart.SitName, Name, Description, 2765 ParentGroup.RootPart.TouchName, new byte[0], ParentGroup.RootPart.SitName, Name, Description,
2766 ParentGroup.RootPart.OwnerMask, ParentGroup.RootPart.NextOwnerMask, ParentGroup.RootPart.GroupMask, ParentGroup.RootPart.EveryoneMask, 2766 ParentGroup.RootPart.OwnerMask, ParentGroup.RootPart.NextOwnerMask, ParentGroup.RootPart.GroupMask, ParentGroup.RootPart.EveryoneMask,
2767 ParentGroup.RootPart.BaseMask); 2767 ParentGroup.RootPart.BaseMask);
2768 2768
2769 } 2769 }
2770 public void SetGroup(LLUUID groupID, IClientAPI client)
2771 {
2772 GroupID = groupID;
2773 GetProperties(client);
2774 m_updateFlag = 2;
2775 }
2770 2776
2771 } 2777 }
2772} 2778}