diff options
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index b16125b..778cf9f 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3482,7 +3482,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3482 | { | 3482 | { |
3483 | // This should only return a value if the avatar is in the same region | 3483 | // This should only return a value if the avatar is in the same region |
3484 | m_host.AddScriptLPS(1); | 3484 | m_host.AddScriptLPS(1); |
3485 | NotImplemented("llGetAnimation"); | 3485 | UUID avatar = (UUID)id; |
3486 | ScenePresence presence = World.GetScenePresence(avatar); | ||
3487 | if (m_host.RegionHandle == presence.RegionHandle) | ||
3488 | { | ||
3489 | Dictionary<UUID, string> animationNames = AnimationSet.Animations.AnimsNames; | ||
3490 | |||
3491 | if (presence != null) | ||
3492 | { | ||
3493 | AnimationSet currentAnims = presence.Animations; | ||
3494 | string currentAnimation = String.Empty; | ||
3495 | if (animationNames.TryGetValue(currentAnims.DefaultAnimation.AnimID, out currentAnimation)) | ||
3496 | return currentAnimation; | ||
3497 | } | ||
3498 | } | ||
3486 | return String.Empty; | 3499 | return String.Empty; |
3487 | } | 3500 | } |
3488 | 3501 | ||