remove references to RegionCombinerModule
parent
a8e19b7831
commit
ec8101a24a
|
@ -173,7 +173,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
|||
private BannedRegionCache m_bannedRegionCache = new BannedRegionCache();
|
||||
|
||||
private IEventQueue m_eqModule;
|
||||
private IRegionCombinerModule m_regionCombinerModule;
|
||||
|
||||
#region ISharedRegionModule
|
||||
|
||||
|
@ -339,7 +338,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
|||
return;
|
||||
|
||||
m_eqModule = Scene.RequestModuleInterface<IEventQueue>();
|
||||
m_regionCombinerModule = Scene.RequestModuleInterface<IRegionCombinerModule>();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1341,18 +1339,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
|||
protected virtual bool NeedsNewAgent(float viewdist, uint oldRegionX, uint newRegionX, uint oldRegionY, uint newRegionY,
|
||||
int oldsizeX, int oldsizeY, int newsizeX, int newsizeY)
|
||||
{
|
||||
if (m_regionCombinerModule != null && m_regionCombinerModule.IsRootForMegaregion(Scene.RegionInfo.RegionID))
|
||||
{
|
||||
Vector2 swCorner, neCorner;
|
||||
GetMegaregionViewRange(out swCorner, out neCorner);
|
||||
|
||||
m_log.DebugFormat(
|
||||
"[ENTITY TRANSFER MODULE]: Megaregion view of {0} is from {1} to {2} with new agent check for {3},{4}",
|
||||
Scene.Name, swCorner, neCorner, newRegionX, newRegionY);
|
||||
|
||||
return !(newRegionX >= swCorner.X && newRegionX <= neCorner.X && newRegionY >= swCorner.Y && newRegionY <= neCorner.Y);
|
||||
}
|
||||
|
||||
return Util.IsOutsideView(viewdist, oldRegionX, newRegionX, oldRegionY, newRegionY,
|
||||
oldsizeX, oldsizeY, newsizeX, newsizeY);
|
||||
}
|
||||
|
@ -2385,13 +2371,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
|||
{
|
||||
Vector2 extent = Vector2.Zero;
|
||||
|
||||
if (m_regionCombinerModule != null)
|
||||
{
|
||||
Vector2 megaRegionSize = m_regionCombinerModule.GetSizeOfMegaregion(Scene.RegionInfo.RegionID);
|
||||
extent.X = (float)Util.WorldToRegionLoc((uint)megaRegionSize.X);
|
||||
extent.Y = (float)Util.WorldToRegionLoc((uint)megaRegionSize.Y);
|
||||
}
|
||||
|
||||
swCorner.X = Scene.RegionInfo.RegionLocX - 1;
|
||||
swCorner.Y = Scene.RegionInfo.RegionLocY - 1;
|
||||
neCorner.X = Scene.RegionInfo.RegionLocX + extent.X;
|
||||
|
@ -2411,46 +2390,29 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
|||
RegionInfo m_regionInfo = pScene.RegionInfo;
|
||||
List<GridRegion> neighbours;
|
||||
|
||||
// Leaving this as a "megaregions" computation vs "non-megaregions" computation; it isn't
|
||||
// clear what should be done with a "far view" given that megaregions already extended the
|
||||
// view to include everything in the megaregion
|
||||
if (m_regionCombinerModule == null || !m_regionCombinerModule.IsRootForMegaregion(Scene.RegionInfo.RegionID))
|
||||
{
|
||||
uint dd = (uint)avatar.RegionViewDistance;
|
||||
uint dd = (uint)avatar.RegionViewDistance;
|
||||
|
||||
// until avatar movement updates client connections, we need to seend at least this current region imediate Neighbors
|
||||
uint ddX = Math.Max(dd, Constants.RegionSize);
|
||||
uint ddY = Math.Max(dd, Constants.RegionSize);
|
||||
// until avatar movement updates client connections, we need to seend at least this current region imediate neighbors
|
||||
uint ddX = Math.Max(dd, Constants.RegionSize);
|
||||
uint ddY = Math.Max(dd, Constants.RegionSize);
|
||||
|
||||
ddX--;
|
||||
ddY--;
|
||||
ddX--;
|
||||
ddY--;
|
||||
|
||||
// reference to region edges. Should be avatar position
|
||||
uint startX = Util.RegionToWorldLoc(pRegionLocX);
|
||||
uint endX = startX + m_regionInfo.RegionSizeX;
|
||||
uint startY = Util.RegionToWorldLoc(pRegionLocY);
|
||||
uint endY = startY + m_regionInfo.RegionSizeY;
|
||||
// reference to region edges. Should be avatar position
|
||||
uint startX = Util.RegionToWorldLoc(pRegionLocX);
|
||||
uint endX = startX + m_regionInfo.RegionSizeX;
|
||||
uint startY = Util.RegionToWorldLoc(pRegionLocY);
|
||||
uint endY = startY + m_regionInfo.RegionSizeY;
|
||||
|
||||
startX -= ddX;
|
||||
startY -= ddY;
|
||||
endX += ddX;
|
||||
endY += ddY;
|
||||
startX -= ddX;
|
||||
startY -= ddY;
|
||||
endX += ddX;
|
||||
endY += ddY;
|
||||
|
||||
neighbours
|
||||
= avatar.Scene.GridService.GetRegionRange(
|
||||
m_regionInfo.ScopeID, (int)startX, (int)endX, (int)startY, (int)endY);
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector2 swCorner, neCorner;
|
||||
GetMegaregionViewRange(out swCorner, out neCorner);
|
||||
|
||||
neighbours
|
||||
= pScene.GridService.GetRegionRange(
|
||||
m_regionInfo.ScopeID,
|
||||
(int)Util.RegionToWorldLoc((uint)swCorner.X), (int)Util.RegionToWorldLoc((uint)neCorner.X),
|
||||
(int)Util.RegionToWorldLoc((uint)swCorner.Y), (int)Util.RegionToWorldLoc((uint)neCorner.Y));
|
||||
}
|
||||
neighbours
|
||||
= avatar.Scene.GridService.GetRegionRange(
|
||||
m_regionInfo.ScopeID, (int)startX, (int)endX, (int)startY, (int)endY);
|
||||
|
||||
// The r.RegionFlags == null check only needs to be made for simulators before 2015-01-14 (pre 0.8.1).
|
||||
neighbours.RemoveAll( r => r.RegionID == m_regionInfo.RegionID );
|
||||
|
|
|
@ -522,22 +522,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
|||
|
||||
protected static void WriteRegionInfo(Scene scene, XmlTextWriter xtw)
|
||||
{
|
||||
bool isMegaregion;
|
||||
Vector2 size;
|
||||
|
||||
IRegionCombinerModule rcMod = scene.RequestModuleInterface<IRegionCombinerModule>();
|
||||
|
||||
if (rcMod != null)
|
||||
isMegaregion = rcMod.IsRootForMegaregion(scene.RegionInfo.RegionID);
|
||||
else
|
||||
isMegaregion = false;
|
||||
size = new Vector2((float)scene.RegionInfo.RegionSizeX, (float)scene.RegionInfo.RegionSizeY);
|
||||
|
||||
if (isMegaregion)
|
||||
size = rcMod.GetSizeOfMegaregion(scene.RegionInfo.RegionID);
|
||||
else
|
||||
size = new Vector2((float)scene.RegionInfo.RegionSizeX, (float)scene.RegionInfo.RegionSizeY);
|
||||
|
||||
xtw.WriteElementString("is_megaregion", isMegaregion.ToString());
|
||||
xtw.WriteElementString("size_in_meters", string.Format("{0},{1}", size.X, size.Y));
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
|||
LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public Scene Scene { get; private set; }
|
||||
public IRegionCombinerModule RegionCombinerModule { get; private set; }
|
||||
|
||||
/// <value>
|
||||
/// The file used to load and save an opensimulator archive if no filename has been specified
|
||||
|
@ -85,7 +84,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
|||
|
||||
public void RegionLoaded(Scene scene)
|
||||
{
|
||||
RegionCombinerModule = scene.RequestModuleInterface<IRegionCombinerModule>();
|
||||
}
|
||||
|
||||
public void RemoveRegion(Scene scene)
|
||||
|
|
|
@ -1,64 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the OpenSimulator Project nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
using System.IO;
|
||||
using OpenMetaverse;
|
||||
|
||||
namespace OpenSim.Region.Framework.Interfaces
|
||||
{
|
||||
public interface IRegionCombinerModule
|
||||
{
|
||||
/// <summary>
|
||||
/// Does the given id belong to the root region of a megaregion?
|
||||
/// </summary>
|
||||
bool IsRootForMegaregion(UUID regionId);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the size of megaregion.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Returns size in meters.
|
||||
/// Do not rely on this method remaining the same - this area is actively under development.
|
||||
/// </remarks>
|
||||
/// <param name="sceneId">
|
||||
/// The id of the root region for a megaregion.
|
||||
/// This may change in the future to allow any region id that makes up a megaregion.
|
||||
/// Currently, will throw an exception if this does not match a root region.
|
||||
/// </param>
|
||||
Vector2 GetSizeOfMegaregion(UUID regionId);
|
||||
|
||||
/// <summary>
|
||||
/// Tests to see of position (relative to the region) is within the megaregion
|
||||
/// </summary>
|
||||
bool PositionIsInMegaregion(UUID currentRegion, int xx, int yy);
|
||||
}
|
||||
}
|
|
@ -2925,18 +2925,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (xx < 0 || yy < 0)
|
||||
return false;
|
||||
|
||||
IRegionCombinerModule regionCombinerModule = RequestModuleInterface<IRegionCombinerModule>();
|
||||
if (regionCombinerModule == null)
|
||||
{
|
||||
// Regular region. Just check for region size
|
||||
if (xx < RegionInfo.RegionSizeX && yy < RegionInfo.RegionSizeY )
|
||||
ret = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// We're in a mega-region so see if we are still in that larger region
|
||||
ret = regionCombinerModule.PositionIsInMegaregion(this.RegionInfo.RegionID, xx, yy);
|
||||
}
|
||||
if (xx < RegionInfo.RegionSizeX && yy < RegionInfo.RegionSizeY )
|
||||
ret = true;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -2910,11 +2910,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
// Allow move to another sub-region within a megaregion
|
||||
Vector2 regionSize;
|
||||
IRegionCombinerModule regionCombinerModule = m_scene.RequestModuleInterface<IRegionCombinerModule>();
|
||||
if (regionCombinerModule != null)
|
||||
regionSize = regionCombinerModule.GetSizeOfMegaregion(m_scene.RegionInfo.RegionID);
|
||||
else
|
||||
regionSize = new Vector2(m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY);
|
||||
regionSize = new Vector2(m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY);
|
||||
|
||||
if (pos.X < 0 || pos.X >= regionSize.X
|
||||
|| pos.Y < 0 || pos.Y >= regionSize.Y
|
||||
|
@ -2923,21 +2919,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
float terrainHeight;
|
||||
Scene targetScene = m_scene;
|
||||
// Get terrain height for sub-region in a megaregion if necessary
|
||||
if (regionCombinerModule != null)
|
||||
{
|
||||
int X = (int)((m_scene.RegionInfo.WorldLocX) + pos.X);
|
||||
int Y = (int)((m_scene.RegionInfo.WorldLocY) + pos.Y);
|
||||
GridRegion target_region = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, X, Y);
|
||||
// If X and Y is NaN, target_region will be null
|
||||
if (target_region == null)
|
||||
return;
|
||||
UUID target_regionID = target_region.RegionID;
|
||||
SceneManager.Instance.TryGetScene(target_region.RegionID, out targetScene);
|
||||
terrainHeight = (float)targetScene.Heightmap[(int)(pos.X % regionSize.X), (int)(pos.Y % regionSize.Y)];
|
||||
}
|
||||
else
|
||||
terrainHeight = m_scene.GetGroundHeight(pos.X, pos.Y);
|
||||
terrainHeight = m_scene.GetGroundHeight(pos.X, pos.Y);
|
||||
|
||||
// dont try to land underground
|
||||
terrainHeight += Appearance.AvatarHeight * 0.5f + 0.2f;
|
||||
|
|
|
@ -3347,24 +3347,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
CheckThreatLevel(ThreatLevel.None, "osGetRegionSize");
|
||||
m_host.AddScriptLPS(1);
|
||||
|
||||
bool isMegaregion;
|
||||
IRegionCombinerModule rcMod = World.RequestModuleInterface<IRegionCombinerModule>();
|
||||
if (rcMod != null)
|
||||
isMegaregion = rcMod.IsRootForMegaregion(World.RegionInfo.RegionID);
|
||||
else
|
||||
isMegaregion = false;
|
||||
|
||||
if (isMegaregion)
|
||||
{
|
||||
Vector2 size = rcMod.GetSizeOfMegaregion(World.RegionInfo.RegionID);
|
||||
return new LSL_Vector(size.X, size.Y, Constants.RegionHeight);
|
||||
}
|
||||
else
|
||||
{
|
||||
Scene scene = m_ScriptEngine.World;
|
||||
GridRegion region = scene.GridService.GetRegionByUUID(UUID.Zero, World.RegionInfo.RegionID);
|
||||
return new LSL_Vector((float)region.RegionSizeX, (float)region.RegionSizeY, (float)Constants.RegionHeight);
|
||||
}
|
||||
Scene scene = m_ScriptEngine.World;
|
||||
GridRegion region = scene.GridService.GetRegionByUUID(UUID.Zero, World.RegionInfo.RegionID);
|
||||
return new LSL_Vector((float)region.RegionSizeX, (float)region.RegionSizeY, (float)Constants.RegionHeight);
|
||||
}
|
||||
|
||||
public int osGetSimulatorMemory()
|
||||
|
|
Loading…
Reference in New Issue