public LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param)
{
if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID)) return new LSL_List();
IParcelManagementModule parcelManagement = World.RequestModuleInterface<IParcelManagementModule>();
LSL_List ret = new LSL_List();
if (parcelManagement != null)
{
LandData land = parcelManagement.GetLandObject((float)pos.x, (float)pos.y).LandData;
if (land == null)
{
return new LSL_List(0);
}
foreach (object o in param.Data)
{
if ((LSL_Integer)o == ScriptBaseClass.PARCEL_DETAILS_NAME)
ret.Add(new LSL_String(land.Name));
else if ((LSL_Integer)o == ScriptBaseClass.PARCEL_DETAILS_DESC)
ret.Add(new LSL_String(land.Description));
else if ((LSL_Integer)o == ScriptBaseClass.PARCEL_DETAILS_OWNER)
ret.Add(new LSL_Key(land.OwnerID.ToString()));
else if ((LSL_Integer)o == ScriptBaseClass.PARCEL_DETAILS_GROUP)
ret.Add(new LSL_Key(land.GroupID.ToString()));
else if ((LSL_Integer)o == ScriptBaseClass.PARCEL_DETAILS_AREA)
ret.Add(new LSL_Integer(land.Area));
else if ((LSL_Integer)o == ScriptBaseClass.PARCEL_DETAILS_ID)
//Returning the InfoUUID so that we can use this for landmarks outside of this region
// http://wiki.secondlife.com/wiki/PARCEL_DETAILS_ID
ret.Add(new LSL_Key(land.InfoUUID.ToString()));
else if ((LSL_Integer)o == ScriptBaseClass.PARCEL_DETAILS_PRIVACY)
ret.Add(new LSL_Integer(land.Private ? 1 : 0));
else
ret.Add(new LSL_Integer(0));
}
}
return ret;
}