diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index db81fea0a8..37024fd5db 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4173,8 +4173,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
while (updatesThisCall < m_maxUpdates)
{
lock (m_entityProps.SyncRoot)
- if (!m_entityProps.TryDequeue(out iupdate, out timeinqueue))
- break;
+ if (!m_entityProps.TryDequeue(out iupdate, out timeinqueue))
+ break;
ObjectPropertyUpdate update = (ObjectPropertyUpdate)iupdate;
if (update.SendFamilyProps)
diff --git a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs
index 49e3236754..eb4731c44c 100644
--- a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs
+++ b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs
@@ -101,7 +101,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
part.ParentGroup.HasGroupChanged = true;
- part.GetProperties(client);
+ part.SendPropertiesToClient(client);
}
public bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice)
@@ -142,7 +142,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
part.SalePrice = 10;
group.HasGroupChanged = true;
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
part.TriggerScriptChangedEvent(Changed.OWNER);
group.ResumeScripts();
part.ScheduleFullUpdate();
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index c2ec5d01f6..931fedcc36 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -261,7 +261,7 @@ namespace OpenSim.Region.Framework.Scenes
item.AssetID = asset.FullID;
group.UpdateInventoryItem(item);
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
// Trigger rerunning of script (use TriggerRezScript event, see RezScript)
ArrayList errors = new ArrayList();
@@ -1005,7 +1005,7 @@ namespace OpenSim.Region.Framework.Scenes
}
group.RemoveInventoryItem(localID, itemID);
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
}
}
@@ -1283,7 +1283,7 @@ namespace OpenSim.Region.Framework.Scenes
if (TryGetScenePresence(srcTaskItem.OwnerID, out avatar))
{
- destPart.GetProperties(avatar.ControllingClient);
+ destPart.SendPropertiesToClient(avatar.ControllingClient);
}
}
@@ -1446,7 +1446,7 @@ namespace OpenSim.Region.Framework.Scenes
m_log.InfoFormat(
"[PRIM INVENTORY]: Update with item {0} requested of prim {1} for {2}",
item.Name, primLocalID, remoteClient.Name);
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
if (!Permissions.BypassPermissions())
{
if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0)
@@ -1534,7 +1534,7 @@ namespace OpenSim.Region.Framework.Scenes
if (part.Inventory.UpdateInventoryItem(itemInfo))
{
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
}
}
}
@@ -1586,7 +1586,7 @@ namespace OpenSim.Region.Framework.Scenes
// m_log.InfoFormat("[PRIMINVENTORY]: " +
// "Rezzed script {0} into prim local ID {1} for user {2}",
// item.inventoryName, localID, remoteClient.Name);
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
part.ParentGroup.ResumeScripts();
}
else
@@ -1644,7 +1644,7 @@ namespace OpenSim.Region.Framework.Scenes
taskItem.AssetID = asset.FullID;
part.Inventory.AddInventoryItem(taskItem, false);
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
part.Inventory.CreateScriptInstance(taskItem, 0, false, DefaultScriptEngine, 0);
part.ParentGroup.ResumeScripts();
@@ -1758,7 +1758,7 @@ namespace OpenSim.Region.Framework.Scenes
if (TryGetScenePresence(srcTaskItem.OwnerID, out avatar))
{
- destPart.GetProperties(avatar.ControllingClient);
+ destPart.SendPropertiesToClient(avatar.ControllingClient);
}
}
@@ -2217,7 +2217,7 @@ namespace OpenSim.Region.Framework.Scenes
SceneObjectPart part = GetSceneObjectPart(localID);
if (part == null)
continue;
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
}
}
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
index 9da57a8997..575079f454 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
@@ -144,7 +144,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (((SceneObjectGroup) ent).LocalId == primLocalID)
{
- ((SceneObjectGroup) ent).GetProperties(remoteClient);
+ ((SceneObjectGroup) ent).SendPropertiesToClient(remoteClient);
((SceneObjectGroup) ent).IsSelected = true;
// A prim is only tainted if it's allowed to be edited by the person clicking it.
if (Permissions.CanEditObject(((SceneObjectGroup)ent).UUID, remoteClient.AgentId)
@@ -167,7 +167,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (part.LocalId == primLocalID)
{
- part.GetProperties(remoteClient);
+ part.SendPropertiesToClient(remoteClient);
foundPrim = true;
break;
}
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index ea6aab0ad1..5e9cb327a8 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2104,8 +2104,6 @@ namespace OpenSim.Region.Framework.Scenes
#endregion
- #region Scheduling
-
public override void Update()
{
// Check that the group was not deleted before the scheduled update
@@ -2256,7 +2254,14 @@ namespace OpenSim.Region.Framework.Scenes
parts[i].SendTerseUpdateToAllClients();
}
- #endregion
+ ///
+ /// Send metadata about the root prim (name, description, sale price, etc.) to a client.
+ ///
+ ///
+ public void SendPropertiesToClient(IClientAPI client)
+ {
+ m_rootPart.SendPropertiesToClient(client);
+ }
#region SceneGroupPart Methods
@@ -2750,15 +2755,6 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- ///
- /// Return metadata about a prim (name, description, sale price, etc.)
- ///
- ///
- public void GetProperties(IClientAPI client)
- {
- m_rootPart.GetProperties(client);
- }
-
///
/// Set the name of a prim
///
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 0c3b4044d3..541469388e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1357,8 +1357,6 @@ namespace OpenSim.Region.Framework.Scenes
#endregion Public Properties with only Get
- #region Private Methods
-
private uint ApplyMask(uint val, bool set, uint mask)
{
if (set)
@@ -1371,14 +1369,35 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- private void SendObjectPropertiesToClient(UUID AgentID)
+ ///
+ /// Clear all pending updates of parts to clients
+ ///
+ private void ClearUpdateSchedule()
+ {
+ m_updateFlag = 0;
+ }
+
+ ///
+ /// Send this part's properties (name, description, inventory serial, base mask, etc.) to a client
+ ///
+ ///
+ public void SendPropertiesToClient(IClientAPI client)
+ {
+ client.SendObjectPropertiesReply(this);
+ }
+
+ ///
+ /// For the scene object group to which this part belongs, send that scene object's root part properties to a client.
+ ///
+ ///
+ private void SendRootPartPropertiesToClient(UUID AgentID)
{
m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar)
{
// Ugly reference :(
if (avatar.UUID == AgentID)
{
- m_parentGroup.GetProperties(avatar.ControllingClient);
+ m_parentGroup.SendPropertiesToClient(avatar.ControllingClient);
}
});
}
@@ -1407,8 +1426,6 @@ namespace OpenSim.Region.Framework.Scenes
// }
// }
- #endregion Private Methods
-
#region Public Methods
public void ResetExpire()
@@ -2077,11 +2094,6 @@ namespace OpenSim.Region.Framework.Scenes
return Vector3.Zero;
}
- public void GetProperties(IClientAPI client)
- {
- client.SendObjectPropertiesReply(this);
- }
-
///
/// Method for a prim to get it's world position from the group.
///
@@ -3500,7 +3512,7 @@ namespace OpenSim.Region.Framework.Scenes
{
_groupID = groupID;
if (client != null)
- GetProperties(client);
+ SendPropertiesToClient(client);
m_updateFlag = 2;
}
@@ -4320,10 +4332,10 @@ namespace OpenSim.Region.Framework.Scenes
break;
}
+
SendFullUpdateToAllClients();
- SendObjectPropertiesToClient(AgentID);
-
+ SendRootPartPropertiesToClient(AgentID);
}
}
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index 58ca00c68a..4edc22034c 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -1107,10 +1107,12 @@ namespace OpenSim.Region.Framework.Scenes
if (m_inventoryFileData.Length > 2)
{
xferManager.AddNewFile(m_inventoryFileName, m_inventoryFileData);
+ client.SendTaskInventory(m_part.UUID, (short)m_inventorySerial,
+ Util.StringToBytes256(m_inventoryFileName));
+ return;
}
- client.SendTaskInventory(m_part.UUID, (short)m_inventorySerial,
- Util.StringToBytes256(m_inventoryFileName));
+ client.SendTaskInventory(m_part.UUID, 0, new byte[0]);
}
///
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 18c0dd29dc..769c84ee0a 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3953,7 +3953,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
parentPrim.ScheduleGroupForFullUpdate();
if (client != null)
- parentPrim.GetProperties(client);
+ parentPrim.SendPropertiesToClient(client);
ScriptSleep(1000);
}