Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
commit
2e7c1bcfd9
|
@ -130,5 +130,11 @@ namespace OpenSim.Framework
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="url"></param>
|
/// <param name="url"></param>
|
||||||
void SetMusicUrl(string url);
|
void SetMusicUrl(string url);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the music url for this land parcel
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The music url.</returns>
|
||||||
|
string GetMusicUrl();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1095,6 +1095,15 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
SendLandUpdateToAvatarsOverMe();
|
SendLandUpdateToAvatarsOverMe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the music url for this land parcel
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The music url.</returns>
|
||||||
|
public string GetMusicUrl()
|
||||||
|
{
|
||||||
|
return LandData.MusicURL;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -373,7 +373,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||||
public virtual void HandleMapItemRequest(IClientAPI remoteClient, uint flags,
|
public virtual void HandleMapItemRequest(IClientAPI remoteClient, uint flags,
|
||||||
uint EstateID, bool godlike, uint itemtype, ulong regionhandle)
|
uint EstateID, bool godlike, uint itemtype, ulong regionhandle)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat("[WORLD MAP]: Handle MapItem request {0} {1}", regionhandle, itemtype);
|
m_log.DebugFormat("[WORLD MAP]: Handle MapItem request {0} {1}", regionhandle, itemtype);
|
||||||
|
|
||||||
lock (m_rootAgents)
|
lock (m_rootAgents)
|
||||||
{
|
{
|
||||||
|
@ -429,7 +429,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||||
// ensures that the blockingqueue doesn't get borked if the GetAgents() timing changes.
|
// ensures that the blockingqueue doesn't get borked if the GetAgents() timing changes.
|
||||||
RequestMapItems("",remoteClient.AgentId,flags,EstateID,godlike,itemtype,regionhandle);
|
RequestMapItems("",remoteClient.AgentId,flags,EstateID,godlike,itemtype,regionhandle);
|
||||||
}
|
}
|
||||||
} else if (itemtype == 7) // Service 7 (MAP_ITEM_LAND_FOR_SALE)
|
}
|
||||||
|
else if (itemtype == 7) // Service 7 (MAP_ITEM_LAND_FOR_SALE)
|
||||||
{
|
{
|
||||||
if (regionhandle == 0 || regionhandle == m_scene.RegionInfo.RegionHandle)
|
if (regionhandle == 0 || regionhandle == m_scene.RegionInfo.RegionHandle)
|
||||||
{
|
{
|
||||||
|
@ -481,6 +482,32 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||||
RequestMapItems("",remoteClient.AgentId,flags,EstateID,godlike,itemtype,regionhandle);
|
RequestMapItems("",remoteClient.AgentId,flags,EstateID,godlike,itemtype,regionhandle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (itemtype == 1) // Service 1 (MAP_ITEM_TELEHUB)
|
||||||
|
{
|
||||||
|
if (regionhandle == 0 || regionhandle == m_scene.RegionInfo.RegionHandle)
|
||||||
|
{
|
||||||
|
List<mapItemReply> mapitems = new List<mapItemReply>();
|
||||||
|
mapItemReply mapitem = new mapItemReply();
|
||||||
|
|
||||||
|
SceneObjectPart sop = m_scene.GetSceneObjectPart(m_scene.RegionInfo.RegionSettings.TelehubObject);
|
||||||
|
|
||||||
|
mapitem = new mapItemReply();
|
||||||
|
mapitem.x = (uint)(xstart + sop.AbsolutePosition.X);
|
||||||
|
mapitem.y = (uint)(ystart + sop.AbsolutePosition.Y);
|
||||||
|
mapitem.id = UUID.Zero;
|
||||||
|
mapitem.name = sop.Name;
|
||||||
|
mapitem.Extra = 0; // color (not used)
|
||||||
|
mapitem.Extra2 = 0; // 0 = telehub / 1 = infohub
|
||||||
|
mapitems.Add(mapitem);
|
||||||
|
|
||||||
|
remoteClient.SendMapItemReply(mapitems.ToArray(), itemtype, flags);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Remote Map Item Request
|
||||||
|
RequestMapItems("",remoteClient.AgentId,flags,EstateID,godlike,itemtype,regionhandle);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int nAsyncRequests = 0;
|
private int nAsyncRequests = 0;
|
||||||
|
@ -620,6 +647,28 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||||
}
|
}
|
||||||
av.ControllingClient.SendMapItemReply(returnitems.ToArray(), itemtype, mrs.flags);
|
av.ControllingClient.SendMapItemReply(returnitems.ToArray(), itemtype, mrs.flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Service 1 (MAP_ITEM_TELEHUB)
|
||||||
|
itemtype = 1;
|
||||||
|
|
||||||
|
if (response.ContainsKey(itemtype.ToString()))
|
||||||
|
{
|
||||||
|
List<mapItemReply> returnitems = new List<mapItemReply>();
|
||||||
|
OSDArray itemarray = (OSDArray)response[itemtype.ToString()];
|
||||||
|
for (int i = 0; i < itemarray.Count; i++)
|
||||||
|
{
|
||||||
|
OSDMap mapitem = (OSDMap)itemarray[i];
|
||||||
|
mapItemReply mi = new mapItemReply();
|
||||||
|
mi.x = (uint)mapitem["X"].AsInteger();
|
||||||
|
mi.y = (uint)mapitem["Y"].AsInteger();
|
||||||
|
mi.id = mapitem["ID"].AsUUID();
|
||||||
|
mi.Extra = mapitem["Extra"].AsInteger();
|
||||||
|
mi.Extra2 = mapitem["Extra2"].AsInteger();
|
||||||
|
mi.name = mapitem["Name"].AsString();
|
||||||
|
returnitems.Add(mi);
|
||||||
|
}
|
||||||
|
av.ControllingClient.SendMapItemReply(returnitems.ToArray(), itemtype, mrs.flags);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1252,21 +1301,23 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||||
|
|
||||||
if (m_scene.RegionInfo.RegionSettings.TelehubObject != UUID.Zero)
|
if (m_scene.RegionInfo.RegionSettings.TelehubObject != UUID.Zero)
|
||||||
{
|
{
|
||||||
SceneObjectPart sop = m_scene.GetSceneObjectPart(m_scene.RegionInfo.RegionSettings.TelehubObject);
|
SceneObjectGroup sog = m_scene.GetSceneObjectGroup(m_scene.RegionInfo.RegionSettings.TelehubObject);
|
||||||
|
if (sog != null)
|
||||||
|
{
|
||||||
OSDArray responsearr = new OSDArray();
|
OSDArray responsearr = new OSDArray();
|
||||||
OSDMap responsemapdata = new OSDMap();
|
OSDMap responsemapdata = new OSDMap();
|
||||||
responsemapdata["X"] = OSD.FromInteger((int)(xstart + sop.AbsolutePosition.X));
|
responsemapdata["X"] = OSD.FromInteger((int)(xstart + sog.AbsolutePosition.X));
|
||||||
responsemapdata["Y"] = OSD.FromInteger((int)(ystart + sop.AbsolutePosition.Y));
|
responsemapdata["Y"] = OSD.FromInteger((int)(ystart + sog.AbsolutePosition.Y));
|
||||||
// responsemapdata["Z"] = OSD.FromInteger((int)m_scene.GetGroundHeight(x,y));
|
// responsemapdata["Z"] = OSD.FromInteger((int)m_scene.GetGroundHeight(x,y));
|
||||||
responsemapdata["ID"] = OSD.FromUUID(sop.UUID);
|
responsemapdata["ID"] = OSD.FromUUID(sog.UUID);
|
||||||
responsemapdata["Name"] = OSD.FromString(sop.Name);
|
responsemapdata["Name"] = OSD.FromString(sog.Name);
|
||||||
responsemapdata["Extra"] = OSD.FromInteger(0); // color (unused)
|
responsemapdata["Extra"] = OSD.FromInteger(0); // color (unused)
|
||||||
responsemapdata["Extra2"] = OSD.FromInteger(0); // 0 = telehub / 1 = infohub
|
responsemapdata["Extra2"] = OSD.FromInteger(0); // 0 = telehub / 1 = infohub
|
||||||
responsearr.Add(responsemapdata);
|
responsearr.Add(responsemapdata);
|
||||||
|
|
||||||
responsemap["1"] = responsearr;
|
responsemap["1"] = responsearr;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return responsemap;
|
return responsemap;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,12 +41,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
public delegate void PhysicsCrash();
|
public delegate void PhysicsCrash();
|
||||||
|
|
||||||
public delegate void ObjectDuplicateDelegate(EntityBase original, EntityBase clone);
|
|
||||||
|
|
||||||
public delegate void ObjectCreateDelegate(EntityBase obj);
|
|
||||||
|
|
||||||
public delegate void ObjectDeleteDelegate(EntityBase obj);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This class used to be called InnerScene and may not yet truly be a SceneGraph. The non scene graph components
|
/// This class used to be called InnerScene and may not yet truly be a SceneGraph. The non scene graph components
|
||||||
/// should be migrated out over time.
|
/// should be migrated out over time.
|
||||||
|
|
|
@ -7566,6 +7566,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
ScriptSleep(2000);
|
ScriptSleep(2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LSL_String llGetParcelMusicURL()
|
||||||
|
{
|
||||||
|
m_host.AddScriptLPS(1);
|
||||||
|
|
||||||
|
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
|
||||||
|
|
||||||
|
if (land.LandData.OwnerID != m_host.OwnerID)
|
||||||
|
return String.Empty;
|
||||||
|
|
||||||
|
return land.GetMusicUrl();
|
||||||
|
}
|
||||||
|
|
||||||
public LSL_Vector llGetRootPosition()
|
public LSL_Vector llGetRootPosition()
|
||||||
{
|
{
|
||||||
m_host.AddScriptLPS(1);
|
m_host.AddScriptLPS(1);
|
||||||
|
|
|
@ -161,6 +161,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
||||||
LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param);
|
LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param);
|
||||||
LSL_Integer llGetParcelFlags(LSL_Vector pos);
|
LSL_Integer llGetParcelFlags(LSL_Vector pos);
|
||||||
LSL_Integer llGetParcelMaxPrims(LSL_Vector pos, int sim_wide);
|
LSL_Integer llGetParcelMaxPrims(LSL_Vector pos, int sim_wide);
|
||||||
|
LSL_String llGetParcelMusicURL();
|
||||||
LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide);
|
LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide);
|
||||||
LSL_List llGetParcelPrimOwners(LSL_Vector pos);
|
LSL_List llGetParcelPrimOwners(LSL_Vector pos);
|
||||||
LSL_Integer llGetPermissions();
|
LSL_Integer llGetPermissions();
|
||||||
|
|
|
@ -649,6 +649,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||||
return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide);
|
return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LSL_String llGetParcelMusicURL()
|
||||||
|
{
|
||||||
|
return m_LSL_Functions.llGetParcelMusicURL();
|
||||||
|
}
|
||||||
|
|
||||||
public LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide)
|
public LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide)
|
||||||
{
|
{
|
||||||
return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide);
|
return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide);
|
||||||
|
|
Loading…
Reference in New Issue