mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 08:55:56 +08:00
* Disabled ancient TerrainEngine.
* Enabled new TerrainModule. (The king is dead, long live the king!) * Use the console command: "script terrain save file.r32" / "script terrain load file.r32" to load/save terrain. Now uses the extension to determine file format. * MANY of the old terrain features do not have a replacement function in the new module yet, this needs to be corrected, but has not been done so far. This being said, the new module is faster and more efficient and should be a good replacement.
This commit is contained in:
@@ -1851,61 +1851,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||
double dsize;
|
||||
if (World.PermissionsMngr.CanTerraform(m_host.OwnerID, new LLVector3(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, 0)))
|
||||
{
|
||||
switch (brush)
|
||||
{
|
||||
case 1:
|
||||
dsize = 2;
|
||||
break;
|
||||
case 2:
|
||||
dsize = 4;
|
||||
break;
|
||||
case 3:
|
||||
dsize = 8;
|
||||
break;
|
||||
default:
|
||||
if (brush < 0)
|
||||
{
|
||||
dsize = (double)(-1 * brush);
|
||||
}
|
||||
else
|
||||
{
|
||||
LSLError("Invalid brush size");
|
||||
dsize = 0; // Should cease execution, but get unassigned local variable dsize on compile.
|
||||
}
|
||||
break;
|
||||
}
|
||||
switch (action)
|
||||
{
|
||||
case 0:
|
||||
if (World.Terrain.GetHeight((int)m_host.AbsolutePosition.X, (int)m_host.AbsolutePosition.Y) < m_host.AbsolutePosition.Z)
|
||||
{
|
||||
World.Terrain.FlattenTerrain(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, dsize, 1);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (World.Terrain.GetHeight((int)m_host.AbsolutePosition.X, (int)m_host.AbsolutePosition.Y) < (double)m_host.AbsolutePosition.Z)
|
||||
{
|
||||
World.Terrain.RaiseTerrain(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, dsize, 0.1);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (World.Terrain.GetHeight((int)m_host.AbsolutePosition.X, (int)m_host.AbsolutePosition.Y) > 0)
|
||||
{
|
||||
World.Terrain.LowerTerrain(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, dsize, 1);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
World.Terrain.SmoothTerrain(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, dsize, 1);
|
||||
break;
|
||||
case 4:
|
||||
World.Terrain.NoiseTerrain(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, dsize, 1);
|
||||
break;
|
||||
case 5:
|
||||
World.Terrain.RevertTerrain(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, dsize, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
NotImplemented("llModifyLand");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4162,7 +4108,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||
|
||||
if (World.PermissionsMngr.CanTerraform(m_host.OwnerID, new LLVector3(x, y, 0)))
|
||||
{
|
||||
World.Terrain.Set(x, y, val);
|
||||
World.Heightmap[x, y] = val;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
@@ -4177,7 +4123,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||
if (x > 255 || x < 0 || y > 255 || y < 0)
|
||||
LSLError("osTerrainGetHeight: Coordinate out of bounds");
|
||||
|
||||
return World.Terrain.GetHeight(x, y);
|
||||
return World.Heightmap[x, y];
|
||||
}
|
||||
|
||||
public int osRegionRestart(double seconds)
|
||||
|
||||
Reference in New Issue
Block a user