diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 53 |
1 files changed, 17 insertions, 36 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 199526e..27ef4c9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -1014,9 +1014,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1014 | { | 1014 | { |
1015 | actor.Size = m_shape.Scale; | 1015 | actor.Size = m_shape.Scale; |
1016 | 1016 | ||
1017 | if (Shape.SculptEntry) | 1017 | // if (Shape.SculptEntry) |
1018 | CheckSculptAndLoad(); | 1018 | // CheckSculptAndLoad(); |
1019 | else | 1019 | // else |
1020 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | 1020 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); |
1021 | } | 1021 | } |
1022 | } | 1022 | } |
@@ -1620,12 +1620,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
1620 | 1620 | ||
1621 | if (userExposed) | 1621 | if (userExposed) |
1622 | { | 1622 | { |
1623 | /* | ||
1623 | if (dupe.m_shape.SculptEntry && dupe.m_shape.SculptTexture != UUID.Zero) | 1624 | if (dupe.m_shape.SculptEntry && dupe.m_shape.SculptTexture != UUID.Zero) |
1624 | { | 1625 | { |
1625 | ParentGroup.Scene.AssetService.Get( | 1626 | ParentGroup.Scene.AssetService.Get( |
1626 | dupe.m_shape.SculptTexture.ToString(), dupe, dupe.AssetReceived); | 1627 | dupe.m_shape.SculptTexture.ToString(), dupe, dupe.AssetReceived); |
1627 | } | 1628 | } |
1628 | 1629 | */ | |
1629 | bool UsePhysics = ((dupe.Flags & PrimFlags.Physics) != 0); | 1630 | bool UsePhysics = ((dupe.Flags & PrimFlags.Physics) != 0); |
1630 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); | 1631 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); |
1631 | } | 1632 | } |
@@ -1643,6 +1644,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1643 | /// <param name="id">ID of asset received</param> | 1644 | /// <param name="id">ID of asset received</param> |
1644 | /// <param name="sender">Register</param> | 1645 | /// <param name="sender">Register</param> |
1645 | /// <param name="asset"></param> | 1646 | /// <param name="asset"></param> |
1647 | /* | ||
1646 | protected void AssetReceived(string id, Object sender, AssetBase asset) | 1648 | protected void AssetReceived(string id, Object sender, AssetBase asset) |
1647 | { | 1649 | { |
1648 | if (asset != null) | 1650 | if (asset != null) |
@@ -1652,7 +1654,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1652 | "[SCENE OBJECT PART]: Part {0} {1} requested mesh/sculpt data for asset id {2} from asset service but received no data", | 1654 | "[SCENE OBJECT PART]: Part {0} {1} requested mesh/sculpt data for asset id {2} from asset service but received no data", |
1653 | Name, UUID, id); | 1655 | Name, UUID, id); |
1654 | } | 1656 | } |
1655 | 1657 | */ | |
1656 | /// <summary> | 1658 | /// <summary> |
1657 | /// Do a physics property update for a NINJA joint. | 1659 | /// Do a physics property update for a NINJA joint. |
1658 | /// </summary> | 1660 | /// </summary> |
@@ -1833,9 +1835,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1833 | 1835 | ||
1834 | // If this part is a sculpt then delay the physics update until we've asynchronously loaded the | 1836 | // If this part is a sculpt then delay the physics update until we've asynchronously loaded the |
1835 | // mesh data. | 1837 | // mesh data. |
1836 | if (Shape.SculptEntry) | 1838 | // if (Shape.SculptEntry) |
1837 | CheckSculptAndLoad(); | 1839 | // CheckSculptAndLoad(); |
1838 | else | 1840 | // else |
1839 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa); | 1841 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(pa); |
1840 | } | 1842 | } |
1841 | } | 1843 | } |
@@ -2511,6 +2513,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2511 | /// Set sculpt and mesh data, and tell the physics engine to process the change. | 2513 | /// Set sculpt and mesh data, and tell the physics engine to process the change. |
2512 | /// </summary> | 2514 | /// </summary> |
2513 | /// <param name="texture">The mesh itself.</param> | 2515 | /// <param name="texture">The mesh itself.</param> |
2516 | /* | ||
2514 | public void SculptTextureCallback(AssetBase texture) | 2517 | public void SculptTextureCallback(AssetBase texture) |
2515 | { | 2518 | { |
2516 | if (m_shape.SculptEntry) | 2519 | if (m_shape.SculptEntry) |
@@ -2538,7 +2541,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2538 | } | 2541 | } |
2539 | } | 2542 | } |
2540 | } | 2543 | } |
2541 | 2544 | */ | |
2542 | /// <summary> | 2545 | /// <summary> |
2543 | /// Send a full update to the client for the given part | 2546 | /// Send a full update to the client for the given part |
2544 | /// </summary> | 2547 | /// </summary> |
@@ -3783,7 +3786,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3783 | public void UpdateExtraParam(ushort type, bool inUse, byte[] data) | 3786 | public void UpdateExtraParam(ushort type, bool inUse, byte[] data) |
3784 | { | 3787 | { |
3785 | m_shape.ReadInUpdateExtraParam(type, inUse, data); | 3788 | m_shape.ReadInUpdateExtraParam(type, inUse, data); |
3786 | 3789 | /* | |
3787 | if (type == 0x30) | 3790 | if (type == 0x30) |
3788 | { | 3791 | { |
3789 | if (m_shape.SculptEntry && m_shape.SculptTexture != UUID.Zero) | 3792 | if (m_shape.SculptEntry && m_shape.SculptTexture != UUID.Zero) |
@@ -3791,7 +3794,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3791 | ParentGroup.Scene.AssetService.Get(m_shape.SculptTexture.ToString(), this, AssetReceived); | 3794 | ParentGroup.Scene.AssetService.Get(m_shape.SculptTexture.ToString(), this, AssetReceived); |
3792 | } | 3795 | } |
3793 | } | 3796 | } |
3794 | 3797 | */ | |
3795 | if (ParentGroup != null) | 3798 | if (ParentGroup != null) |
3796 | { | 3799 | { |
3797 | ParentGroup.HasGroupChanged = true; | 3800 | ParentGroup.HasGroupChanged = true; |
@@ -4025,14 +4028,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
4025 | if (!wasUsingPhysics) | 4028 | if (!wasUsingPhysics) |
4026 | { | 4029 | { |
4027 | DoPhysicsPropertyUpdate(UsePhysics, false); | 4030 | DoPhysicsPropertyUpdate(UsePhysics, false); |
4028 | |||
4029 | if (!ParentGroup.IsDeleted) | ||
4030 | { | ||
4031 | if (LocalId == ParentGroup.RootPart.LocalId) | ||
4032 | { | ||
4033 | ParentGroup.CheckSculptAndLoad(); | ||
4034 | } | ||
4035 | } | ||
4036 | } | 4031 | } |
4037 | } | 4032 | } |
4038 | else | 4033 | else |
@@ -4072,14 +4067,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
4072 | pa.SetMaterial(Material); | 4067 | pa.SetMaterial(Material); |
4073 | DoPhysicsPropertyUpdate(UsePhysics, true); | 4068 | DoPhysicsPropertyUpdate(UsePhysics, true); |
4074 | 4069 | ||
4075 | if (!ParentGroup.IsDeleted) | ||
4076 | { | ||
4077 | if (LocalId == ParentGroup.RootPart.LocalId) | ||
4078 | { | ||
4079 | ParentGroup.CheckSculptAndLoad(); | ||
4080 | } | ||
4081 | } | ||
4082 | |||
4083 | if ( | 4070 | if ( |
4084 | ((AggregateScriptEvents & scriptEvents.collision) != 0) || | 4071 | ((AggregateScriptEvents & scriptEvents.collision) != 0) || |
4085 | ((AggregateScriptEvents & scriptEvents.collision_end) != 0) || | 4072 | ((AggregateScriptEvents & scriptEvents.collision_end) != 0) || |
@@ -4104,14 +4091,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
4104 | else // it already has a physical representation | 4091 | else // it already has a physical representation |
4105 | { | 4092 | { |
4106 | DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. If it's phantom this will remove the prim | 4093 | DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. If it's phantom this will remove the prim |
4107 | |||
4108 | if (!ParentGroup.IsDeleted) | ||
4109 | { | ||
4110 | if (LocalId == ParentGroup.RootPart.LocalId) | ||
4111 | { | ||
4112 | ParentGroup.CheckSculptAndLoad(); | ||
4113 | } | ||
4114 | } | ||
4115 | } | 4094 | } |
4116 | } | 4095 | } |
4117 | 4096 | ||
@@ -4341,6 +4320,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4341 | /// <remarks> | 4320 | /// <remarks> |
4342 | /// When the physics engine has finished with it, the sculpt data is discarded to save memory. | 4321 | /// When the physics engine has finished with it, the sculpt data is discarded to save memory. |
4343 | /// </remarks> | 4322 | /// </remarks> |
4323 | /* | ||
4344 | public void CheckSculptAndLoad() | 4324 | public void CheckSculptAndLoad() |
4345 | { | 4325 | { |
4346 | // m_log.DebugFormat("Processing CheckSculptAndLoad for {0} {1}", Name, LocalId); | 4326 | // m_log.DebugFormat("Processing CheckSculptAndLoad for {0} {1}", Name, LocalId); |
@@ -4366,7 +4346,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4366 | } | 4346 | } |
4367 | } | 4347 | } |
4368 | } | 4348 | } |
4369 | 4349 | */ | |
4370 | /// <summary> | 4350 | /// <summary> |
4371 | /// Update the texture entry for this part. | 4351 | /// Update the texture entry for this part. |
4372 | /// </summary> | 4352 | /// </summary> |
@@ -4604,6 +4584,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4604 | } | 4584 | } |
4605 | 4585 | ||
4606 | Quaternion rot = Quaternion.Slerp(RotationOffset,APIDTarget,1.0f/(float)m_APIDIterations); | 4586 | Quaternion rot = Quaternion.Slerp(RotationOffset,APIDTarget,1.0f/(float)m_APIDIterations); |
4587 | rot.Normalize(); | ||
4607 | UpdateRotation(rot); | 4588 | UpdateRotation(rot); |
4608 | 4589 | ||
4609 | m_APIDIterations--; | 4590 | m_APIDIterations--; |