diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 23bef74..a1296ba 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -3242,8 +3242,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3242 | if (ParentGroup.Scene.GetNumberOfClients() == 0) | 3242 | if (ParentGroup.Scene.GetNumberOfClients() == 0) |
3243 | return; | 3243 | return; |
3244 | 3244 | ||
3245 | ParentGroup.QueueForUpdateCheck(); | ||
3246 | |||
3247 | bool isfull = false; | 3245 | bool isfull = false; |
3248 | if (ParentGroup.IsAttachment) | 3246 | if (ParentGroup.IsAttachment) |
3249 | { | 3247 | { |
@@ -3254,6 +3252,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3254 | lock (UpdateFlagLock) | 3252 | lock (UpdateFlagLock) |
3255 | UpdateFlag |= update; | 3253 | UpdateFlag |= update; |
3256 | 3254 | ||
3255 | ParentGroup.QueueForUpdateCheck(); | ||
3256 | |||
3257 | ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this, isfull); | 3257 | ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this, isfull); |
3258 | } | 3258 | } |
3259 | 3259 | ||
@@ -5133,8 +5133,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5133 | m_shape.TextureEntry = newTex.GetBytes(); | 5133 | m_shape.TextureEntry = newTex.GetBytes(); |
5134 | TriggerScriptChangedEvent(changeFlags); | 5134 | TriggerScriptChangedEvent(changeFlags); |
5135 | ParentGroup.HasGroupChanged = true; | 5135 | ParentGroup.HasGroupChanged = true; |
5136 | ScheduleFullUpdate(); | 5136 | ScheduleUpdate(PrimUpdateFlags.Textures); |
5137 | |||
5138 | } | 5137 | } |
5139 | 5138 | ||
5140 | /// <summary> | 5139 | /// <summary> |
@@ -5163,7 +5162,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
5163 | m_shape.TextureEntry = newTex.GetBytes(); | 5162 | m_shape.TextureEntry = newTex.GetBytes(); |
5164 | TriggerScriptChangedEvent(changeFlags); | 5163 | TriggerScriptChangedEvent(changeFlags); |
5165 | ParentGroup.HasGroupChanged = true; | 5164 | ParentGroup.HasGroupChanged = true; |
5166 | ScheduleFullUpdate(); | 5165 | ScheduleUpdate(PrimUpdateFlags.Textures); |
5167 | } | 5166 | } |
5168 | 5167 | ||
5169 | internal void UpdatePhysicsSubscribedEvents() | 5168 | internal void UpdatePhysicsSubscribedEvents() |
@@ -5575,20 +5574,26 @@ namespace OpenSim.Region.Framework.Scenes | |||
5575 | // handle osVolumeDetect | 5574 | // handle osVolumeDetect |
5576 | public void ScriptSetVolumeDetect(bool makeVolumeDetect) | 5575 | public void ScriptSetVolumeDetect(bool makeVolumeDetect) |
5577 | { | 5576 | { |
5577 | if(ParentGroup.IsDeleted) | ||
5578 | return; | ||
5579 | |||
5578 | if(_parentID == 0) | 5580 | if(_parentID == 0) |
5579 | { | 5581 | { |
5580 | // if root prim do it via SOG | 5582 | // if root prim do it is like llVolumeDetect |
5581 | ParentGroup.ScriptSetVolumeDetect(makeVolumeDetect); | 5583 | ParentGroup.ScriptSetVolumeDetect(makeVolumeDetect); |
5582 | return; | 5584 | return; |
5583 | } | 5585 | } |
5584 | 5586 | ||
5585 | bool wasUsingPhysics = ((Flags & PrimFlags.Physics) != 0); | 5587 | if(ParentGroup.IsVolumeDetect) |
5586 | bool wasTemporary = ((Flags & PrimFlags.TemporaryOnRez) != 0); | 5588 | return; // entire linkset is phantom already |
5587 | bool wasPhantom = ((Flags & PrimFlags.Phantom) != 0); | 5589 | |
5590 | bool wasUsingPhysics = ParentGroup.UsesPhysics; | ||
5591 | bool wasTemporary = ParentGroup.IsTemporary; | ||
5592 | bool wasPhantom = ParentGroup.IsPhantom; | ||
5588 | 5593 | ||
5589 | if(PhysActor != null) | 5594 | if(PhysActor != null) |
5590 | PhysActor.Building = true; | 5595 | PhysActor.Building = true; |
5591 | UpdatePrimFlags(wasUsingPhysics,wasTemporary,wasPhantom,makeVolumeDetect,false); | 5596 | UpdatePrimFlags(wasUsingPhysics, wasTemporary, wasPhantom, makeVolumeDetect, false); |
5592 | } | 5597 | } |
5593 | 5598 | ||
5594 | protected static int m_animationSequenceNumber = (int)(Util.GetTimeStampTicks() & 0x5fffafL); | 5599 | protected static int m_animationSequenceNumber = (int)(Util.GetTimeStampTicks() & 0x5fffafL); |