diff options
author | Justin Clarke Casey | 2008-06-27 16:36:19 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-06-27 16:36:19 +0000 |
commit | 9bf67201c31d531e0480e67d8a96472d0a5b0c76 (patch) | |
tree | cb3123ab6062efd7f32762b5a8a88bf1f58a35a5 | |
parent | dr scofield's warning safari: hunting down those little buggers (diff) | |
download | opensim-SC-9bf67201c31d531e0480e67d8a96472d0a5b0c76.zip opensim-SC-9bf67201c31d531e0480e67d8a96472d0a5b0c76.tar.gz opensim-SC-9bf67201c31d531e0480e67d8a96472d0a5b0c76.tar.bz2 opensim-SC-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
6 files changed, 97 insertions, 13 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), |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 0514573..7df1173 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -1058,6 +1058,19 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1058 | } | 1058 | } |
1059 | } | 1059 | } |
1060 | 1060 | ||
1061 | /// <summary> | ||
1062 | /// Set flexi parameters of a part. | ||
1063 | /// | ||
1064 | /// FIXME: Much of this code should probably be within the part itself. | ||
1065 | /// </summary> | ||
1066 | /// <param name="part"></param> | ||
1067 | /// <param name="flexi"></param> | ||
1068 | /// <param name="softness"></param> | ||
1069 | /// <param name="gravity"></param> | ||
1070 | /// <param name="friction"></param> | ||
1071 | /// <param name="wind"></param> | ||
1072 | /// <param name="tension"></param> | ||
1073 | /// <param name="Force"></param> | ||
1061 | private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, | 1074 | private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, |
1062 | float wind, float tension, LSL_Types.Vector3 Force) | 1075 | float wind, float tension, LSL_Types.Vector3 Force) |
1063 | { | 1076 | { |
@@ -1097,14 +1110,26 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1097 | if (needs_fakedelete) | 1110 | if (needs_fakedelete) |
1098 | { | 1111 | { |
1099 | if (part.ParentGroup != null) | 1112 | if (part.ParentGroup != null) |
1100 | { | 1113 | { |
1101 | part.ParentGroup.FakeDeleteGroup(); | 1114 | part.ParentGroup.FakeDeleteGroup(); |
1102 | } | 1115 | } |
1103 | } | 1116 | } |
1104 | 1117 | ||
1118 | part.ParentGroup.HasGroupChanged = true; | ||
1105 | part.ScheduleFullUpdate(); | 1119 | part.ScheduleFullUpdate(); |
1106 | } | 1120 | } |
1107 | 1121 | ||
1122 | /// <summary> | ||
1123 | /// Set a light point on a part | ||
1124 | /// | ||
1125 | /// FIXME: Much of this code should probably be in SceneObjectGroup | ||
1126 | /// </summary> | ||
1127 | /// <param name="part"></param> | ||
1128 | /// <param name="light"></param> | ||
1129 | /// <param name="color"></param> | ||
1130 | /// <param name="intensity"></param> | ||
1131 | /// <param name="radius"></param> | ||
1132 | /// <param name="falloff"></param> | ||
1108 | private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) | 1133 | private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) |
1109 | { | 1134 | { |
1110 | if (part == null) | 1135 | if (part == null) |
@@ -1125,6 +1150,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1125 | part.Shape.LightEntry = false; | 1150 | part.Shape.LightEntry = false; |
1126 | } | 1151 | } |
1127 | 1152 | ||
1153 | part.ParentGroup.HasGroupChanged = true; | ||
1128 | part.ScheduleFullUpdate(); | 1154 | part.ScheduleFullUpdate(); |
1129 | } | 1155 | } |
1130 | 1156 | ||
@@ -1583,7 +1609,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1583 | m_host.SoundGain = volume; | 1609 | m_host.SoundGain = volume; |
1584 | m_host.SoundFlags = 1; // looping | 1610 | m_host.SoundFlags = 1; // looping |
1585 | m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? | 1611 | m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? |
1586 | 1612 | ||
1587 | m_host.ScheduleFullUpdate(); | 1613 | m_host.ScheduleFullUpdate(); |
1588 | m_host.SendFullUpdateToAllClients(); | 1614 | m_host.SendFullUpdateToAllClients(); |
1589 | } | 1615 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 477c6a8..fea3fc2 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -911,6 +911,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
911 | } | 911 | } |
912 | } | 912 | } |
913 | 913 | ||
914 | /// <summary> | ||
915 | /// Set flexi parameters of a part. | ||
916 | /// | ||
917 | /// FIXME: Much of this code should probably be within the part itself. | ||
918 | /// </summary> | ||
919 | /// <param name="part"></param> | ||
920 | /// <param name="flexi"></param> | ||
921 | /// <param name="softness"></param> | ||
922 | /// <param name="gravity"></param> | ||
923 | /// <param name="friction"></param> | ||
924 | /// <param name="wind"></param> | ||
925 | /// <param name="tension"></param> | ||
926 | /// <param name="Force"></param> | ||
914 | private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, | 927 | private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, |
915 | float wind, float tension, LSL_Types.Vector3 Force) | 928 | float wind, float tension, LSL_Types.Vector3 Force) |
916 | { | 929 | { |
@@ -955,9 +968,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
955 | } | 968 | } |
956 | } | 969 | } |
957 | 970 | ||
971 | part.ParentGroup.HasGroupChanged = true; | ||
958 | part.ScheduleFullUpdate(); | 972 | part.ScheduleFullUpdate(); |
959 | } | 973 | } |
960 | 974 | ||
975 | /// <summary> | ||
976 | /// Set a light point on a part | ||
977 | /// | ||
978 | /// FIXME: Much of this code should probably be in SceneObjectGroup | ||
979 | /// </summary> | ||
980 | /// <param name="part"></param> | ||
981 | /// <param name="light"></param> | ||
982 | /// <param name="color"></param> | ||
983 | /// <param name="intensity"></param> | ||
984 | /// <param name="radius"></param> | ||
985 | /// <param name="falloff"></param> | ||
961 | private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) | 986 | private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) |
962 | { | 987 | { |
963 | if (part == null) | 988 | if (part == null) |
@@ -978,11 +1003,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
978 | part.Shape.LightEntry = false; | 1003 | part.Shape.LightEntry = false; |
979 | } | 1004 | } |
980 | 1005 | ||
1006 | part.ParentGroup.HasGroupChanged = true; | ||
981 | part.ScheduleFullUpdate(); | 1007 | part.ScheduleFullUpdate(); |
982 | } | 1008 | } |
983 | 1009 | ||
984 | |||
985 | |||
986 | public LSL_Types.Vector3 llGetColor(int face) | 1010 | public LSL_Types.Vector3 llGetColor(int face) |
987 | { | 1011 | { |
988 | m_host.AddScriptLPS(1); | 1012 | m_host.AddScriptLPS(1); |