Make the max sizes of physical and nonphysical prims configurable in OpenSim.ini
Defaulted to 65536 and 10, respectively0.6.0-stable
parent
212ab8c6d9
commit
8ae7dc628b
|
@ -88,6 +88,8 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// Are we applying physics to any of the prims in this scene?
|
||||
/// </summary>
|
||||
public bool m_physicalPrim;
|
||||
public float m_maxNonphys = 65536;
|
||||
public float m_maxPhys = 10;
|
||||
|
||||
public bool m_seeIntoRegionFromNeighbor;
|
||||
public int MaxUndoCount = 5;
|
||||
|
@ -308,6 +310,18 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_simulatorVersion = simulatorVersion
|
||||
+ " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString()
|
||||
+ " PhysPrim:" + m_physicalPrim.ToString();
|
||||
|
||||
try
|
||||
{
|
||||
IConfig startupConfig = m_config.Configs["Startup"];
|
||||
m_maxNonphys = startupConfig.GetFloat("NonPhysicalPrimMax", 65536.0f);
|
||||
m_maxPhys = startupConfig.GetFloat("PhysicalPrimMax", 10.0f);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Warn("Failed to load StartupConfig");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1146,7 +1160,7 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
catch (Exception)
|
||||
{
|
||||
m_log.Warn("Failed to load StarupConfg");
|
||||
m_log.Warn("Failed to load StartupConfig");
|
||||
}
|
||||
|
||||
if (drawPrimVolume)
|
||||
|
|
|
@ -2131,12 +2131,12 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
/// <param name="localID"></param>
|
||||
public void Resize(LLVector3 scale, uint localID)
|
||||
{
|
||||
if(scale.X > 65536.0f)
|
||||
scale.X = 65536.0f;
|
||||
if(scale.Y > 65536.0f)
|
||||
scale.Y = 65536.0f;
|
||||
if(scale.Z > 65536.0f)
|
||||
scale.Z = 65536.0f;
|
||||
if(scale.X > m_scene.m_maxNonphys)
|
||||
scale.X = m_scene.m_maxNonphys;
|
||||
if(scale.Y > m_scene.m_maxNonphys)
|
||||
scale.Y = m_scene.m_maxNonphys;
|
||||
if(scale.Z > m_scene.m_maxNonphys)
|
||||
scale.Z = m_scene.m_maxNonphys;
|
||||
|
||||
SceneObjectPart part = GetChildPart(localID);
|
||||
if (part != null)
|
||||
|
@ -2146,12 +2146,12 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
{
|
||||
if(part.PhysActor.IsPhysical)
|
||||
{
|
||||
if(scale.X > 10.0f)
|
||||
scale.X = 10.0f;
|
||||
if(scale.Y > 10.0f)
|
||||
scale.Y = 10.0f;
|
||||
if(scale.Z > 10.0f)
|
||||
scale.Z = 10.0f;
|
||||
if(scale.X > m_scene.m_maxPhys)
|
||||
scale.X = m_scene.m_maxPhys;
|
||||
if(scale.Y > m_scene.m_maxPhys)
|
||||
scale.Y = m_scene.m_maxPhys;
|
||||
if(scale.Z > m_scene.m_maxPhys)
|
||||
scale.Z = m_scene.m_maxPhys;
|
||||
}
|
||||
part.PhysActor.Size =
|
||||
new PhysicsVector(scale.X, scale.Y, scale.Z);
|
||||
|
@ -2179,20 +2179,20 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
SceneObjectPart part = GetChildPart(localID);
|
||||
if (part != null)
|
||||
{
|
||||
if(scale.X > 65536.0f)
|
||||
scale.X = 65536.0f;
|
||||
if(scale.Y > 65536.0f)
|
||||
scale.Y = 65536.0f;
|
||||
if(scale.Z > 65536.0f)
|
||||
scale.Z = 65536.0f;
|
||||
if(scale.X > m_scene.m_maxNonphys)
|
||||
scale.X = m_scene.m_maxNonphys;
|
||||
if(scale.Y > m_scene.m_maxNonphys)
|
||||
scale.Y = m_scene.m_maxNonphys;
|
||||
if(scale.Z > m_scene.m_maxNonphys)
|
||||
scale.Z = m_scene.m_maxNonphys;
|
||||
if(part.PhysActor != null && part.PhysActor.IsPhysical)
|
||||
{
|
||||
if(scale.X > 10.0f)
|
||||
scale.X = 10.0f;
|
||||
if(scale.Y > 10.0f)
|
||||
scale.Y = 10.0f;
|
||||
if(scale.Z > 10.0f)
|
||||
scale.Z = 10.0f;
|
||||
if(scale.X > m_scene.m_maxPhys)
|
||||
scale.X = m_scene.m_maxPhys;
|
||||
if(scale.Y > m_scene.m_maxPhys)
|
||||
scale.Y = m_scene.m_maxPhys;
|
||||
if(scale.Z > m_scene.m_maxPhys)
|
||||
scale.Z = m_scene.m_maxPhys;
|
||||
}
|
||||
float x = (scale.X / part.Scale.X);
|
||||
float y = (scale.Y / part.Scale.Y);
|
||||
|
@ -2213,25 +2213,25 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
|
||||
if(part.PhysActor != null && part.PhysActor.IsPhysical)
|
||||
{
|
||||
if(oldSize.X*x > 10.0f)
|
||||
if(oldSize.X*x > m_scene.m_maxPhys)
|
||||
{
|
||||
f = 10.0f / oldSize.X;
|
||||
f = m_scene.m_maxPhys / oldSize.X;
|
||||
a = f / x;
|
||||
x *= a;
|
||||
y *= a;
|
||||
z *= a;
|
||||
}
|
||||
if(oldSize.Y*y > 10.0f)
|
||||
if(oldSize.Y*y > m_scene.m_maxPhys)
|
||||
{
|
||||
f = 10.0f / oldSize.Y;
|
||||
f = m_scene.m_maxPhys / oldSize.Y;
|
||||
a = f / y;
|
||||
x *= a;
|
||||
y *= a;
|
||||
z *= a;
|
||||
}
|
||||
if(oldSize.Z*z > 10.0f)
|
||||
if(oldSize.Z*z > m_scene.m_maxPhys)
|
||||
{
|
||||
f = 10.0f / oldSize.Z;
|
||||
f = m_scene.m_maxPhys / oldSize.Z;
|
||||
a = f / z;
|
||||
x *= a;
|
||||
y *= a;
|
||||
|
@ -2240,25 +2240,25 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
else
|
||||
{
|
||||
if(oldSize.X*x > 65536.0f)
|
||||
if(oldSize.X*x > m_scene.m_maxNonphys)
|
||||
{
|
||||
f = 65536.0f / oldSize.X;
|
||||
f = m_scene.m_maxNonphys / oldSize.X;
|
||||
a = f / x;
|
||||
x *= a;
|
||||
y *= a;
|
||||
z *= a;
|
||||
}
|
||||
if(oldSize.Y*y > 65536.0f)
|
||||
if(oldSize.Y*y > m_scene.m_maxNonphys)
|
||||
{
|
||||
f = 65536.0f / oldSize.Y;
|
||||
f = m_scene.m_maxNonphys / oldSize.Y;
|
||||
a = f / y;
|
||||
x *= a;
|
||||
y *= a;
|
||||
z *= a;
|
||||
}
|
||||
if(oldSize.Z*z > 65536.0f)
|
||||
if(oldSize.Z*z > m_scene.m_maxNonphys)
|
||||
{
|
||||
f = 65536.0f / oldSize.Z;
|
||||
f = m_scene.m_maxNonphys / oldSize.Z;
|
||||
a = f / z;
|
||||
x *= a;
|
||||
y *= a;
|
||||
|
|
|
@ -933,7 +933,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
|||
bool allow = true;
|
||||
foreach(SceneObjectPart part in group.Children.Values)
|
||||
{
|
||||
if(part.Scale.X > 10.0 || part.Scale.Y > 10.0 || part.Scale.Z > 10.0)
|
||||
if(part.Scale.X > World.m_maxPhys || part.Scale.Y > World.m_maxPhys || part.Scale.Z > World.m_maxPhys)
|
||||
{
|
||||
allow = false;
|
||||
break;
|
||||
|
@ -1066,19 +1066,19 @@ namespace OpenSim.Region.ScriptEngine.Common
|
|||
|
||||
if(part.ParentGroup.RootPart.PhysActor != null && part.ParentGroup.RootPart.PhysActor.IsPhysical)
|
||||
{
|
||||
if(scale.x > 10.0)
|
||||
scale.x = 10.0;
|
||||
if(scale.y > 10.0)
|
||||
scale.y = 10.0;
|
||||
if(scale.z > 10.0)
|
||||
scale.z = 10.0;
|
||||
if(scale.x > World.m_maxPhys)
|
||||
scale.x = World.m_maxPhys;
|
||||
if(scale.y > World.m_maxPhys)
|
||||
scale.y = World.m_maxPhys;
|
||||
if(scale.z > World.m_maxPhys)
|
||||
scale.z = World.m_maxPhys;
|
||||
}
|
||||
if(scale.x > 65536.0)
|
||||
scale.x = 65536.0;
|
||||
if(scale.y > 65536.0)
|
||||
scale.y = 65536.0;
|
||||
if(scale.z > 65536.0)
|
||||
scale.z = 65536.0;
|
||||
if(scale.x > World.m_maxNonphys)
|
||||
scale.x = World.m_maxNonphys;
|
||||
if(scale.y > World.m_maxNonphys)
|
||||
scale.y = World.m_maxNonphys;
|
||||
if(scale.z > World.m_maxNonphys)
|
||||
scale.z = World.m_maxNonphys;
|
||||
LLVector3 tmp = part.Scale;
|
||||
tmp.X = (float)scale.x;
|
||||
tmp.Y = (float)scale.y;
|
||||
|
|
|
@ -775,7 +775,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
bool allow = true;
|
||||
foreach(SceneObjectPart part in group.Children.Values)
|
||||
{
|
||||
if(part.Scale.X > 10.0 || part.Scale.Y > 10.0 || part.Scale.Z > 10.0)
|
||||
if(part.Scale.X > World.m_maxPhys || part.Scale.Y > World.m_maxPhys || part.Scale.Z > World.m_maxPhys)
|
||||
{
|
||||
allow = false;
|
||||
break;
|
||||
|
@ -922,19 +922,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
|
||||
if(part.ParentGroup.RootPart.PhysActor != null && part.ParentGroup.RootPart.PhysActor.IsPhysical)
|
||||
{
|
||||
if(scale.x > 10.0)
|
||||
scale.x = 10.0;
|
||||
if(scale.y > 10.0)
|
||||
scale.y = 10.0;
|
||||
if(scale.z > 10.0)
|
||||
scale.z = 10.0;
|
||||
if(scale.x > World.m_maxPhys)
|
||||
scale.x = World.m_maxPhys;
|
||||
if(scale.y > World.m_maxPhys)
|
||||
scale.y = World.m_maxPhys;
|
||||
if(scale.z > World.m_maxPhys)
|
||||
scale.z = World.m_maxPhys;
|
||||
}
|
||||
if(scale.x > 65536.0)
|
||||
scale.x = 65536.0;
|
||||
if(scale.y > 65536.0)
|
||||
scale.y = 65536.0;
|
||||
if(scale.z > 65536.0)
|
||||
scale.z = 65536.0;
|
||||
if(scale.x > World.m_maxNonphys)
|
||||
scale.x = World.m_maxNonphys;
|
||||
if(scale.y > World.m_maxNonphys)
|
||||
scale.y = World.m_maxNonphys;
|
||||
if(scale.z > World.m_maxNonphys)
|
||||
scale.z = World.m_maxNonphys;
|
||||
LLVector3 tmp = part.Scale;
|
||||
tmp.X = (float)scale.x;
|
||||
tmp.Y = (float)scale.y;
|
||||
|
|
|
@ -26,6 +26,10 @@ region_info_source = "filesystem"
|
|||
; objects, so you can turn it off here if you'd like.
|
||||
DrawPrimOnMapTile = true
|
||||
|
||||
; Maximum total size, and maximum size where a prim can be physical
|
||||
NonPhysicalPrimMax = 65536
|
||||
PhysicalPrimMax = 10
|
||||
|
||||
; ##
|
||||
; ## STORAGE
|
||||
; ##
|
||||
|
|
Loading…
Reference in New Issue