From e3dd15bef05bbe53b3dac44c320e4182ce7feb68 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 15 Dec 2007 17:10:12 +0000 Subject: [PATCH] * Added support for multiple terrain blocks to be edited at the same time * Now sending South and East cords to the terrain editor.. * No new functionality from a user perspective * Programming wise, there's enough information to get the select based terrain editor working in an upcoming revision. --- OpenSim/Framework/IClientAPI.cs | 2 +- OpenSim/Region/ClientStack/ClientView.cs | 11 +++++++---- .../Region/Environment/Scenes/Scene.PacketHandlers.cs | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index c34fb930d9..62a97e57b2 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -229,7 +229,7 @@ namespace OpenSim.Framework public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 pos); public delegate void ModifyTerrain( - float height, float seconds, byte size, byte action, float north, float west, IClientAPI remoteClient); + float height, float seconds, byte size, byte action, float north, float west, float south, float east, IClientAPI remoteClient); public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam); diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index dffcd7338d..065e5e011a 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs @@ -2453,10 +2453,13 @@ namespace OpenSim.Region.ClientStack { if (OnModifyTerrain != null) { - OnModifyTerrain(modify.ModifyBlock.Height, modify.ModifyBlock.Seconds, - modify.ModifyBlock.BrushSize, - modify.ModifyBlock.Action, modify.ParcelData[0].North, - modify.ParcelData[0].West, this); + for (int i=0; i < modify.ParcelData.Length; i++) + { + OnModifyTerrain(modify.ModifyBlock.Height, modify.ModifyBlock.Seconds, + modify.ModifyBlock.BrushSize, + modify.ModifyBlock.Action, modify.ParcelData[i].North, + modify.ParcelData[i].West, modify.ParcelData[i].South, modify.ParcelData[i].East, this); + } } } break; diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 07e5362e40..ce775278b6 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs @@ -45,7 +45,7 @@ namespace OpenSim.Region.Environment.Scenes /// The action to be performed /// Distance from the north border where the cursor is located /// Distance from the west border where the cursor is located - public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, + public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, float south, float east, IClientAPI remoteUser) { // Do a permissions check before allowing terraforming.