diff options
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 30 |
2 files changed, 39 insertions, 3 deletions
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 | |||
2522 | { | 2522 | { |
2523 | lock (m_parts) | 2523 | lock (m_parts) |
2524 | { | 2524 | { |
2525 | foreach (SceneObjectPart part in m_parts.Values) | 2525 | if (RootPart != null) |
2526 | { | 2526 | { |
2527 | if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero) | 2527 | if ((RootPart.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Phantom) == 0) |
2528 | { | 2528 | { |
2529 | m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true); | 2529 | foreach (SceneObjectPart part in m_parts.Values) |
2530 | { | ||
2531 | if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero) | ||
2532 | { | ||
2533 | m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true); | ||
2534 | } | ||
2535 | } | ||
2530 | } | 2536 | } |
2531 | } | 2537 | } |
2532 | } | 2538 | } |
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 | |||
1786 | if (!wasUsingPhysics) | 1786 | if (!wasUsingPhysics) |
1787 | { | 1787 | { |
1788 | DoPhysicsPropertyUpdate(usePhysics, false); | 1788 | DoPhysicsPropertyUpdate(usePhysics, false); |
1789 | if (m_parentGroup != null) | ||
1790 | { | ||
1791 | if (m_parentGroup.RootPart != null) | ||
1792 | { | ||
1793 | if (LocalId == m_parentGroup.RootPart.LocalId) | ||
1794 | { | ||
1795 | m_parentGroup.CheckSculptAndLoad(); | ||
1796 | } | ||
1797 | } | ||
1798 | } | ||
1789 | } | 1799 | } |
1790 | } | 1800 | } |
1791 | else | 1801 | else |
@@ -1826,12 +1836,32 @@ namespace OpenSim.Region.Environment.Scenes | |||
1826 | { | 1836 | { |
1827 | PhysActor.LocalID = LocalId; | 1837 | PhysActor.LocalID = LocalId; |
1828 | DoPhysicsPropertyUpdate(usePhysics, true); | 1838 | DoPhysicsPropertyUpdate(usePhysics, true); |
1839 | if (m_parentGroup != null) | ||
1840 | { | ||
1841 | if (m_parentGroup.RootPart != null) | ||
1842 | { | ||
1843 | if (LocalId == m_parentGroup.RootPart.LocalId) | ||
1844 | { | ||
1845 | m_parentGroup.CheckSculptAndLoad(); | ||
1846 | } | ||
1847 | } | ||
1848 | } | ||
1829 | } | 1849 | } |
1830 | } | 1850 | } |
1831 | else | 1851 | else |
1832 | { | 1852 | { |
1833 | PhysActor.IsPhysical = usePhysics; | 1853 | PhysActor.IsPhysical = usePhysics; |
1834 | DoPhysicsPropertyUpdate(usePhysics, false); | 1854 | DoPhysicsPropertyUpdate(usePhysics, false); |
1855 | if (m_parentGroup != null) | ||
1856 | { | ||
1857 | if (m_parentGroup.RootPart != null) | ||
1858 | { | ||
1859 | if (LocalId == m_parentGroup.RootPart.LocalId) | ||
1860 | { | ||
1861 | m_parentGroup.CheckSculptAndLoad(); | ||
1862 | } | ||
1863 | } | ||
1864 | } | ||
1835 | } | 1865 | } |
1836 | } | 1866 | } |
1837 | 1867 | ||