diff options
Diffstat (limited to 'OpenSim/Region')
8 files changed, 54 insertions, 44 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index db81fea..37024fd 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 | |||
4173 | while (updatesThisCall < m_maxUpdates) | 4173 | while (updatesThisCall < m_maxUpdates) |
4174 | { | 4174 | { |
4175 | lock (m_entityProps.SyncRoot) | 4175 | lock (m_entityProps.SyncRoot) |
4176 | if (!m_entityProps.TryDequeue(out iupdate, out timeinqueue)) | 4176 | if (!m_entityProps.TryDequeue(out iupdate, out timeinqueue)) |
4177 | break; | 4177 | break; |
4178 | 4178 | ||
4179 | ObjectPropertyUpdate update = (ObjectPropertyUpdate)iupdate; | 4179 | ObjectPropertyUpdate update = (ObjectPropertyUpdate)iupdate; |
4180 | if (update.SendFamilyProps) | 4180 | if (update.SendFamilyProps) |
diff --git a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs index 49e3236..eb4731c 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 | |||
101 | 101 | ||
102 | part.ParentGroup.HasGroupChanged = true; | 102 | part.ParentGroup.HasGroupChanged = true; |
103 | 103 | ||
104 | part.GetProperties(client); | 104 | part.SendPropertiesToClient(client); |
105 | } | 105 | } |
106 | 106 | ||
107 | public bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice) | 107 | public bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice) |
@@ -142,7 +142,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell | |||
142 | part.SalePrice = 10; | 142 | part.SalePrice = 10; |
143 | 143 | ||
144 | group.HasGroupChanged = true; | 144 | group.HasGroupChanged = true; |
145 | part.GetProperties(remoteClient); | 145 | part.SendPropertiesToClient(remoteClient); |
146 | part.TriggerScriptChangedEvent(Changed.OWNER); | 146 | part.TriggerScriptChangedEvent(Changed.OWNER); |
147 | group.ResumeScripts(); | 147 | group.ResumeScripts(); |
148 | part.ScheduleFullUpdate(); | 148 | part.ScheduleFullUpdate(); |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index c2ec5d0..931fedc 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 | |||
261 | item.AssetID = asset.FullID; | 261 | item.AssetID = asset.FullID; |
262 | group.UpdateInventoryItem(item); | 262 | group.UpdateInventoryItem(item); |
263 | 263 | ||
264 | part.GetProperties(remoteClient); | 264 | part.SendPropertiesToClient(remoteClient); |
265 | 265 | ||
266 | // Trigger rerunning of script (use TriggerRezScript event, see RezScript) | 266 | // Trigger rerunning of script (use TriggerRezScript event, see RezScript) |
267 | ArrayList errors = new ArrayList(); | 267 | ArrayList errors = new ArrayList(); |
@@ -1005,7 +1005,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1005 | } | 1005 | } |
1006 | 1006 | ||
1007 | group.RemoveInventoryItem(localID, itemID); | 1007 | group.RemoveInventoryItem(localID, itemID); |
1008 | part.GetProperties(remoteClient); | 1008 | part.SendPropertiesToClient(remoteClient); |
1009 | } | 1009 | } |
1010 | } | 1010 | } |
1011 | 1011 | ||
@@ -1283,7 +1283,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1283 | 1283 | ||
1284 | if (TryGetScenePresence(srcTaskItem.OwnerID, out avatar)) | 1284 | if (TryGetScenePresence(srcTaskItem.OwnerID, out avatar)) |
1285 | { | 1285 | { |
1286 | destPart.GetProperties(avatar.ControllingClient); | 1286 | destPart.SendPropertiesToClient(avatar.ControllingClient); |
1287 | } | 1287 | } |
1288 | } | 1288 | } |
1289 | 1289 | ||
@@ -1446,7 +1446,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1446 | m_log.InfoFormat( | 1446 | m_log.InfoFormat( |
1447 | "[PRIM INVENTORY]: Update with item {0} requested of prim {1} for {2}", | 1447 | "[PRIM INVENTORY]: Update with item {0} requested of prim {1} for {2}", |
1448 | item.Name, primLocalID, remoteClient.Name); | 1448 | item.Name, primLocalID, remoteClient.Name); |
1449 | part.GetProperties(remoteClient); | 1449 | part.SendPropertiesToClient(remoteClient); |
1450 | if (!Permissions.BypassPermissions()) | 1450 | if (!Permissions.BypassPermissions()) |
1451 | { | 1451 | { |
1452 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) | 1452 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) |
@@ -1534,7 +1534,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1534 | 1534 | ||
1535 | if (part.Inventory.UpdateInventoryItem(itemInfo)) | 1535 | if (part.Inventory.UpdateInventoryItem(itemInfo)) |
1536 | { | 1536 | { |
1537 | part.GetProperties(remoteClient); | 1537 | part.SendPropertiesToClient(remoteClient); |
1538 | } | 1538 | } |
1539 | } | 1539 | } |
1540 | } | 1540 | } |
@@ -1586,7 +1586,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1586 | // m_log.InfoFormat("[PRIMINVENTORY]: " + | 1586 | // m_log.InfoFormat("[PRIMINVENTORY]: " + |
1587 | // "Rezzed script {0} into prim local ID {1} for user {2}", | 1587 | // "Rezzed script {0} into prim local ID {1} for user {2}", |
1588 | // item.inventoryName, localID, remoteClient.Name); | 1588 | // item.inventoryName, localID, remoteClient.Name); |
1589 | part.GetProperties(remoteClient); | 1589 | part.SendPropertiesToClient(remoteClient); |
1590 | part.ParentGroup.ResumeScripts(); | 1590 | part.ParentGroup.ResumeScripts(); |
1591 | } | 1591 | } |
1592 | else | 1592 | else |
@@ -1644,7 +1644,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1644 | taskItem.AssetID = asset.FullID; | 1644 | taskItem.AssetID = asset.FullID; |
1645 | 1645 | ||
1646 | part.Inventory.AddInventoryItem(taskItem, false); | 1646 | part.Inventory.AddInventoryItem(taskItem, false); |
1647 | part.GetProperties(remoteClient); | 1647 | part.SendPropertiesToClient(remoteClient); |
1648 | 1648 | ||
1649 | part.Inventory.CreateScriptInstance(taskItem, 0, false, DefaultScriptEngine, 0); | 1649 | part.Inventory.CreateScriptInstance(taskItem, 0, false, DefaultScriptEngine, 0); |
1650 | part.ParentGroup.ResumeScripts(); | 1650 | part.ParentGroup.ResumeScripts(); |
@@ -1758,7 +1758,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1758 | 1758 | ||
1759 | if (TryGetScenePresence(srcTaskItem.OwnerID, out avatar)) | 1759 | if (TryGetScenePresence(srcTaskItem.OwnerID, out avatar)) |
1760 | { | 1760 | { |
1761 | destPart.GetProperties(avatar.ControllingClient); | 1761 | destPart.SendPropertiesToClient(avatar.ControllingClient); |
1762 | } | 1762 | } |
1763 | } | 1763 | } |
1764 | 1764 | ||
@@ -2217,7 +2217,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2217 | SceneObjectPart part = GetSceneObjectPart(localID); | 2217 | SceneObjectPart part = GetSceneObjectPart(localID); |
2218 | if (part == null) | 2218 | if (part == null) |
2219 | continue; | 2219 | continue; |
2220 | part.GetProperties(remoteClient); | 2220 | part.SendPropertiesToClient(remoteClient); |
2221 | } | 2221 | } |
2222 | } | 2222 | } |
2223 | 2223 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index 9da57a8..575079f 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 | |||
144 | { | 144 | { |
145 | if (((SceneObjectGroup) ent).LocalId == primLocalID) | 145 | if (((SceneObjectGroup) ent).LocalId == primLocalID) |
146 | { | 146 | { |
147 | ((SceneObjectGroup) ent).GetProperties(remoteClient); | 147 | ((SceneObjectGroup) ent).SendPropertiesToClient(remoteClient); |
148 | ((SceneObjectGroup) ent).IsSelected = true; | 148 | ((SceneObjectGroup) ent).IsSelected = true; |
149 | // A prim is only tainted if it's allowed to be edited by the person clicking it. | 149 | // A prim is only tainted if it's allowed to be edited by the person clicking it. |
150 | if (Permissions.CanEditObject(((SceneObjectGroup)ent).UUID, remoteClient.AgentId) | 150 | if (Permissions.CanEditObject(((SceneObjectGroup)ent).UUID, remoteClient.AgentId) |
@@ -167,7 +167,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
167 | { | 167 | { |
168 | if (part.LocalId == primLocalID) | 168 | if (part.LocalId == primLocalID) |
169 | { | 169 | { |
170 | part.GetProperties(remoteClient); | 170 | part.SendPropertiesToClient(remoteClient); |
171 | foundPrim = true; | 171 | foundPrim = true; |
172 | break; | 172 | break; |
173 | } | 173 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index ea6aab0..5e9cb32 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2104,8 +2104,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2104 | 2104 | ||
2105 | #endregion | 2105 | #endregion |
2106 | 2106 | ||
2107 | #region Scheduling | ||
2108 | |||
2109 | public override void Update() | 2107 | public override void Update() |
2110 | { | 2108 | { |
2111 | // Check that the group was not deleted before the scheduled update | 2109 | // Check that the group was not deleted before the scheduled update |
@@ -2256,7 +2254,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
2256 | parts[i].SendTerseUpdateToAllClients(); | 2254 | parts[i].SendTerseUpdateToAllClients(); |
2257 | } | 2255 | } |
2258 | 2256 | ||
2259 | #endregion | 2257 | /// <summary> |
2258 | /// Send metadata about the root prim (name, description, sale price, etc.) to a client. | ||
2259 | /// </summary> | ||
2260 | /// <param name="client"></param> | ||
2261 | public void SendPropertiesToClient(IClientAPI client) | ||
2262 | { | ||
2263 | m_rootPart.SendPropertiesToClient(client); | ||
2264 | } | ||
2260 | 2265 | ||
2261 | #region SceneGroupPart Methods | 2266 | #region SceneGroupPart Methods |
2262 | 2267 | ||
@@ -2751,15 +2756,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2751 | } | 2756 | } |
2752 | 2757 | ||
2753 | /// <summary> | 2758 | /// <summary> |
2754 | /// Return metadata about a prim (name, description, sale price, etc.) | ||
2755 | /// </summary> | ||
2756 | /// <param name="client"></param> | ||
2757 | public void GetProperties(IClientAPI client) | ||
2758 | { | ||
2759 | m_rootPart.GetProperties(client); | ||
2760 | } | ||
2761 | |||
2762 | /// <summary> | ||
2763 | /// Set the name of a prim | 2759 | /// Set the name of a prim |
2764 | /// </summary> | 2760 | /// </summary> |
2765 | /// <param name="name"></param> | 2761 | /// <param name="name"></param> |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 0c3b404..5414693 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -1357,8 +1357,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1357 | 1357 | ||
1358 | #endregion Public Properties with only Get | 1358 | #endregion Public Properties with only Get |
1359 | 1359 | ||
1360 | #region Private Methods | ||
1361 | |||
1362 | private uint ApplyMask(uint val, bool set, uint mask) | 1360 | private uint ApplyMask(uint val, bool set, uint mask) |
1363 | { | 1361 | { |
1364 | if (set) | 1362 | if (set) |
@@ -1371,14 +1369,35 @@ namespace OpenSim.Region.Framework.Scenes | |||
1371 | } | 1369 | } |
1372 | } | 1370 | } |
1373 | 1371 | ||
1374 | private void SendObjectPropertiesToClient(UUID AgentID) | 1372 | /// <summary> |
1373 | /// Clear all pending updates of parts to clients | ||
1374 | /// </summary> | ||
1375 | private void ClearUpdateSchedule() | ||
1376 | { | ||
1377 | m_updateFlag = 0; | ||
1378 | } | ||
1379 | |||
1380 | /// <summary> | ||
1381 | /// Send this part's properties (name, description, inventory serial, base mask, etc.) to a client | ||
1382 | /// </summary> | ||
1383 | /// <param name="client"></param> | ||
1384 | public void SendPropertiesToClient(IClientAPI client) | ||
1385 | { | ||
1386 | client.SendObjectPropertiesReply(this); | ||
1387 | } | ||
1388 | |||
1389 | /// <summary> | ||
1390 | /// For the scene object group to which this part belongs, send that scene object's root part properties to a client. | ||
1391 | /// </summary> | ||
1392 | /// <param name="AgentID"></param> | ||
1393 | private void SendRootPartPropertiesToClient(UUID AgentID) | ||
1375 | { | 1394 | { |
1376 | m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | 1395 | m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) |
1377 | { | 1396 | { |
1378 | // Ugly reference :( | 1397 | // Ugly reference :( |
1379 | if (avatar.UUID == AgentID) | 1398 | if (avatar.UUID == AgentID) |
1380 | { | 1399 | { |
1381 | m_parentGroup.GetProperties(avatar.ControllingClient); | 1400 | m_parentGroup.SendPropertiesToClient(avatar.ControllingClient); |
1382 | } | 1401 | } |
1383 | }); | 1402 | }); |
1384 | } | 1403 | } |
@@ -1407,8 +1426,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1407 | // } | 1426 | // } |
1408 | // } | 1427 | // } |
1409 | 1428 | ||
1410 | #endregion Private Methods | ||
1411 | |||
1412 | #region Public Methods | 1429 | #region Public Methods |
1413 | 1430 | ||
1414 | public void ResetExpire() | 1431 | public void ResetExpire() |
@@ -2077,11 +2094,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2077 | return Vector3.Zero; | 2094 | return Vector3.Zero; |
2078 | } | 2095 | } |
2079 | 2096 | ||
2080 | public void GetProperties(IClientAPI client) | ||
2081 | { | ||
2082 | client.SendObjectPropertiesReply(this); | ||
2083 | } | ||
2084 | |||
2085 | /// <summary> | 2097 | /// <summary> |
2086 | /// Method for a prim to get it's world position from the group. | 2098 | /// Method for a prim to get it's world position from the group. |
2087 | /// </summary> | 2099 | /// </summary> |
@@ -3500,7 +3512,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3500 | { | 3512 | { |
3501 | _groupID = groupID; | 3513 | _groupID = groupID; |
3502 | if (client != null) | 3514 | if (client != null) |
3503 | GetProperties(client); | 3515 | SendPropertiesToClient(client); |
3504 | m_updateFlag = 2; | 3516 | m_updateFlag = 2; |
3505 | } | 3517 | } |
3506 | 3518 | ||
@@ -4320,10 +4332,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
4320 | 4332 | ||
4321 | break; | 4333 | break; |
4322 | } | 4334 | } |
4323 | SendFullUpdateToAllClients(); | ||
4324 | 4335 | ||
4325 | SendObjectPropertiesToClient(AgentID); | 4336 | SendFullUpdateToAllClients(); |
4326 | 4337 | ||
4338 | SendRootPartPropertiesToClient(AgentID); | ||
4327 | } | 4339 | } |
4328 | } | 4340 | } |
4329 | 4341 | ||
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 58ca00c..4edc220 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -1107,10 +1107,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
1107 | if (m_inventoryFileData.Length > 2) | 1107 | if (m_inventoryFileData.Length > 2) |
1108 | { | 1108 | { |
1109 | xferManager.AddNewFile(m_inventoryFileName, m_inventoryFileData); | 1109 | xferManager.AddNewFile(m_inventoryFileName, m_inventoryFileData); |
1110 | client.SendTaskInventory(m_part.UUID, (short)m_inventorySerial, | ||
1111 | Util.StringToBytes256(m_inventoryFileName)); | ||
1112 | return; | ||
1110 | } | 1113 | } |
1111 | 1114 | ||
1112 | client.SendTaskInventory(m_part.UUID, (short)m_inventorySerial, | 1115 | client.SendTaskInventory(m_part.UUID, 0, new byte[0]); |
1113 | Util.StringToBytes256(m_inventoryFileName)); | ||
1114 | } | 1116 | } |
1115 | 1117 | ||
1116 | /// <summary> | 1118 | /// <summary> |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 18c0dd2..769c84e 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 | |||
3953 | parentPrim.ScheduleGroupForFullUpdate(); | 3953 | parentPrim.ScheduleGroupForFullUpdate(); |
3954 | 3954 | ||
3955 | if (client != null) | 3955 | if (client != null) |
3956 | parentPrim.GetProperties(client); | 3956 | parentPrim.SendPropertiesToClient(client); |
3957 | 3957 | ||
3958 | ScriptSleep(1000); | 3958 | ScriptSleep(1000); |
3959 | } | 3959 | } |