Implementation of new LSL function: list llGetAttachedList(key avatar); It also returns HUDs' keys.

Signed-off-by: Mandarinka Tasty <mandarinka.tasty@gmail.com>
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
melanie
Mandarinka Tasty 2016-11-04 06:24:56 +01:00 committed by UbitUmarov
parent d2e380e81e
commit b0f87fba1c
3 changed files with 32 additions and 0 deletions

View File

@ -7022,6 +7022,32 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return m_host.ParentGroup.AttachmentPoint;
}
public LSL_List llGetAttachedList(string id)
{
m_host.AddScriptLPS(1);
LSL_List AttachmentsList = new LSL_List();
ScenePresence av = World.GetScenePresence((UUID)id);
string NOT_FOUND = "NOT_FOUND";
string NOT_ON_REGION = "NOT ON REGION";
if (av == null)
return new LSL_List(NOT_FOUND);
if (av.IsChildAgent)
return new LSL_List(NOT_ON_REGION);
List<SceneObjectGroup> AttachmentsKeys;
AttachmentsKeys = av.GetAttachments();
foreach (SceneObjectGroup AttachmentKey in AttachmentsKeys)
AttachmentsList.Add(new LSL_Key(AttachmentKey.FromItemID.ToString()));
return AttachmentsList;
}
public virtual LSL_Integer llGetFreeMemory()
{
m_host.AddScriptLPS(1);

View File

@ -116,6 +116,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
LSL_String llGetAnimation(string id);
LSL_List llGetAnimationList(string id);
LSL_Integer llGetAttached();
LSL_List llGetAttachedList(string id);
LSL_List llGetBoundingBox(string obj);
LSL_Vector llGetCameraPos();
LSL_Rotation llGetCameraRot();

View File

@ -426,6 +426,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
return m_LSL_Functions.llGetAttached();
}
public LSL_List llGetAttachedList(string id)
{
return m_LSL_Functions.llGetAttachedList(id);
}
public LSL_List llGetBoundingBox(string obj)
{
return m_LSL_Functions.llGetBoundingBox(obj);