From e575ef7ad2245aad17f57273f6bd7b774f99f057 Mon Sep 17 00:00:00 2001
From: Charles Krinke
Date: Mon, 6 Oct 2008 00:58:43 +0000
Subject: Revert r6697 patch as the build fails.
---
.../Modules/World/Permissions/PermissionsModule.cs | 18 ++--
.../Modules/World/Terrain/Effects/CookieCutter.cs | 6 +-
.../Modules/World/Terrain/ITerrainModule.cs | 5 +-
.../World/Terrain/ITerrainPaintableEffect.cs | 4 +-
.../World/Terrain/PaintBrushes/ErodeSphere.cs | 24 ++----
.../World/Terrain/PaintBrushes/FlattenSphere.cs | 41 +++++----
.../World/Terrain/PaintBrushes/LowerSphere.cs | 11 ++-
.../World/Terrain/PaintBrushes/NoiseSphere.cs | 11 ++-
.../World/Terrain/PaintBrushes/OlsenSphere.cs | 7 +-
.../World/Terrain/PaintBrushes/RaiseSphere.cs | 11 ++-
.../World/Terrain/PaintBrushes/RevertSphere.cs | 9 +-
.../World/Terrain/PaintBrushes/SmoothSphere.cs | 5 +-
.../World/Terrain/PaintBrushes/WeatherSphere.cs | 7 +-
.../Modules/World/Terrain/TerrainModule.cs | 97 ++++++----------------
.../Modules/World/Terrain/Tests/TerrainTest.cs | 27 ++----
15 files changed, 115 insertions(+), 168 deletions(-)
(limited to 'OpenSim/Region/Environment/Modules/World')
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
index abbf40e..16743ea 100644
--- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
@@ -984,9 +984,11 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
+ bool permission = false;
+
// Estate override
if (GenericEstatePermission(user))
- return true;
+ permission = true;
float X = position.X;
float Y = position.Y;
@@ -1000,19 +1002,13 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
if (Y < 0)
Y = 0;
- ILandObject parcel = m_scene.LandChannel.GetLandObject(X, Y);
- if (parcel == null)
- return false;
-
- // Others allowed to terraform?
- if ((parcel.landData.Flags & ((int)Parcel.ParcelFlags.AllowTerraform)) != 0)
- return true;
-
// Land owner can terraform too
+ ILandObject parcel = m_scene.LandChannel.GetLandObject(X, Y);
if (parcel != null && GenericParcelPermission(user, parcel))
- return true;
+ permission = true;
- return false;
+
+ return permission;
}
private bool CanViewScript(UUID script, UUID objectID, UUID user, Scene scene)
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs b/OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs
index c5e99b5..399287d 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/Effects/CookieCutter.cs
@@ -41,7 +41,6 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.Effects
bool[,] cliffMask = new bool[map.Width,map.Height];
bool[,] channelMask = new bool[map.Width,map.Height];
bool[,] smoothMask = new bool[map.Width,map.Height];
- bool[,] allowMask = new bool[map.Width,map.Height];
Console.WriteLine("S1");
@@ -53,7 +52,6 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.Effects
{
Console.Write(".");
smoothMask[x, y] = true;
- allowMask[x,y] = true;
// Start underwater
map[x, y] = TerrainUtil.PerlinNoise2D(x, y, 3, 0.25) * 5;
@@ -79,7 +77,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.Effects
for (y = 0; y < map.Height; y++)
{
if (cliffMask[x, y])
- eroder.PaintEffect(map, allowMask, x, y, -1, 4, 0.1);
+ eroder.PaintEffect(map, x, y, 4, 0.1);
}
}
@@ -121,4 +119,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.Effects
}
}
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainModule.cs b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainModule.cs
index bc5dc72..beeff03 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainModule.cs
@@ -25,9 +25,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
using System.IO;
-using OpenMetaverse;
namespace OpenSim.Region.Environment.Modules.World.Terrain
{
@@ -35,8 +33,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain
{
void LoadFromFile(string filename);
void SaveToFile(string filename);
- void ModifyTerrain(Vector3 pos, byte size, byte action, UUID agentId);
-
+
///
/// Load a terrain from a stream.
///
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs
index e2a9cde..cf2e58a 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainPaintableEffect.cs
@@ -31,6 +31,6 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain
{
public interface ITerrainPaintableEffect
{
- void PaintEffect(ITerrainChannel map, bool[,] allowMask, double x, double y, double z, double strength, double duration);
+ void PaintEffect(ITerrainChannel map, double x, double y, double strength, double duration);
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs
index 3fa3f8a..dae4cf8 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/ErodeSphere.cs
@@ -150,7 +150,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
strength = TerrainUtil.MetersToSphericalStrength(strength);
@@ -173,13 +173,10 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
{
for (y = 0; y < water.Height; y++)
{
- if (mask[x,y])
- {
- const double solConst = (1.0 / rounds);
- double sedDelta = water[x, y] * solConst;
- map[x, y] -= sedDelta;
- sediment[x, y] += sedDelta;
- }
+ const double solConst = (1.0 / rounds);
+ double sedDelta = water[x, y] * solConst;
+ map[x, y] -= sedDelta;
+ sediment[x, y] += sedDelta;
}
}
@@ -295,11 +292,8 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
double sedimentDeposit = sediment[x, y] - waterCapacity;
if (sedimentDeposit > 0)
{
- if (mask[x,y])
- {
- sediment[x, y] -= sedimentDeposit;
- map[x, y] += sedimentDeposit;
- }
+ sediment[x, y] -= sedimentDeposit;
+ map[x, y] += sedimentDeposit;
}
}
}
@@ -308,10 +302,10 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
// Deposit any remainder (should be minimal)
for (x = 0; x < water.Width; x++)
for (y = 0; y < water.Height; y++)
- if (mask[x,y] && sediment[x, y] > 0)
+ if (sediment[x, y] > 0)
map[x, y] += sediment[x, y];
}
#endregion
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs
index e507481..1e2d611 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs
@@ -25,29 +25,48 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-using System;
using OpenSim.Region.Environment.Interfaces;
namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
{
public class FlattenSphere : ITerrainPaintableEffect
{
+
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
strength = TerrainUtil.MetersToSphericalStrength(strength);
int x, y;
- // blend in map
+ double sum = 0.0;
+ double step2 = 0.0;
+ duration = 0.009; //MCP Should be read from ini file
+
+
+ // compute delta map
for (x = 0; x < map.Width; x++)
{
for (y = 0; y < map.Height; y++)
{
- if (!mask[x,y])
- continue;
+ double z = TerrainUtil.SphericalFactor(x, y, rx, ry, strength);
+
+ if (z > 0) // add in non-zero amount
+ {
+ sum += map[x, y] * z;
+ step2 += z;
+ }
+ }
+ }
+
+ double avg = sum / step2;
+ // blend in map
+ for (x = 0; x < map.Width; x++)
+ {
+ for (y = 0; y < map.Height; y++)
+ {
double z = TerrainUtil.SphericalFactor(x, y, rx, ry, strength) * duration;
if (z > 0) // add in non-zero amount
@@ -55,18 +74,8 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
if (z > 1.0)
z = 1.0;
- map[x, y] = (map[x, y] * (1.0 - z)) + (rz * z);
+ map[x, y] = (map[x, y] * (1.0 - z)) + (avg * z);
}
-
- double delta = rz - map[x, y];
- if (Math.Abs(delta) > 0.1)
- delta *= 0.25;
-
- if (delta != 0) // add in non-zero amount
- {
- map[x, y] += delta;
- }
-
}
}
}
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs
index fe82396..08b2879 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/LowerSphere.cs
@@ -34,7 +34,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
{
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
strength = TerrainUtil.MetersToSphericalStrength(strength);
duration = 0.03; //MCP Should be read from ini file
@@ -42,10 +42,15 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
int x;
for (x = 0; x < map.Width; x++)
{
+ // Skip everything unlikely to be affected
+ if (Math.Abs(x - rx) > strength * 1.1)
+ continue;
+
int y;
for (y = 0; y < map.Height; y++)
{
- if (!mask[x,y])
+ // Skip everything unlikely to be affected
+ if (Math.Abs(y - ry) > strength * 1.1)
continue;
// Calculate a sphere and add it to the heighmap
@@ -61,4 +66,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#endregion
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs
index 23f7bc5..0824efd 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/NoiseSphere.cs
@@ -35,17 +35,22 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
{
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
strength = TerrainUtil.MetersToSphericalStrength(strength);
int x;
for (x = 0; x < map.Width; x++)
{
+ // Skip everything unlikely to be affected
+ if (Math.Abs(x - rx) > strength * 1.1)
+ continue;
+
int y;
for (y = 0; y < map.Height; y++)
{
- if (!mask[x,y])
+ // Skip everything unlikely to be affected
+ if (Math.Abs(y - ry) > strength * 1.1)
continue;
// Calculate a sphere and add it to the heighmap
@@ -63,4 +68,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#endregion
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs
index 42ec794..6df8408 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/OlsenSphere.cs
@@ -151,7 +151,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
strength = TerrainUtil.MetersToSphericalStrength(strength);
@@ -162,9 +162,6 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
int y;
for (y = 0; y < map.Height; y++)
{
- if (!mask[x,y])
- continue;
-
double z = TerrainUtil.SphericalFactor(x, y, rx, ry, strength);
if (z > 0) // add in non-zero amount
@@ -219,4 +216,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#endregion
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs
index 92bac63..e4fe091 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RaiseSphere.cs
@@ -35,7 +35,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
duration = 0.03; //MCP Should be read from ini file
strength = TerrainUtil.MetersToSphericalStrength(strength);
@@ -43,10 +43,15 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
int x;
for (x = 0; x < map.Width; x++)
{
+ // Skip everything unlikely to be affected
+ if (Math.Abs(x - rx) > strength * 1.1)
+ continue;
+
int y;
for (y = 0; y < map.Height; y++)
{
- if (!mask[x,y])
+ // Skip everything unlikely to be affected
+ if (Math.Abs(y - ry) > strength * 1.1)
continue;
// Calculate a sphere and add it to the heighmap
@@ -62,4 +67,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#endregion
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs
index d3a1d3d..7a1ec72 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/RevertSphere.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
strength = TerrainUtil.MetersToSphericalStrength(strength);
duration = 0.03; //MCP Should be read from ini file
@@ -54,10 +54,15 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
int x;
for (x = 0; x < map.Width; x++)
{
+ // Skip everything unlikely to be affected
+ if (Math.Abs(x - rx) > strength * 1.1)
+ continue;
+
int y;
for (y = 0; y < map.Height; y++)
{
- if (!mask[x,y])
+ // Skip everything unlikely to be affected
+ if (Math.Abs(y - ry) > strength * 1.1)
continue;
// Calculate a sphere and add it to the heighmap
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs
index c63cb90..89d9063 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/SmoothSphere.cs
@@ -33,7 +33,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
{
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
strength = TerrainUtil.MetersToSphericalStrength(strength);
@@ -76,9 +76,6 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
{
for (y = 0; y < map.Height; y++)
{
- if (!mask[x,y])
- continue;
-
double z = TerrainUtil.SphericalFactor(x, y, rx, ry, strength);
if (z > 0) // add in non-zero amount
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs
index 1288419..b3aa732 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/WeatherSphere.cs
@@ -147,7 +147,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#region ITerrainPaintableEffect Members
- public void PaintEffect(ITerrainChannel map, bool[,] mask, double rx, double ry, double rz, double strength, double duration)
+ public void PaintEffect(ITerrainChannel map, double rx, double ry, double strength, double duration)
{
strength = TerrainUtil.MetersToSphericalStrength(strength);
@@ -158,9 +158,6 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
int y;
for (y = 0; y < map.Height; y++)
{
- if (!mask[x,y])
- continue;
-
double z = TerrainUtil.SphericalFactor(x, y, rx, ry, strength);
if (z > 0) // add in non-zero amount
@@ -207,4 +204,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes
#endregion
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
index 3b8debb..ed4075c 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
@@ -40,7 +40,6 @@ using OpenSim.Region.Environment.Modules.World.Terrain.FloodBrushes;
using OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes;
using OpenSim.Region.Environment.Scenes;
-
namespace OpenSim.Region.Environment.Modules.World.Terrain
{
public class TerrainModule : IRegionModule, ICommandableModule, ITerrainModule
@@ -260,18 +259,6 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain
}
///
- /// Modify Land
- ///
- /// Land-position (X,Y,0)
- /// The size of the brush (0=small, 1=medium, 2=large)
- /// 0=LAND_LEVEL, 1=LAND_RAISE, 2=LAND_LOWER, 3=LAND_SMOOTH, 4=LAND_NOISE, 5=LAND_REVERT
- /// UUID of script-owner
- public void ModifyTerrain(Vector3 pos, byte size, byte action, UUID agentId)
- {
- client_OnModifyTerrain((float)pos.Z, (float)0.25, size, action, pos.Y, pos.X, pos.Y, pos.X, agentId);
- }
-
- ///
/// Saves the current heightmap to a specified stream.
///
/// The destination filename. Used here only to identify the image type
@@ -600,92 +587,58 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain
);
}
- private void client_OnModifyTerrain(float height, float seconds, byte size, byte action,
- float north, float west, float south, float east, UUID agentId)
+ private void client_OnModifyTerrain(float height, float seconds, byte size, byte action, float north, float west,
+ float south, float east, IClientAPI remoteClient)
{
- bool allowed = false;
- if (north == south && east == west)
+ // Not a good permissions check, if in area mode, need to check the entire area.
+ if (m_scene.ExternalChecks.ExternalChecksCanTerraformLand(remoteClient.AgentId, new Vector3(north, west, 0)))
{
- if (m_painteffects.ContainsKey((StandardTerrainEffects) action))
+ if (north == south && east == west)
{
- bool[,] allowMask = new bool[m_channel.Width,m_channel.Height];
- allowMask.Initialize();
- int n = size + 1;
- if (n > 2)
- n = 4;
-
- int zx = (int) (west + 0.5);
- int zy = (int) (north + 0.5);
-
- int dx;
- for (dx=-n; dx<=n; dx++)
- {
- int dy;
- for (dy=-n; dy<=n; dy++)
- {
- int x = zx + dx;
- int y = zy + dy;
- if (x>=0 && y>=0 && x west)
+ int y;
+ for (y = 0; y < m_channel.Height; y++)
{
- if (y < north && y > south)
+ if (x < east && x > west)
{
- if (m_scene.ExternalChecks.ExternalChecksCanTerraformLand(agentId, new Vector3(x,y,0)))
+ if (y < north && y > south)
{
fillArea[x, y] = true;
- allowed = true;
}
}
}
}
- }
- if (allowed)
- {
m_floodeffects[(StandardTerrainEffects) action].FloodEffect(
m_channel, fillArea, size);
CheckForTerrainUpdates(true); //revert changes outside estate limits
}
- }
- else
- {
- m_log.Debug("Unknown terrain flood type " + action);
+ else
+ {
+ m_log.Debug("Unknown terrain flood type " + action);
+ }
}
}
}
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs b/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs
index 71ea07d..eaa674e 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/Tests/TerrainTest.cs
@@ -37,30 +37,19 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.Tests
[Test]
public void BrushTest()
{
- TerrainChannel map = new TerrainChannel(256, 256);
- bool[,] allowMask = new bool[map.Width,map.Height];
- int x;
- int y;
- for (x=0; x 0.0, "Raise brush not raising values.");
- Assert.That(map[0, 128] > 0.0, "Raise brush lowering edge values.");
+ effect.PaintEffect(x, 128.0, 128.0, 100, 0.1);
+ Assert.That(x[128, 128] > 0.0, "Raise brush not raising values.");
+ Assert.That(x[0, 128] > 0.0, "Raise brush lowering edge values.");
- map = new TerrainChannel(256, 256);
+ x = new TerrainChannel(256, 256);
effect = new LowerSphere();
- effect.PaintEffect(map, allowMask, 128.0, 128.0, -1, 50, 0.1);
- Assert.That(map[128, 128] < 0.0, "Lower not lowering values.");
- Assert.That(map[0, 128] < 0.0, "Lower brush affecting edge values.");
+ effect.PaintEffect(x, 128.0, 128.0, 100, 0.1);
+ Assert.That(x[128, 128] < 0.0, "Lower not lowering values.");
+ Assert.That(x[0, 128] < 0.0, "Lower brush affecting edge values.");
}
[Test]
--
cgit v1.1