change CanObjectEntry() to use a SOG

This commit is contained in:
UbitUmarov
2017-01-20 14:26:24 +00:00
parent df40cdc83e
commit dac32c4e5a
7 changed files with 40 additions and 51 deletions

View File

@@ -52,7 +52,7 @@ namespace OpenSim.Region.Framework.Scenes
public delegate bool EditObjectHandler(SceneObjectGroup sog, ScenePresence sp);
public delegate bool EditObjectInventoryHandler(UUID objectID, UUID editorID, Scene scene);
public delegate bool MoveObjectHandler(SceneObjectGroup sog, ScenePresence sp);
public delegate bool ObjectEntryHandler(UUID objectID, bool enteringRegion, Vector3 newPoint, Scene scene);
public delegate bool ObjectEntryHandler(SceneObjectGroup sog, bool enteringRegion, Vector3 newPoint, Scene scene);
public delegate bool ReturnObjectsHandler(ILandObject land, UUID user, List<SceneObjectGroup> objects, Scene scene);
public delegate bool InstantMessageHandler(UUID user, UUID target, Scene startScene);
public delegate bool InventoryTransferHandler(UUID user, UUID target, Scene startScene);
@@ -504,7 +504,7 @@ namespace OpenSim.Region.Framework.Scenes
#endregion
#region OBJECT ENTRY
public bool CanObjectEntry(UUID objectID, bool enteringRegion, Vector3 newPoint)
public bool CanObjectEntry(SceneObjectGroup sog, bool enteringRegion, Vector3 newPoint)
{
ObjectEntryHandler handler = OnObjectEntry;
if (handler != null)
@@ -512,7 +512,7 @@ namespace OpenSim.Region.Framework.Scenes
Delegate[] list = handler.GetInvocationList();
foreach (ObjectEntryHandler h in list)
{
if (h(objectID, enteringRegion, newPoint, m_scene) == false)
if (h(sog, enteringRegion, newPoint, m_scene) == false)
return false;
}
}

View File

@@ -1579,7 +1579,7 @@ namespace OpenSim.Region.Framework.Scenes
else
{
if (m_parentScene.Permissions.CanMoveObject(group, remoteClient)
&& m_parentScene.Permissions.CanObjectEntry(group.UUID, false, pos))
&& m_parentScene.Permissions.CanObjectEntry(group, false, pos))
{
group.UpdateGroupPosition(pos);
}

View File

@@ -4656,7 +4656,7 @@ namespace OpenSim.Region.Framework.Scenes
}
if ((change & ObjectChangeType.Position) != 0)
{
if (IsAttachment || m_scene.Permissions.CanObjectEntry(group.UUID, false, data.position))
if (IsAttachment || m_scene.Permissions.CanObjectEntry(group, false, data.position))
UpdateGroupPosition(data.position);
updateType = updatetype.groupterse;
}