diff options
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 8 |
3 files changed, 22 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 5ce3c7b..1f66744 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -1134,7 +1134,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1134 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); | 1134 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); |
1135 | rootPart.ObjectFlags &= ~(uint)LLObject.ObjectFlags.Scripted; | 1135 | rootPart.ObjectFlags &= ~(uint)LLObject.ObjectFlags.Scripted; |
1136 | rootPart.TrimPermissions(); | 1136 | rootPart.TrimPermissions(); |
1137 | 1137 | group.CheckSculptAndLoad(); | |
1138 | group.ApplyPhysics(m_physicalPrim); | 1138 | group.ApplyPhysics(m_physicalPrim); |
1139 | //rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); | 1139 | //rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
1140 | } | 1140 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 033a419..aae6af8 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -2546,5 +2546,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
2546 | } | 2546 | } |
2547 | return retmass; | 2547 | return retmass; |
2548 | } | 2548 | } |
2549 | public void CheckSculptAndLoad() | ||
2550 | { | ||
2551 | lock (m_parts) | ||
2552 | { | ||
2553 | foreach (SceneObjectPart part in m_parts.Values) | ||
2554 | { | ||
2555 | if (part.Shape.SculptEntry && part.Shape.SculptTexture != LLUUID.Zero) | ||
2556 | { | ||
2557 | m_scene.AssetCache.GetAsset(part.Shape.SculptTexture, part.SculptTextureCallback, true); | ||
2558 | } | ||
2559 | } | ||
2560 | } | ||
2561 | } | ||
2549 | } | 2562 | } |
2550 | } | 2563 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 0075a22..9502627 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -1568,6 +1568,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1568 | byte[] extraP = new byte[Shape.ExtraParams.Length]; | 1568 | byte[] extraP = new byte[Shape.ExtraParams.Length]; |
1569 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); | 1569 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); |
1570 | dupe.Shape.ExtraParams = extraP; | 1570 | dupe.Shape.ExtraParams = extraP; |
1571 | if (dupe.m_shape.SculptEntry && dupe.m_shape.SculptTexture != LLUUID.Zero) | ||
1572 | { | ||
1573 | m_parentGroup.Scene.AssetCache.GetAsset(dupe.m_shape.SculptTexture, dupe.SculptTextureCallback, true); | ||
1574 | } | ||
1571 | bool UsePhysics = ((dupe.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); | 1575 | bool UsePhysics = ((dupe.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); |
1572 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); | 1576 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); |
1573 | 1577 | ||
@@ -1939,6 +1943,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1939 | if (texture != null) | 1943 | if (texture != null) |
1940 | { | 1944 | { |
1941 | m_shape.SculptData = texture.Data; | 1945 | m_shape.SculptData = texture.Data; |
1946 | if (PhysActor != null) | ||
1947 | { | ||
1948 | PhysActor.Shape = m_shape; | ||
1949 | } | ||
1942 | } | 1950 | } |
1943 | } | 1951 | } |
1944 | 1952 | ||