review gridservice module. Not merged os code for varsize, since that
should be handle at db levelavinationmerge
parent
8a8acc41bb
commit
f2259d37e2
|
@ -56,6 +56,8 @@ namespace OpenSim.Services.GridService
|
||||||
protected bool m_AllowDuplicateNames = false;
|
protected bool m_AllowDuplicateNames = false;
|
||||||
protected bool m_AllowHypergridMapSearch = false;
|
protected bool m_AllowHypergridMapSearch = false;
|
||||||
|
|
||||||
|
private static Dictionary<string, object> m_ExtraFeatures = new Dictionary<string, object>();
|
||||||
|
|
||||||
public GridService(IConfigSource config)
|
public GridService(IConfigSource config)
|
||||||
: base(config)
|
: base(config)
|
||||||
{
|
{
|
||||||
|
@ -128,6 +130,50 @@ namespace OpenSim.Services.GridService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetExtraServiceURLs(IConfigSource config)
|
||||||
|
{
|
||||||
|
IConfig loginConfig = config.Configs["LoginService"];
|
||||||
|
IConfig gridConfig = config.Configs["GridService"];
|
||||||
|
|
||||||
|
if (loginConfig == null || gridConfig == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
string configVal;
|
||||||
|
|
||||||
|
configVal = loginConfig.GetString("SearchURL", string.Empty);
|
||||||
|
if (!string.IsNullOrEmpty(configVal))
|
||||||
|
m_ExtraFeatures["search-server-url"] = configVal;
|
||||||
|
|
||||||
|
configVal = loginConfig.GetString("MapTileURL", string.Empty);
|
||||||
|
if (!string.IsNullOrEmpty(configVal))
|
||||||
|
{
|
||||||
|
// This URL must end with '/', the viewer doesn't check
|
||||||
|
configVal = configVal.Trim();
|
||||||
|
if (!configVal.EndsWith("/"))
|
||||||
|
configVal = configVal + "/";
|
||||||
|
m_ExtraFeatures["map-server-url"] = configVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
configVal = loginConfig.GetString("DestinationGuide", string.Empty);
|
||||||
|
if (!string.IsNullOrEmpty(configVal))
|
||||||
|
m_ExtraFeatures["destination-guide-url"] = configVal;
|
||||||
|
|
||||||
|
configVal = Util.GetConfigVarFromSections<string>(
|
||||||
|
config, "GatekeeperURI", new string[] { "Startup", "Hypergrid" }, String.Empty);
|
||||||
|
if (!string.IsNullOrEmpty(configVal))
|
||||||
|
m_ExtraFeatures["GridURL"] = configVal;
|
||||||
|
|
||||||
|
configVal = Util.GetConfigVarFromSections<string>(
|
||||||
|
config, "GridName", new string[] { "Const", "Hypergrid" }, String.Empty);
|
||||||
|
if (string.IsNullOrEmpty(configVal))
|
||||||
|
configVal = Util.GetConfigVarFromSections<string>(
|
||||||
|
config, "gridname", new string[] { "GridInfo" }, String.Empty);
|
||||||
|
if (!string.IsNullOrEmpty(configVal))
|
||||||
|
m_ExtraFeatures["GridName"] = configVal;
|
||||||
|
|
||||||
|
m_ExtraFeatures["ExportSupported"] = gridConfig.GetString("ExportSupported", "true");
|
||||||
|
}
|
||||||
|
|
||||||
#region IGridService
|
#region IGridService
|
||||||
|
|
||||||
public string RegisterRegion(UUID scopeID, GridRegion regionInfos)
|
public string RegisterRegion(UUID scopeID, GridRegion regionInfos)
|
||||||
|
@ -137,6 +183,8 @@ namespace OpenSim.Services.GridService
|
||||||
if (regionInfos.RegionID == UUID.Zero)
|
if (regionInfos.RegionID == UUID.Zero)
|
||||||
return "Invalid RegionID - cannot be zero UUID";
|
return "Invalid RegionID - cannot be zero UUID";
|
||||||
|
|
||||||
|
// we should not need to check for overlaps
|
||||||
|
|
||||||
RegionData region = m_Database.Get(regionInfos.RegionLocX, regionInfos.RegionLocY, scopeID);
|
RegionData region = m_Database.Get(regionInfos.RegionLocX, regionInfos.RegionLocY, scopeID);
|
||||||
if ((region != null) && (region.RegionID != regionInfos.RegionID))
|
if ((region != null) && (region.RegionID != regionInfos.RegionID))
|
||||||
{
|
{
|
||||||
|
@ -312,9 +360,15 @@ namespace OpenSim.Services.GridService
|
||||||
if (region != null)
|
if (region != null)
|
||||||
{
|
{
|
||||||
// Not really? Maybe?
|
// Not really? Maybe?
|
||||||
|
/* this fails wiht var regions. My_sql db should now handle var regions
|
||||||
List<RegionData> rdatas = m_Database.Get(
|
List<RegionData> rdatas = m_Database.Get(
|
||||||
region.posX - region.sizeX - 1, region.posY - region.sizeY - 1,
|
region.posX - region.sizeX - 1, region.posY - region.sizeY - 1,
|
||||||
region.posX + region.sizeX + 1, region.posY + region.sizeY + 1, scopeID);
|
region.posX + region.sizeX + 1, region.posY + region.sizeY + 1, scopeID);
|
||||||
|
*/
|
||||||
|
// so send normal search area
|
||||||
|
List<RegionData> rdatas = m_Database.Get(
|
||||||
|
region.posX - 1, region.posY - 1,
|
||||||
|
region.posX + region.sizeX + 1, region.posY + region.sizeY + 1, scopeID);
|
||||||
|
|
||||||
foreach (RegionData rdata in rdatas)
|
foreach (RegionData rdata in rdatas)
|
||||||
{
|
{
|
||||||
|
@ -352,6 +406,7 @@ namespace OpenSim.Services.GridService
|
||||||
// be the base coordinate of the region.
|
// be the base coordinate of the region.
|
||||||
// The snapping is technically unnecessary but is harmless because regions are always
|
// The snapping is technically unnecessary but is harmless because regions are always
|
||||||
// multiples of the legacy region size (256).
|
// multiples of the legacy region size (256).
|
||||||
|
|
||||||
public GridRegion GetRegionByPosition(UUID scopeID, int x, int y)
|
public GridRegion GetRegionByPosition(UUID scopeID, int x, int y)
|
||||||
{
|
{
|
||||||
int snapX = (int)(x / Constants.RegionSize) * (int)Constants.RegionSize;
|
int snapX = (int)(x / Constants.RegionSize) * (int)Constants.RegionSize;
|
||||||
|
@ -773,5 +828,18 @@ namespace OpenSim.Services.GridService
|
||||||
m_Database.Store(r);
|
m_Database.Store(r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the grid extra service URls we wish for the region to send in OpenSimExtras to dynamically refresh
|
||||||
|
/// parameters in the viewer used to access services like map, search and destination guides.
|
||||||
|
/// <para>see "SimulatorFeaturesModule" </para>
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// The grid extra service URls.
|
||||||
|
/// </returns>
|
||||||
|
public Dictionary<string,object> GetExtraFeatures()
|
||||||
|
{
|
||||||
|
return m_ExtraFeatures;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue