Allow megaregions to be used in M7, should we so decide
parent
d4022becc3
commit
fb89d0ff4e
|
@ -137,6 +137,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
protected SceneCommunicationService m_sceneGridService;
|
protected SceneCommunicationService m_sceneGridService;
|
||||||
public bool LoginsDisabled = true;
|
public bool LoginsDisabled = true;
|
||||||
public bool LoadingPrims = false;
|
public bool LoadingPrims = false;
|
||||||
|
public bool CombineRegions = false;
|
||||||
|
|
||||||
public new float TimeDilation
|
public new float TimeDilation
|
||||||
{
|
{
|
||||||
|
@ -768,6 +769,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
m_strictAccessControl = startupConfig.GetBoolean("StrictAccessControl", m_strictAccessControl);
|
m_strictAccessControl = startupConfig.GetBoolean("StrictAccessControl", m_strictAccessControl);
|
||||||
|
CombineRegions = startupConfig.GetBoolean("CombineContiguousRegions", false);
|
||||||
|
|
||||||
#region BinaryStats
|
#region BinaryStats
|
||||||
|
|
||||||
|
|
|
@ -283,30 +283,33 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
protected internal bool AddRestoredSceneObject(
|
protected internal bool AddRestoredSceneObject(
|
||||||
SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted, bool sendClientUpdates)
|
SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted, bool sendClientUpdates)
|
||||||
{
|
{
|
||||||
// KF: Check for out-of-region, move inside and make static.
|
if (!m_parentScene.CombineRegions)
|
||||||
Vector3 npos = new Vector3(sceneObject.RootPart.GroupPosition.X,
|
{
|
||||||
sceneObject.RootPart.GroupPosition.Y,
|
// KF: Check for out-of-region, move inside and make static.
|
||||||
sceneObject.RootPart.GroupPosition.Z);
|
Vector3 npos = new Vector3(sceneObject.RootPart.GroupPosition.X,
|
||||||
if (!(((sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim) && (sceneObject.RootPart.Shape.State != 0))) && (npos.X < 0.0 || npos.Y < 0.0 || npos.Z < 0.0 ||
|
sceneObject.RootPart.GroupPosition.Y,
|
||||||
npos.X > Constants.RegionSize ||
|
sceneObject.RootPart.GroupPosition.Z);
|
||||||
npos.Y > Constants.RegionSize))
|
if (!(((sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim) && (sceneObject.RootPart.Shape.State != 0))) && (npos.X < 0.0 || npos.Y < 0.0 || npos.Z < 0.0 ||
|
||||||
{
|
npos.X > Constants.RegionSize ||
|
||||||
if (npos.X < 0.0) npos.X = 1.0f;
|
npos.Y > Constants.RegionSize))
|
||||||
if (npos.Y < 0.0) npos.Y = 1.0f;
|
|
||||||
if (npos.Z < 0.0) npos.Z = 0.0f;
|
|
||||||
if (npos.X > Constants.RegionSize) npos.X = Constants.RegionSize - 1.0f;
|
|
||||||
if (npos.Y > Constants.RegionSize) npos.Y = Constants.RegionSize - 1.0f;
|
|
||||||
|
|
||||||
foreach (SceneObjectPart part in sceneObject.Children.Values)
|
|
||||||
{
|
{
|
||||||
part.GroupPosition = npos;
|
if (npos.X < 0.0) npos.X = 1.0f;
|
||||||
|
if (npos.Y < 0.0) npos.Y = 1.0f;
|
||||||
|
if (npos.Z < 0.0) npos.Z = 0.0f;
|
||||||
|
if (npos.X > Constants.RegionSize) npos.X = Constants.RegionSize - 1.0f;
|
||||||
|
if (npos.Y > Constants.RegionSize) npos.Y = Constants.RegionSize - 1.0f;
|
||||||
|
|
||||||
|
foreach (SceneObjectPart part in sceneObject.Children.Values)
|
||||||
|
{
|
||||||
|
part.GroupPosition = npos;
|
||||||
|
}
|
||||||
|
sceneObject.RootPart.Velocity = Vector3.Zero;
|
||||||
|
sceneObject.RootPart.AngularVelocity = Vector3.Zero;
|
||||||
|
sceneObject.RootPart.Acceleration = Vector3.Zero;
|
||||||
|
sceneObject.RootPart.Velocity = Vector3.Zero;
|
||||||
}
|
}
|
||||||
sceneObject.RootPart.Velocity = Vector3.Zero;
|
}
|
||||||
sceneObject.RootPart.AngularVelocity = Vector3.Zero;
|
|
||||||
sceneObject.RootPart.Acceleration = Vector3.Zero;
|
|
||||||
sceneObject.RootPart.Velocity = Vector3.Zero;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!alreadyPersisted)
|
if (!alreadyPersisted)
|
||||||
{
|
{
|
||||||
sceneObject.ForceInventoryPersistence();
|
sceneObject.ForceInventoryPersistence();
|
||||||
|
|
Loading…
Reference in New Issue