diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 35 |
1 files changed, 13 insertions, 22 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 8d04c9f..affd4de 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -1066,7 +1066,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1066 | m_angularVelocity = value; | 1066 | m_angularVelocity = value; |
1067 | 1067 | ||
1068 | PhysicsActor actor = PhysActor; | 1068 | PhysicsActor actor = PhysActor; |
1069 | if ((actor != null) && actor.IsPhysical && ParentGroup.RootPart == this && VehicleType == (int)Vehicle.TYPE_NONE) | 1069 | if ((actor != null) && actor.IsPhysical && ParentGroup.RootPart == this) |
1070 | { | 1070 | { |
1071 | actor.RotationalVelocity = m_angularVelocity; | 1071 | actor.RotationalVelocity = m_angularVelocity; |
1072 | } | 1072 | } |
@@ -1092,6 +1092,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
1092 | m_acceleration = Vector3.Zero; | 1092 | m_acceleration = Vector3.Zero; |
1093 | else | 1093 | else |
1094 | m_acceleration = value; | 1094 | m_acceleration = value; |
1095 | |||
1096 | PhysicsActor actor = PhysActor; | ||
1097 | if ((actor != null) && actor.IsPhysical && ParentGroup.RootPart == this) | ||
1098 | { | ||
1099 | actor.Acceleration = m_acceleration; | ||
1100 | } | ||
1095 | } | 1101 | } |
1096 | } | 1102 | } |
1097 | 1103 | ||
@@ -2016,7 +2022,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2016 | // SetVelocity for LSL llSetVelocity.. may need revision if having other uses in future | 2022 | // SetVelocity for LSL llSetVelocity.. may need revision if having other uses in future |
2017 | public void SetVelocity(Vector3 pVel, bool localGlobalTF) | 2023 | public void SetVelocity(Vector3 pVel, bool localGlobalTF) |
2018 | { | 2024 | { |
2019 | if (ParentGroup == null || ParentGroup.IsDeleted) | 2025 | if (ParentGroup == null || ParentGroup.IsDeleted || ParentGroup.inTransit) |
2020 | return; | 2026 | return; |
2021 | 2027 | ||
2022 | if (ParentGroup.IsAttachment) | 2028 | if (ParentGroup.IsAttachment) |
@@ -2043,7 +2049,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2043 | // SetAngularVelocity for LSL llSetAngularVelocity.. may need revision if having other uses in future | 2049 | // SetAngularVelocity for LSL llSetAngularVelocity.. may need revision if having other uses in future |
2044 | public void SetAngularVelocity(Vector3 pAngVel, bool localGlobalTF) | 2050 | public void SetAngularVelocity(Vector3 pAngVel, bool localGlobalTF) |
2045 | { | 2051 | { |
2046 | if (ParentGroup == null || ParentGroup.IsDeleted) | 2052 | if (ParentGroup == null || ParentGroup.IsDeleted || ParentGroup.inTransit) |
2047 | return; | 2053 | return; |
2048 | 2054 | ||
2049 | if (ParentGroup.IsAttachment) | 2055 | if (ParentGroup.IsAttachment) |
@@ -2077,6 +2083,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2077 | /// <param name="localGlobalTF">true for the local frame, false for the global frame</param> | 2083 | /// <param name="localGlobalTF">true for the local frame, false for the global frame</param> |
2078 | public void ApplyAngularImpulse(Vector3 impulsei, bool localGlobalTF) | 2084 | public void ApplyAngularImpulse(Vector3 impulsei, bool localGlobalTF) |
2079 | { | 2085 | { |
2086 | if (ParentGroup == null || ParentGroup.IsDeleted || ParentGroup.inTransit) | ||
2087 | return; | ||
2088 | |||
2080 | Vector3 impulse = impulsei; | 2089 | Vector3 impulse = impulsei; |
2081 | 2090 | ||
2082 | if (localGlobalTF) | 2091 | if (localGlobalTF) |
@@ -3376,25 +3385,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3376 | /// <param name="remoteClient"></param> | 3385 | /// <param name="remoteClient"></param> |
3377 | public void SendFullUpdateToClient(IClientAPI remoteClient) | 3386 | public void SendFullUpdateToClient(IClientAPI remoteClient) |
3378 | { | 3387 | { |
3379 | SendFullUpdateToClient(remoteClient, OffsetPosition); | 3388 | if (ParentGroup == null || ParentGroup.IsDeleted) |
3380 | } | ||
3381 | |||
3382 | /// <summary> | ||
3383 | /// Sends a full update to the client | ||
3384 | /// </summary> | ||
3385 | /// <param name="remoteClient"></param> | ||
3386 | /// <param name="lPos"></param> | ||
3387 | public void SendFullUpdateToClient(IClientAPI remoteClient, Vector3 lPos) | ||
3388 | { | ||
3389 | if (ParentGroup == null) | ||
3390 | return; | ||
3391 | |||
3392 | // Suppress full updates during attachment editing | ||
3393 | // sl Does send them | ||
3394 | // if (ParentGroup.IsSelected && ParentGroup.IsAttachment) | ||
3395 | // return; | ||
3396 | |||
3397 | if (ParentGroup.IsDeleted) | ||
3398 | return; | 3389 | return; |
3399 | 3390 | ||
3400 | if (ParentGroup.IsAttachment | 3391 | if (ParentGroup.IsAttachment |