* Replace Scene.GetLandHeight() with a straight query to Scene.Heightmap (which is used in other contexts)
parent
3d70dbd01d
commit
11e1948b57
|
@ -88,7 +88,8 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
|
|||
}
|
||||
// TODO: Get proper AVG Height
|
||||
float localAVHeight = 1.56f;
|
||||
float posZLimit = (float)avatar.Scene.GetLandHeight((int)position.X, (int)position.Y);
|
||||
|
||||
float posZLimit = (float)avatar.Scene.Heightmap[(int)position.X, (int)position.Y];
|
||||
float newPosZ = posZLimit + localAVHeight;
|
||||
if (posZLimit >= (position.Z - (localAVHeight / 2)) && !(Single.IsInfinity(newPosZ) || Single.IsNaN(newPosZ)))
|
||||
{
|
||||
|
|
|
@ -3019,11 +3019,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
m_eventManager.TriggerOnPluginConsole(args);
|
||||
}
|
||||
|
||||
public double GetLandHeight(int x, int y)
|
||||
{
|
||||
return Heightmap[x, y];
|
||||
}
|
||||
|
||||
public UUID GetLandOwner(float x, float y)
|
||||
{
|
||||
ILandObject land = LandChannel.GetLandObject(x, y);
|
||||
|
|
|
@ -710,7 +710,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
// TODO: Get proper AVG Height
|
||||
float localAVHeight = 1.56f;
|
||||
float posZLimit = (float)avatar.Scene.GetLandHeight((int)position.X, (int)position.Y);
|
||||
float posZLimit = (float)avatar.Scene.Heightmap[(int)position.X, (int)position.Y];
|
||||
float newPosZ = posZLimit + localAVHeight;
|
||||
if (posZLimit >= (position.Z - (localAVHeight / 2)) && !(Single.IsInfinity(newPosZ) || Single.IsNaN(newPosZ)))
|
||||
{
|
||||
|
|
|
@ -848,7 +848,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
localAVHeight = m_avHeight;
|
||||
}
|
||||
|
||||
float posZLimit = (float)m_scene.GetLandHeight((int)pos.X, (int)pos.Y);
|
||||
float posZLimit = (float)m_scene.Heightmap[(int)pos.X, (int)pos.Y];
|
||||
float newPosZ = posZLimit + localAVHeight / 2;
|
||||
if (posZLimit >= (pos.Z - (localAVHeight / 2)) && !(Single.IsInfinity(newPosZ) || Single.IsNaN(newPosZ)))
|
||||
{
|
||||
|
|
|
@ -1007,17 +1007,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
int y = (int)(pos.Y + offset.y);
|
||||
|
||||
// Clamp to valid position
|
||||
if (x<0)
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
else if (x>=World.Heightmap.Width)
|
||||
x = World.Heightmap.Width-1;
|
||||
if (y<0)
|
||||
else if (x >= World.Heightmap.Width)
|
||||
x = World.Heightmap.Width - 1;
|
||||
if (y < 0)
|
||||
y = 0;
|
||||
else if (y>=World.Heightmap.Height)
|
||||
y = World.Heightmap.Height-1;
|
||||
|
||||
|
||||
return World.GetLandHeight(x, y);
|
||||
else if (y >= World.Heightmap.Height)
|
||||
y = World.Heightmap.Height - 1;
|
||||
|
||||
return World.Heightmap[x, y];
|
||||
}
|
||||
|
||||
public LSL_Float llCloud(LSL_Vector offset)
|
||||
|
@ -2794,15 +2793,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void llSetHoverHeight(double height, int water, double tau)
|
||||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
Vector3 pos = m_host.GetWorldPosition();
|
||||
int x = (int)(pos.X);
|
||||
int y = (int)(pos.Y);
|
||||
float landHeight = (float)World.GetLandHeight(x, y);
|
||||
float landHeight = (float)World.Heightmap[x, y];
|
||||
float targetHeight = landHeight + (float)height;
|
||||
if (water == 1)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue