aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-06-27 16:36:19 +0000
committerJustin Clarke Casey2008-06-27 16:36:19 +0000
commit9bf67201c31d531e0480e67d8a96472d0a5b0c76 (patch)
treecb3123ab6062efd7f32762b5a8a88bf1f58a35a5 /OpenSim/Region/Environment/Scenes
parentdr scofield's warning safari: hunting down those little buggers (diff)
downloadopensim-SC_OLD-9bf67201c31d531e0480e67d8a96472d0a5b0c76.zip
opensim-SC_OLD-9bf67201c31d531e0480e67d8a96472d0a5b0c76.tar.gz
opensim-SC_OLD-9bf67201c31d531e0480e67d8a96472d0a5b0c76.tar.bz2
opensim-SC_OLD-9bf67201c31d531e0480e67d8a96472d0a5b0c76.tar.xz
* Remove responsibilty for signalling scene object change from SceneObjectPart.SendFullUpdate()
* This means that we will no longer pointlessly repersist all the prims in the scene when OpenSim first starts up * This also means that force-update on the console will not trigger repersistence. * Also, in other places persistence is no longer done where it wasn't actually necessary * I think I changed the code for all instances correctly, but it's not possible that I missed some and some things which did persist properly have stopped * Please patch or mantis if this is the case
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r--OpenSim/Region/Environment/Scenes/InnerScene.cs1
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs23
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs3
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs25
4 files changed, 43 insertions, 9 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index d74d763..ab0ed6b 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -1522,6 +1522,7 @@ namespace OpenSim.Region.Environment.Scenes
1522 } 1522 }
1523 1523
1524 copy.StartScripts(); 1524 copy.StartScripts();
1525 copy.HasGroupChanged = true;
1525 copy.ScheduleGroupForFullUpdate(); 1526 copy.ScheduleGroupForFullUpdate();
1526 return copy; 1527 return copy;
1527 } 1528 }
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index b903674..74f9d6c 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -477,6 +477,7 @@ namespace OpenSim.Region.Environment.Scenes
477 newPart.LinkNum = m_parts.Count; 477 newPart.LinkNum = m_parts.Count;
478 m_parts.Add(newPart.UUID, newPart); 478 m_parts.Add(newPart.UUID, newPart);
479 SetPartAsRoot(newPart); 479 SetPartAsRoot(newPart);
480
480 // one of these is a proxy. 481 // one of these is a proxy.
481 if (shape.PCode != (byte)PCode.None && shape.PCode != (byte)PCode.ParticleSystem) 482 if (shape.PCode != (byte)PCode.None && shape.PCode != (byte)PCode.ParticleSystem)
482 AttachToBackup(); 483 AttachToBackup();
@@ -686,7 +687,12 @@ namespace OpenSim.Region.Environment.Scenes
686 m_rootPart = part; 687 m_rootPart = part;
687 } 688 }
688 689
689 690 /// <summary>
691 /// Attach this scene object to the given avatar.
692 /// </summary>
693 /// <param name="agentID"></param>
694 /// <param name="attachmentpoint"></param>
695 /// <param name="AttachOffset"></param>
690 public void AttachToAgent(LLUUID agentID, uint attachmentpoint, LLVector3 AttachOffset) 696 public void AttachToAgent(LLUUID agentID, uint attachmentpoint, LLVector3 AttachOffset)
691 { 697 {
692 ScenePresence avatar = m_scene.GetScenePresence(agentID); 698 ScenePresence avatar = m_scene.GetScenePresence(agentID);
@@ -752,6 +758,7 @@ namespace OpenSim.Region.Environment.Scenes
752 m_rootPart.SetAttachmentPoint((byte)0); 758 m_rootPart.SetAttachmentPoint((byte)0);
753 m_rootPart.m_IsAttachment = false; 759 m_rootPart.m_IsAttachment = false;
754 m_rootPart.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), m_scene.m_physicalPrim); 760 m_rootPart.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), m_scene.m_physicalPrim);
761 HasGroupChanged = true;
755 AttachToBackup(); 762 AttachToBackup();
756 m_rootPart.ScheduleFullUpdate(); 763 m_rootPart.ScheduleFullUpdate();
757 m_rootPart.ClearUndoState(); 764 m_rootPart.ClearUndoState();
@@ -1026,6 +1033,7 @@ namespace OpenSim.Region.Environment.Scenes
1026 lock (m_targets) 1033 lock (m_targets)
1027 m_targets.Clear(); 1034 m_targets.Clear();
1028 } 1035 }
1036
1029 ScheduleGroupForFullUpdate(); 1037 ScheduleGroupForFullUpdate();
1030 } 1038 }
1031 1039
@@ -1037,6 +1045,7 @@ namespace OpenSim.Region.Environment.Scenes
1037 (int) (color.z * 0xff)); 1045 (int) (color.z * 0xff));
1038 Text = text; 1046 Text = text;
1039 1047
1048 HasGroupChanged = true;
1040 m_rootPart.ScheduleFullUpdate(); 1049 m_rootPart.ScheduleFullUpdate();
1041 } 1050 }
1042 1051
@@ -1229,6 +1238,7 @@ namespace OpenSim.Region.Environment.Scenes
1229 1238
1230 dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); 1239 dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true);
1231 } 1240 }
1241
1232 // Now we've made a copy that replaces this one, we need to 1242 // Now we've made a copy that replaces this one, we need to
1233 // switch the owner to the person who did the copying 1243 // switch the owner to the person who did the copying
1234 // Second Life copies an object and duplicates the first one in it's place 1244 // Second Life copies an object and duplicates the first one in it's place
@@ -1257,8 +1267,9 @@ namespace OpenSim.Region.Environment.Scenes
1257 if (userExposed) 1267 if (userExposed)
1258 { 1268 {
1259 dupe.UpdateParentIDs(); 1269 dupe.UpdateParentIDs();
1260 1270 dupe.HasGroupChanged = true;
1261 dupe.AttachToBackup(); 1271 dupe.AttachToBackup();
1272
1262 ScheduleGroupForFullUpdate(); 1273 ScheduleGroupForFullUpdate();
1263 } 1274 }
1264 1275
@@ -1386,7 +1397,6 @@ namespace OpenSim.Region.Environment.Scenes
1386 part.OwnerID = cAgentID; 1397 part.OwnerID = cAgentID;
1387 part.GroupID = cGroupID; 1398 part.GroupID = cGroupID;
1388 1399
1389
1390 if (part.OwnerID != cAgentID) 1400 if (part.OwnerID != cAgentID)
1391 { 1401 {
1392 // Apply Next Owner Permissions if we're not bypassing permissions 1402 // Apply Next Owner Permissions if we're not bypassing permissions
@@ -1535,7 +1545,6 @@ namespace OpenSim.Region.Environment.Scenes
1535 /// </summary> 1545 /// </summary>
1536 public void ScheduleGroupForFullUpdate() 1546 public void ScheduleGroupForFullUpdate()
1537 { 1547 {
1538 HasGroupChanged = true;
1539 checkAtTargets(); 1548 checkAtTargets();
1540 lock (m_parts) 1549 lock (m_parts)
1541 { 1550 {
@@ -1774,6 +1783,7 @@ namespace OpenSim.Region.Environment.Scenes
1774 // The traffic caused is always going to be pretty minor, so it's not high priority 1783 // The traffic caused is always going to be pretty minor, so it's not high priority
1775 //objectGroup.DeleteGroup(); 1784 //objectGroup.DeleteGroup();
1776 1785
1786 HasGroupChanged = true;
1777 ScheduleGroupForFullUpdate(); 1787 ScheduleGroupForFullUpdate();
1778 } 1788 }
1779 1789
@@ -1834,6 +1844,7 @@ namespace OpenSim.Region.Environment.Scenes
1834 1844
1835 m_scene.AddNewSceneObject(objectGroup, true); 1845 m_scene.AddNewSceneObject(objectGroup, true);
1836 1846
1847 HasGroupChanged = true;
1837 ScheduleGroupForFullUpdate(); 1848 ScheduleGroupForFullUpdate();
1838 } 1849 }
1839 else 1850 else
@@ -2112,6 +2123,8 @@ namespace OpenSim.Region.Environment.Scenes
2112 m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor); 2123 m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor);
2113 } 2124 }
2114 //if (part.UUID != m_rootPart.UUID) 2125 //if (part.UUID != m_rootPart.UUID)
2126
2127 HasGroupChanged = true;
2115 ScheduleGroupForFullUpdate(); 2128 ScheduleGroupForFullUpdate();
2116 2129
2117 //if (part.UUID == m_rootPart.UUID) 2130 //if (part.UUID == m_rootPart.UUID)
@@ -2552,6 +2565,8 @@ namespace OpenSim.Region.Environment.Scenes
2552 { 2565 {
2553 part.SetGroup(GroupID, client); 2566 part.SetGroup(GroupID, client);
2554 } 2567 }
2568
2569 HasGroupChanged = true;
2555 } 2570 }
2556 2571
2557 ScheduleGroupForFullUpdate(); 2572 ScheduleGroupForFullUpdate();
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
index 5ef9c79..fbf2794 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
@@ -454,11 +454,12 @@ namespace OpenSim.Region.Environment.Scenes
454 } 454 }
455 455
456 } 456 }
457
457 if (scriptcount <= 0) 458 if (scriptcount <= 0)
458 { 459 {
459 RemFlag(LLObject.ObjectFlags.Scripted); 460 RemFlag(LLObject.ObjectFlags.Scripted);
460 ScheduleFullUpdate();
461 } 461 }
462
462 ScheduleFullUpdate(); 463 ScheduleFullUpdate();
463 464
464 return type; 465 return type;
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 94d661c..af535cc 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -1660,7 +1660,6 @@ namespace OpenSim.Region.Environment.Scenes
1660 { 1660 {
1661 if (m_parentGroup != null) 1661 if (m_parentGroup != null)
1662 { 1662 {
1663 m_parentGroup.HasGroupChanged = true;
1664 m_parentGroup.QueueForUpdateCheck(); 1663 m_parentGroup.QueueForUpdateCheck();
1665 } 1664 }
1666 1665
@@ -1766,7 +1765,7 @@ namespace OpenSim.Region.Environment.Scenes
1766 #region Shape 1765 #region Shape
1767 1766
1768 /// <summary> 1767 /// <summary>
1769 /// 1768 /// Update the shape of this part.
1770 /// </summary> 1769 /// </summary>
1771 /// <param name="shapeBlock"></param> 1770 /// <param name="shapeBlock"></param>
1772 public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock) 1771 public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock)
@@ -1793,6 +1792,8 @@ namespace OpenSim.Region.Environment.Scenes
1793 { 1792 {
1794 PhysActor.Shape = m_shape; 1793 PhysActor.Shape = m_shape;
1795 } 1794 }
1795
1796 ParentGroup.HasGroupChanged = true;
1796 ScheduleFullUpdate(); 1797 ScheduleFullUpdate();
1797 } 1798 }
1798 1799
@@ -2012,6 +2013,7 @@ namespace OpenSim.Region.Environment.Scenes
2012 } 2013 }
2013 } 2014 }
2014 2015
2016 ParentGroup.HasGroupChanged = true;
2015 ScheduleFullUpdate(); 2017 ScheduleFullUpdate();
2016 } 2018 }
2017 2019
@@ -2066,13 +2068,15 @@ namespace OpenSim.Region.Environment.Scenes
2066 #region Texture 2068 #region Texture
2067 2069
2068 /// <summary> 2070 /// <summary>
2069 /// 2071 /// Update the texture entry for this part.
2070 /// </summary> 2072 /// </summary>
2071 /// <param name="textureEntry"></param> 2073 /// <param name="textureEntry"></param>
2072 public void UpdateTextureEntry(byte[] textureEntry) 2074 public void UpdateTextureEntry(byte[] textureEntry)
2073 { 2075 {
2074 m_shape.TextureEntry = textureEntry; 2076 m_shape.TextureEntry = textureEntry;
2075 TriggerScriptChangedEvent(Changed.TEXTURE); 2077 TriggerScriptChangedEvent(Changed.TEXTURE);
2078
2079 ParentGroup.HasGroupChanged = true;
2076 ScheduleFullUpdate(); 2080 ScheduleFullUpdate();
2077 } 2081 }
2078 2082
@@ -2301,7 +2305,7 @@ namespace OpenSim.Region.Environment.Scenes
2301 #region Resizing/Scale 2305 #region Resizing/Scale
2302 2306
2303 /// <summary> 2307 /// <summary>
2304 /// 2308 /// Resize this part.
2305 /// </summary> 2309 /// </summary>
2306 /// <param name="scale"></param> 2310 /// <param name="scale"></param>
2307 public void Resize(LLVector3 scale) 2311 public void Resize(LLVector3 scale)
@@ -2309,6 +2313,7 @@ namespace OpenSim.Region.Environment.Scenes
2309 StoreUndoState(); 2313 StoreUndoState();
2310 m_shape.Scale = scale; 2314 m_shape.Scale = scale;
2311 2315
2316 ParentGroup.HasGroupChanged = true;
2312 ScheduleFullUpdate(); 2317 ScheduleFullUpdate();
2313 } 2318 }
2314 2319
@@ -2576,12 +2581,24 @@ namespace OpenSim.Region.Environment.Scenes
2576 { 2581 {
2577 } 2582 }
2578 2583
2584 /// <summary>
2585 /// Set the text displayed for this part.
2586 /// </summary>
2587 /// <param name="text"></param>
2579 public void SetText(string text) 2588 public void SetText(string text)
2580 { 2589 {
2581 Text = text; 2590 Text = text;
2591
2592 ParentGroup.HasGroupChanged = true;
2582 ScheduleFullUpdate(); 2593 ScheduleFullUpdate();
2583 } 2594 }
2584 2595
2596 /// <summary>
2597 /// Set the text displayed for this part.
2598 /// </summary>
2599 /// <param name="text"></param>
2600 /// <param name="color"></param>
2601 /// <param name="alpha"></param>
2585 public void SetText(string text, Vector3 color, double alpha) 2602 public void SetText(string text, Vector3 color, double alpha)
2586 { 2603 {
2587 Color = Color.FromArgb(0xff - (int) (alpha*0xff), 2604 Color = Color.FromArgb(0xff - (int) (alpha*0xff),