diff options
Diffstat (limited to 'OpenSim/Region')
3 files changed, 31 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index b4cf70a..b22643f 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -39,6 +39,7 @@ using OpenSim.Framework.Communications.Cache; | |||
39 | using OpenSim.Region.Environment.Types; | 39 | using OpenSim.Region.Environment.Types; |
40 | using OpenSim.Region.Physics.Manager; | 40 | using OpenSim.Region.Physics.Manager; |
41 | 41 | ||
42 | |||
42 | namespace OpenSim.Region.Environment.Scenes | 43 | namespace OpenSim.Region.Environment.Scenes |
43 | { | 44 | { |
44 | enum ScriptControlled : int | 45 | enum ScriptControlled : int |
@@ -1346,6 +1347,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
1346 | 1347 | ||
1347 | RemoveAnimation(animID); | 1348 | RemoveAnimation(animID); |
1348 | } | 1349 | } |
1350 | |||
1351 | public LLUUID[] GetAnimationArray() | ||
1352 | { | ||
1353 | LLUUID[] animIDs; | ||
1354 | int[] sequenceNums; | ||
1355 | m_animations.GetArrays( out animIDs, out sequenceNums ); | ||
1356 | return animIDs; | ||
1357 | } | ||
1349 | 1358 | ||
1350 | public void HandleStartAnim(IClientAPI remoteClient, LLUUID animID) | 1359 | public void HandleStartAnim(IClientAPI remoteClient, LLUUID animID) |
1351 | { | 1360 | { |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index f6cc7f0..32e9085 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -5698,11 +5698,19 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5698 | return (double)Math.Log(val); | 5698 | return (double)Math.Log(val); |
5699 | } | 5699 | } |
5700 | 5700 | ||
5701 | public LSL_Types.list llGetAnimationList(string id) | 5701 | public LSL_Types.list llGetAnimationList( string id ) |
5702 | { | 5702 | { |
5703 | m_host.AddScriptLPS(1); | 5703 | m_host.AddScriptLPS(1); |
5704 | NotImplemented("llGetAnimationList"); | 5704 | |
5705 | return new LSL_Types.list(); | 5705 | LSL_Types.list l = new LSL_Types.list(); |
5706 | ScenePresence av = World.GetScenePresence(id); | ||
5707 | if( av == null ) | ||
5708 | return l; | ||
5709 | LLUUID[] anims; | ||
5710 | anims = av.GetAnimationArray(); | ||
5711 | foreach( LLUUID foo in anims ) | ||
5712 | l.Add( foo.ToString() ); | ||
5713 | return l; | ||
5706 | } | 5714 | } |
5707 | 5715 | ||
5708 | public void llSetParcelMusicURL(string url) | 5716 | public void llSetParcelMusicURL(string url) |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 09377a1..15793e4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -5502,11 +5502,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5502 | return (double)Math.Log(val); | 5502 | return (double)Math.Log(val); |
5503 | } | 5503 | } |
5504 | 5504 | ||
5505 | public LSL_Types.list llGetAnimationList(string id) | 5505 | public LSL_Types.list llGetAnimationList( string id ) |
5506 | { | 5506 | { |
5507 | m_host.AddScriptLPS(1); | 5507 | m_host.AddScriptLPS(1); |
5508 | NotImplemented("llGetAnimationList"); | 5508 | |
5509 | return new LSL_Types.list(); | 5509 | LSL_Types.list l = new LSL_Types.list(); |
5510 | ScenePresence av = World.GetScenePresence(id); | ||
5511 | if( av == null ) | ||
5512 | return l; | ||
5513 | LLUUID[] anims; | ||
5514 | anims = av.GetAnimationArray(); | ||
5515 | foreach( LLUUID foo in anims ) | ||
5516 | l.Add( foo.ToString() ); | ||
5517 | return l; | ||
5510 | } | 5518 | } |
5511 | 5519 | ||
5512 | public void llSetParcelMusicURL(string url) | 5520 | public void llSetParcelMusicURL(string url) |