diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 4bb1f84..7c0df39 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -2213,6 +2213,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
2213 | /// <param name="visualParam"></param> | 2213 | /// <param name="visualParam"></param> |
2214 | public void SetAppearance(byte[] texture, List<byte> visualParam) | 2214 | public void SetAppearance(byte[] texture, List<byte> visualParam) |
2215 | { | 2215 | { |
2216 | if (m_physicsActor != null) | ||
2217 | { | ||
2218 | // This may seem like it's redundant, remove the avatar from the physics scene | ||
2219 | // just to add it back again, but it saves us from having to update | ||
2220 | // 3 variables 10 times a second. | ||
2221 | m_scene.PhysicsScene.RemoveAvatar(m_physicsActor); | ||
2222 | AddToPhysicalScene(); | ||
2223 | } | ||
2216 | m_appearance.SetAppearance(texture, visualParam); | 2224 | m_appearance.SetAppearance(texture, visualParam); |
2217 | SetHeight(m_appearance.AvatarHeight); | 2225 | SetHeight(m_appearance.AvatarHeight); |
2218 | m_scene.CommsManager.AvatarService.UpdateUserAppearance(m_controllingClient.AgentId, m_appearance); | 2226 | m_scene.CommsManager.AvatarService.UpdateUserAppearance(m_controllingClient.AgentId, m_appearance); |