From 29092d39990d6641a1009c23b18b9374e0b31316 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sun, 25 May 2008 04:15:32 +0000 Subject: * phantom sculpties don't request the sculpt texture anymore. --- .../Region/Environment/Scenes/SceneObjectGroup.cs | 12 ++++++--- .../Region/Environment/Scenes/SceneObjectPart.cs | 30 ++++++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 4484749..4de10c7 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -2522,11 +2522,17 @@ namespace OpenSim.Region.Environment.Scenes { lock (m_parts) { - foreach (SceneObjectPart part in m_parts.Values) + if (RootPart != null) { - if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero) + if ((RootPart.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Phantom) == 0) { - m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true); + foreach (SceneObjectPart part in m_parts.Values) + { + if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero) + { + m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true); + } + } } } } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index d95143e..b724bda 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -1786,6 +1786,16 @@ namespace OpenSim.Region.Environment.Scenes if (!wasUsingPhysics) { DoPhysicsPropertyUpdate(usePhysics, false); + if (m_parentGroup != null) + { + if (m_parentGroup.RootPart != null) + { + if (LocalId == m_parentGroup.RootPart.LocalId) + { + m_parentGroup.CheckSculptAndLoad(); + } + } + } } } else @@ -1826,12 +1836,32 @@ namespace OpenSim.Region.Environment.Scenes { PhysActor.LocalID = LocalId; DoPhysicsPropertyUpdate(usePhysics, true); + if (m_parentGroup != null) + { + if (m_parentGroup.RootPart != null) + { + if (LocalId == m_parentGroup.RootPart.LocalId) + { + m_parentGroup.CheckSculptAndLoad(); + } + } + } } } else { PhysActor.IsPhysical = usePhysics; DoPhysicsPropertyUpdate(usePhysics, false); + if (m_parentGroup != null) + { + if (m_parentGroup.RootPart != null) + { + if (LocalId == m_parentGroup.RootPart.LocalId) + { + m_parentGroup.CheckSculptAndLoad(); + } + } + } } } -- cgit v1.1