diff options
author | Teravus Ovares | 2008-05-09 07:50:00 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-09 07:50:00 +0000 |
commit | b7baa3cd2aa60324f52118e565465475c669ec80 (patch) | |
tree | 99ce1c16edb1e0f8895e255e83c563ea489a5882 /OpenSim/Region/Environment | |
parent | Thank you, Melanie for a patch that helps conversion (diff) | |
download | opensim-SC_OLD-b7baa3cd2aa60324f52118e565465475c669ec80.zip opensim-SC_OLD-b7baa3cd2aa60324f52118e565465475c669ec80.tar.gz opensim-SC_OLD-b7baa3cd2aa60324f52118e565465475c669ec80.tar.bz2 opensim-SC_OLD-b7baa3cd2aa60324f52118e565465475c669ec80.tar.xz |
* Valid Sculpted prim now collide properly.
* The first time you set the sculpted texture of a prim you might have to futz with it to get it to generate a sculpted physics proxy
* Note that there are already issues in Trunk, (such as the prim scaling issue and prim jumping issue. Essentially editing is difficult right now)
* This just adds to the experimental nature of trunk. :D
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 | ||