From 8f0b03597b0bc8ea6873af9a55495407fae1ec56 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Wed, 19 Sep 2007 00:30:55 +0000
Subject: * Modernized ScriptManager to new interface-based module calls. *
'remove redundant this qualifier' ftw
---
OpenSim/Region/Environment/LandManagement/Land.cs | 149 ++++++++++++---------
.../Environment/LandManagement/LandManager.cs | 122 +++++++++--------
2 files changed, 151 insertions(+), 120 deletions(-)
(limited to 'OpenSim/Region/Environment/LandManagement')
diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs
index a1d8885..4d36650 100644
--- a/OpenSim/Region/Environment/LandManagement/Land.cs
+++ b/OpenSim/Region/Environment/LandManagement/Land.cs
@@ -8,37 +8,40 @@ using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.Environment.LandManagement
{
+
#region Parcel Class
+
///
/// Keeps track of a specific piece of land's information
///
public class Land
{
#region Member Variables
+
public LandData landData = new LandData();
public List primsOverMe = new List();
public Scene m_scene;
- private bool[,] landBitmap = new bool[64, 64];
+ private bool[,] landBitmap = new bool[64,64];
#endregion
-
#region Constructors
+
public Land(LLUUID owner_id, bool is_group_owned, Scene scene)
{
m_scene = scene;
landData.ownerID = owner_id;
landData.isGroupOwned = is_group_owned;
-
}
- #endregion
+ #endregion
#region Member Functions
#region General Functions
+
///
/// Checks to see if this land object contains a point
///
@@ -49,7 +52,7 @@ namespace OpenSim.Region.Environment.LandManagement
{
if (x >= 0 && y >= 0 && x <= 256 && x <= 256)
{
- return (landBitmap[x / 4, y / 4] == true);
+ return (landBitmap[x/4, y/4] == true);
}
else
{
@@ -59,10 +62,10 @@ namespace OpenSim.Region.Environment.LandManagement
public Land Copy()
{
- Land newLand = new Land(this.landData.ownerID, this.landData.isGroupOwned, m_scene);
+ Land newLand = new Land(landData.ownerID, landData.isGroupOwned, m_scene);
//Place all new variables here!
- newLand.landBitmap = (bool[,])(this.landBitmap.Clone());
+ newLand.landBitmap = (bool[,]) (landBitmap.Clone());
newLand.landData = landData.Copy();
return newLand;
@@ -70,17 +73,17 @@ namespace OpenSim.Region.Environment.LandManagement
#endregion
-
#region Packet Request Handling
+
///
/// Sends land properties as requested
///
/// ID sent by client for them to keep track of
/// Bool sent by client for them to use
/// Object representing the client
- public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client)
+ public void sendLandProperties(int sequence_id, bool snap_selection, int request_result,
+ IClientAPI remote_client)
{
-
ParcelPropertiesPacket updatePacket = new ParcelPropertiesPacket();
updatePacket.ParcelData.AABBMax = landData.AABBMax;
updatePacket.ParcelData.AABBMin = landData.AABBMin;
@@ -91,17 +94,20 @@ namespace OpenSim.Region.Environment.LandManagement
updatePacket.ParcelData.Bitmap = landData.landBitmapByteArray;
updatePacket.ParcelData.Desc = Helpers.StringToField(landData.landDesc);
- updatePacket.ParcelData.Category = (byte)landData.category;
+ updatePacket.ParcelData.Category = (byte) landData.category;
updatePacket.ParcelData.ClaimDate = landData.claimDate;
updatePacket.ParcelData.ClaimPrice = landData.claimPrice;
updatePacket.ParcelData.GroupID = landData.groupID;
updatePacket.ParcelData.GroupPrims = landData.groupPrims;
updatePacket.ParcelData.IsGroupOwned = landData.isGroupOwned;
- updatePacket.ParcelData.LandingType = (byte)landData.landingType;
+ updatePacket.ParcelData.LandingType = (byte) landData.landingType;
updatePacket.ParcelData.LocalID = landData.localID;
if (landData.area > 0)
{
- updatePacket.ParcelData.MaxPrims = Convert.ToInt32(Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * 15000 * Convert.ToDecimal(m_scene.RegionInfo.estateSettings.objectBonusFactor)));
+ updatePacket.ParcelData.MaxPrims =
+ Convert.ToInt32(
+ Math.Round((Convert.ToDecimal(landData.area)/Convert.ToDecimal(65536))*15000*
+ Convert.ToDecimal(m_scene.RegionInfo.estateSettings.objectBonusFactor)));
}
else
{
@@ -122,22 +128,29 @@ namespace OpenSim.Region.Environment.LandManagement
updatePacket.ParcelData.PassHours = landData.passHours;
updatePacket.ParcelData.PassPrice = landData.passPrice;
updatePacket.ParcelData.PublicCount = 0; //unemplemented
-
- uint regionFlags = (uint)m_scene.RegionInfo.estateSettings.regionFlags;
- updatePacket.ParcelData.RegionDenyAnonymous = ((regionFlags & (uint)Simulator.RegionFlags.DenyAnonymous) > 0);
- updatePacket.ParcelData.RegionDenyIdentified = ((regionFlags & (uint)Simulator.RegionFlags.DenyIdentified) > 0);
- updatePacket.ParcelData.RegionDenyTransacted = ((regionFlags & (uint)Simulator.RegionFlags.DenyTransacted) > 0);
- updatePacket.ParcelData.RegionPushOverride = ((regionFlags & (uint)Simulator.RegionFlags.RestrictPushObject) > 0);
-
+
+ uint regionFlags = (uint) m_scene.RegionInfo.estateSettings.regionFlags;
+ updatePacket.ParcelData.RegionDenyAnonymous = ((regionFlags & (uint) Simulator.RegionFlags.DenyAnonymous) >
+ 0);
+ updatePacket.ParcelData.RegionDenyIdentified = ((regionFlags & (uint) Simulator.RegionFlags.DenyIdentified) >
+ 0);
+ updatePacket.ParcelData.RegionDenyTransacted = ((regionFlags & (uint) Simulator.RegionFlags.DenyTransacted) >
+ 0);
+ updatePacket.ParcelData.RegionPushOverride = ((regionFlags & (uint) Simulator.RegionFlags.RestrictPushObject) >
+ 0);
+
updatePacket.ParcelData.RentPrice = 0;
updatePacket.ParcelData.RequestResult = request_result;
updatePacket.ParcelData.SalePrice = landData.salePrice;
updatePacket.ParcelData.SelectedPrims = landData.selectedPrims;
- updatePacket.ParcelData.SelfCount = 0;//unemplemented
+ updatePacket.ParcelData.SelfCount = 0; //unemplemented
updatePacket.ParcelData.SequenceID = sequence_id;
if (landData.simwideArea > 0)
{
- updatePacket.ParcelData.SimWideMaxPrims = Convert.ToInt32(Math.Round((Convert.ToDecimal(landData.simwideArea) / Convert.ToDecimal(65536)) * 15000 * Convert.ToDecimal(m_scene.RegionInfo.estateSettings.objectBonusFactor)));
+ updatePacket.ParcelData.SimWideMaxPrims =
+ Convert.ToInt32(
+ Math.Round((Convert.ToDecimal(landData.simwideArea)/Convert.ToDecimal(65536))*15000*
+ Convert.ToDecimal(m_scene.RegionInfo.estateSettings.objectBonusFactor)));
}
else
{
@@ -146,11 +159,12 @@ namespace OpenSim.Region.Environment.LandManagement
updatePacket.ParcelData.SimWideTotalPrims = landData.simwidePrims;
updatePacket.ParcelData.SnapSelection = snap_selection;
updatePacket.ParcelData.SnapshotID = landData.snapshotID;
- updatePacket.ParcelData.Status = (byte)landData.landStatus;
- updatePacket.ParcelData.TotalPrims = landData.ownerPrims + landData.groupPrims + landData.otherPrims + landData.selectedPrims;
+ updatePacket.ParcelData.Status = (byte) landData.landStatus;
+ updatePacket.ParcelData.TotalPrims = landData.ownerPrims + landData.groupPrims + landData.otherPrims +
+ landData.selectedPrims;
updatePacket.ParcelData.UserLocation = landData.userLocation;
updatePacket.ParcelData.UserLookAt = landData.userLookAt;
- remote_client.OutPacket((Packet)updatePacket);
+ remote_client.OutPacket((Packet) updatePacket);
}
public void updateLandProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client)
@@ -159,7 +173,7 @@ namespace OpenSim.Region.Environment.LandManagement
{
//Needs later group support
landData.authBuyerID = packet.ParcelData.AuthBuyerID;
- landData.category = (libsecondlife.Parcel.ParcelCategory)packet.ParcelData.Category;
+ landData.category = (Parcel.ParcelCategory) packet.ParcelData.Category;
landData.landDesc = Helpers.FieldToUTF8String(packet.ParcelData.Desc);
landData.groupID = packet.ParcelData.GroupID;
landData.landingType = packet.ParcelData.LandingType;
@@ -176,8 +190,6 @@ namespace OpenSim.Region.Environment.LandManagement
landData.userLocation = packet.ParcelData.UserLocation;
landData.userLookAt = packet.ParcelData.UserLookAt;
sendLandUpdateToAvatarsOverMe();
-
-
}
}
@@ -186,17 +198,20 @@ namespace OpenSim.Region.Environment.LandManagement
List avatars = m_scene.RequestAvatarList();
for (int i = 0; i < avatars.Count; i++)
{
- Land over = m_scene.LandManager.getLandObject((int)Math.Round(avatars[i].AbsolutePosition.X), (int)Math.Round(avatars[i].AbsolutePosition.Y));
- if (over.landData.localID == this.landData.localID)
+ Land over =
+ m_scene.LandManager.getLandObject((int) Math.Round(avatars[i].AbsolutePosition.X),
+ (int) Math.Round(avatars[i].AbsolutePosition.Y));
+ if (over.landData.localID == landData.localID)
{
sendLandProperties(0, false, 0, avatars[i].ControllingClient);
}
}
}
- #endregion
+ #endregion
#region Update Functions
+
///
/// Updates the AABBMin and AABBMax values after area/shape modification of the land object
///
@@ -222,8 +237,12 @@ namespace OpenSim.Region.Environment.LandManagement
}
}
}
- landData.AABBMin = new LLVector3((float)(min_x * 4), (float)(min_y * 4), (float)m_scene.Terrain.GetHeight((min_x * 4), (min_y * 4)));
- landData.AABBMax = new LLVector3((float)(max_x * 4), (float)(max_y * 4), (float)m_scene.Terrain.GetHeight((max_x * 4), (max_y * 4)));
+ landData.AABBMin =
+ new LLVector3((float) (min_x*4), (float) (min_y*4),
+ (float) m_scene.Terrain.GetHeight((min_x*4), (min_y*4)));
+ landData.AABBMax =
+ new LLVector3((float) (max_x*4), (float) (max_y*4),
+ (float) m_scene.Terrain.GetHeight((max_x*4), (max_y*4)));
landData.area = tempArea;
}
@@ -237,18 +256,19 @@ namespace OpenSim.Region.Environment.LandManagement
///
public void forceUpdateLandInfo()
{
- this.updateAABBAndAreaValues();
- this.updateLandBitmapByteArray();
+ updateAABBAndAreaValues();
+ updateLandBitmapByteArray();
}
public void setLandBitmapFromByteArray()
{
landBitmap = convertBytesToLandBitmap();
}
- #endregion
+ #endregion
#region Land Bitmap Functions
+
///
/// Sets the land's bitmap manually
///
@@ -265,9 +285,9 @@ namespace OpenSim.Region.Environment.LandManagement
//Valid: Lets set it
landBitmap = bitmap;
forceUpdateLandInfo();
-
}
}
+
///
/// Gets the land's bitmap manually
///
@@ -276,6 +296,7 @@ namespace OpenSim.Region.Environment.LandManagement
{
return landBitmap;
}
+
///
/// Converts the land bitmap to a packet friendly byte array
///
@@ -290,11 +311,11 @@ namespace OpenSim.Region.Environment.LandManagement
{
for (x = 0; x < 64; x++)
{
- tempByte = Convert.ToByte(tempByte | Convert.ToByte(landBitmap[x, y]) << (i++ % 8));
- if (i % 8 == 0)
+ tempByte = Convert.ToByte(tempByte | Convert.ToByte(landBitmap[x, y]) << (i++%8));
+ if (i%8 == 0)
{
tempConvertArr[byteNum] = tempByte;
- tempByte = (byte)0;
+ tempByte = (byte) 0;
i = 0;
byteNum++;
}
@@ -305,7 +326,7 @@ namespace OpenSim.Region.Environment.LandManagement
private bool[,] convertBytesToLandBitmap()
{
- bool[,] tempConvertMap = new bool[64, 64];
+ bool[,] tempConvertMap = new bool[64,64];
tempConvertMap.Initialize();
byte tempByte = 0;
int x = 0, y = 0, i = 0, bitNum = 0;
@@ -314,7 +335,7 @@ namespace OpenSim.Region.Environment.LandManagement
tempByte = landData.landBitmapByteArray[i];
for (bitNum = 0; bitNum < 8; bitNum++)
{
- bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte)1);
+ bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte) 1);
tempConvertMap[x, y] = bit;
x++;
if (x > 63)
@@ -322,12 +343,11 @@ namespace OpenSim.Region.Environment.LandManagement
x = 0;
y++;
}
-
}
-
}
return tempConvertMap;
}
+
///
/// Full sim land object creation
///
@@ -347,8 +367,7 @@ namespace OpenSim.Region.Environment.LandManagement
///
public static bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y)
{
-
- bool[,] tempBitmap = new bool[64, 64];
+ bool[,] tempBitmap = new bool[64,64];
tempBitmap.Initialize();
tempBitmap = modifyLandBitmapSquare(tempBitmap, start_x, start_y, end_x, end_y, true);
@@ -365,7 +384,8 @@ namespace OpenSim.Region.Environment.LandManagement
///
///
///
- public static bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value)
+ public static bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y,
+ bool set_value)
{
if (land_bitmap.GetLength(0) != 64 || land_bitmap.GetLength(1) != 64 || land_bitmap.Rank != 2)
{
@@ -378,8 +398,8 @@ namespace OpenSim.Region.Environment.LandManagement
{
for (x = 0; x < 64; x++)
{
- if (x >= start_x / 4 && x < end_x / 4
- && y >= start_y / 4 && y < end_y / 4)
+ if (x >= start_x/4 && x < end_x/4
+ && y >= start_y/4 && y < end_y/4)
{
land_bitmap[x, y] = set_value;
}
@@ -387,6 +407,7 @@ namespace OpenSim.Region.Environment.LandManagement
}
return land_bitmap;
}
+
///
/// Join the true values of 2 bitmaps together
///
@@ -404,7 +425,6 @@ namespace OpenSim.Region.Environment.LandManagement
{
//Throw an exception - The bitmap is not 64x64
throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_add in mergeLandBitmaps");
-
}
int x, y;
@@ -420,9 +440,11 @@ namespace OpenSim.Region.Environment.LandManagement
}
return bitmap_base;
}
+
#endregion
#region Object Select and Object Owner Listing
+
public void sendForceObjectSelect(int local_id, int request_type, IClientAPI remote_client)
{
List resultLocalIDs = new List();
@@ -430,15 +452,16 @@ namespace OpenSim.Region.Environment.LandManagement
{
if (obj.LocalId > 0)
{
- if (request_type == LandManager.LAND_SELECT_OBJECTS_OWNER && obj.OwnerID == this.landData.ownerID)
+ if (request_type == LandManager.LAND_SELECT_OBJECTS_OWNER && obj.OwnerID == landData.ownerID)
{
resultLocalIDs.Add(obj.LocalId);
}
- else if (request_type == LandManager.LAND_SELECT_OBJECTS_GROUP && false) //TODO: change false to group support!
+ else if (request_type == LandManager.LAND_SELECT_OBJECTS_GROUP && false)
+ //TODO: change false to group support!
{
-
}
- else if (request_type == LandManager.LAND_SELECT_OBJECTS_OTHER && obj.OwnerID != remote_client.AgentId)
+ else if (request_type == LandManager.LAND_SELECT_OBJECTS_OTHER &&
+ obj.OwnerID != remote_client.AgentId)
{
resultLocalIDs.Add(obj.LocalId);
}
@@ -479,10 +502,10 @@ namespace OpenSim.Region.Environment.LandManagement
resultLocalIDs.RemoveAt(0);
}
pack.Data = data;
- remote_client.OutPacket((Packet)pack);
+ remote_client.OutPacket((Packet) pack);
}
-
}
+
public void sendLandObjectOwners(IClientAPI remote_client)
{
Dictionary ownersAndCount = new Dictionary();
@@ -496,7 +519,6 @@ namespace OpenSim.Region.Environment.LandManagement
}
if (ownersAndCount.Count > 0)
{
-
ParcelObjectOwnersReplyPacket.DataBlock[] dataBlock = new ParcelObjectOwnersReplyPacket.DataBlock[32];
if (ownersAndCount.Count < 32)
@@ -522,19 +544,23 @@ namespace OpenSim.Region.Environment.LandManagement
remote_client.OutPacket(pack);
}
}
+
#endregion
#region Object Returning
+
public void returnObject(SceneObjectGroup obj)
{
}
+
public void returnLandObjects(int type, LLUUID owner)
{
-
}
+
#endregion
#region Object Adding/Removing from Parcel
+
public void resetLandPrimCounts()
{
landData.groupPrims = 0;
@@ -566,7 +592,6 @@ namespace OpenSim.Region.Environment.LandManagement
}
primsOverMe.Add(obj);
-
}
public void removePrimFromCount(SceneObjectGroup obj)
@@ -592,11 +617,11 @@ namespace OpenSim.Region.Environment.LandManagement
primsOverMe.Remove(obj);
}
}
- #endregion
#endregion
-
+ #endregion
}
+
#endregion
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs
index 8e49811..843c0f5 100644
--- a/OpenSim/Region/Environment/LandManagement/LandManager.cs
+++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs
@@ -36,34 +36,34 @@ using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.Environment.LandManagement
{
-
#region LandManager Class
+
///
/// Handles Land objects and operations requiring information from other Land objects (divide, join, etc)
///
public class LandManager
{
-
#region Constants
+
//Land types set with flags in ParcelOverlay.
//Only one of these can be used.
- public const byte LAND_TYPE_PUBLIC = (byte)0; //Equals 00000000
- public const byte LAND_TYPE_OWNED_BY_OTHER = (byte)1; //Equals 00000001
- public const byte LAND_TYPE_OWNED_BY_GROUP = (byte)2; //Equals 00000010
- public const byte LAND_TYPE_OWNED_BY_REQUESTER = (byte)3; //Equals 00000011
- public const byte LAND_TYPE_IS_FOR_SALE = (byte)4; //Equals 00000100
- public const byte LAND_TYPE_IS_BEING_AUCTIONED = (byte)5; //Equals 00000101
+ public const byte LAND_TYPE_PUBLIC = (byte) 0; //Equals 00000000
+ public const byte LAND_TYPE_OWNED_BY_OTHER = (byte) 1; //Equals 00000001
+ public const byte LAND_TYPE_OWNED_BY_GROUP = (byte) 2; //Equals 00000010
+ public const byte LAND_TYPE_OWNED_BY_REQUESTER = (byte) 3; //Equals 00000011
+ public const byte LAND_TYPE_IS_FOR_SALE = (byte) 4; //Equals 00000100
+ public const byte LAND_TYPE_IS_BEING_AUCTIONED = (byte) 5; //Equals 00000101
//Flags that when set, a border on the given side will be placed
//NOTE: North and East is assumable by the west and south sides (if land to east has a west border, then I have an east border; etc)
//This took forever to figure out -- jeesh. /blame LL for even having to send these
- public const byte LAND_FLAG_PROPERTY_BORDER_WEST = (byte)64; //Equals 01000000
- public const byte LAND_FLAG_PROPERTY_BORDER_SOUTH = (byte)128; //Equals 10000000
+ public const byte LAND_FLAG_PROPERTY_BORDER_WEST = (byte) 64; //Equals 01000000
+ public const byte LAND_FLAG_PROPERTY_BORDER_SOUTH = (byte) 128; //Equals 10000000
//RequestResults (I think these are right, they seem to work):
- public const int LAND_RESULT_SINGLE = 0; // The request they made contained only a single piece of land
- public const int LAND_RESULT_MULTIPLE = 1; // The request they made contained more than a single peice of land
+ public const int LAND_RESULT_SINGLE = 0; // The request they made contained only a single piece of land
+ public const int LAND_RESULT_MULTIPLE = 1; // The request they made contained more than a single peice of land
//ParcelSelectObjects
public const int LAND_SELECT_OBJECTS_OWNER = 2;
@@ -73,12 +73,14 @@ namespace OpenSim.Region.Environment.LandManagement
//These are other constants. Yay!
public const int START_LAND_LOCAL_ID = 1;
+
#endregion
#region Member Variables
+
public Dictionary landList = new Dictionary();
private int lastLandLocalID = START_LAND_LOCAL_ID - 1;
- private int[,] landIDList = new int[64, 64];
+ private int[,] landIDList = new int[64,64];
///
/// Set to true when a prim is moved, created, added. Performs a prim count update
@@ -91,35 +93,37 @@ namespace OpenSim.Region.Environment.LandManagement
#endregion
#region Constructors
+
public LandManager(Scene scene, RegionInfo reginfo)
{
-
m_scene = scene;
m_regInfo = reginfo;
landIDList.Initialize();
-
}
+
#endregion
#region Member Functions
#region Parcel From Storage Functions
+
public void LandFromStorage(LandData data)
{
Land new_land = new Land(data.ownerID, data.isGroupOwned, m_scene);
new_land.landData = data.Copy();
new_land.setLandBitmapFromByteArray();
addLandObject(new_land);
-
}
public void NoLandDataFromStorage()
{
resetSimLandObjects();
}
+
#endregion
#region Parcel Add/Remove/Get/Create
+
///
/// Creates a basic Parcel object without an owner (a zeroed key)
///
@@ -155,8 +159,8 @@ namespace OpenSim.Region.Environment.LandManagement
landList[lastLandLocalID].forceUpdateLandInfo();
return new_land;
-
}
+
///
/// Removes a land object from the list. Will not remove if local_id is still owning an area in landIDList
///
@@ -194,6 +198,7 @@ namespace OpenSim.Region.Environment.LandManagement
}
removeLandObject(slave.landData.localID);
}
+
///
/// Get the land object at the specified point
///
@@ -202,16 +207,16 @@ namespace OpenSim.Region.Environment.LandManagement
/// Land object at the point supplied
public Land getLandObject(float x_float, float y_float)
{
- int x = Convert.ToInt32(Math.Floor(Convert.ToDouble(x_float) / Convert.ToDouble(4.0)));
- int y = Convert.ToInt32(Math.Floor(Convert.ToDouble(y_float) / Convert.ToDouble(4.0)));
-
+ int x = Convert.ToInt32(Math.Floor(Convert.ToDouble(x_float)/Convert.ToDouble(4.0)));
+ int y = Convert.ToInt32(Math.Floor(Convert.ToDouble(y_float)/Convert.ToDouble(4.0)));
+
if (x > 63 || y > 63 || x < 0 || y < 0)
{
throw new Exception("Error: Parcel not found at point " + x + ", " + y);
}
else
{
- // Console.WriteLine("Point (" + x + ", " + y + ") determined from point (" + x_float + ", " + y_float + ")");
+ // Console.WriteLine("Point (" + x + ", " + y + ") determined from point (" + x_float + ", " + y_float + ")");
return landList[landIDList[x, y]];
}
}
@@ -224,12 +229,14 @@ namespace OpenSim.Region.Environment.LandManagement
}
else
{
- return landList[landIDList[x / 4, y / 4]];
+ return landList[landIDList[x/4, y/4]];
}
}
+
#endregion
#region Parcel Modification
+
///
/// Subdivides a piece of land
///
@@ -241,7 +248,6 @@ namespace OpenSim.Region.Environment.LandManagement
/// Returns true if successful
private bool subdivide(int start_x, int start_y, int end_x, int end_y, LLUUID attempting_user_id)
{
-
//First, lets loop through the points and make sure they are all in the same peice of land
//Get the land object at start
Land startLandObject = getLandObject(start_x, start_y);
@@ -284,21 +290,21 @@ namespace OpenSim.Region.Environment.LandManagement
//Now, lets set the subdivision area of the original to false
int startLandObjectIndex = startLandObject.landData.localID;
- landList[startLandObjectIndex].setLandBitmap(Land.modifyLandBitmapSquare(startLandObject.getLandBitmap(), start_x, start_y, end_x, end_y, false));
+ landList[startLandObjectIndex].setLandBitmap(
+ Land.modifyLandBitmapSquare(startLandObject.getLandBitmap(), start_x, start_y, end_x, end_y, false));
landList[startLandObjectIndex].forceUpdateLandInfo();
- this.setPrimsTainted();
+ setPrimsTainted();
//Now add the new land object
Land result = addLandObject(newLand);
result.sendLandUpdateToAvatarsOverMe();
-
-
return true;
}
+
///
/// Join 2 land objects together
///
@@ -320,7 +326,7 @@ namespace OpenSim.Region.Environment.LandManagement
{
for (stepXSelected = start_x; stepXSelected <= end_x; stepXSelected += 4)
{
- Land p = getLandObject(stepXSelected,stepYSelected);
+ Land p = getLandObject(stepXSelected, stepYSelected);
if (!selectedLandObjects.Contains(p))
{
selectedLandObjects.Add(p);
@@ -330,7 +336,7 @@ namespace OpenSim.Region.Environment.LandManagement
Land masterLandObject = selectedLandObjects[0];
selectedLandObjects.RemoveAt(0);
-
+
if (selectedLandObjects.Count < 1)
{
return false; //Only one piece of land selected
@@ -348,23 +354,23 @@ namespace OpenSim.Region.Environment.LandManagement
}
foreach (Land slaveLandObject in selectedLandObjects)
{
- landList[masterLandObject.landData.localID].setLandBitmap(Land.mergeLandBitmaps(masterLandObject.getLandBitmap(), slaveLandObject.getLandBitmap()));
+ landList[masterLandObject.landData.localID].setLandBitmap(
+ Land.mergeLandBitmaps(masterLandObject.getLandBitmap(), slaveLandObject.getLandBitmap()));
performFinalLandJoin(masterLandObject, slaveLandObject);
}
- this.setPrimsTainted();
+ setPrimsTainted();
masterLandObject.sendLandUpdateToAvatarsOverMe();
return true;
-
-
-
}
+
#endregion
#region Parcel Updating
+
///
/// Where we send the ParcelOverlay packet to the client
///
@@ -382,15 +388,17 @@ namespace OpenSim.Region.Environment.LandManagement
{
for (x = 0; x < 64; x++)
{
- byte tempByte = (byte)0; //This represents the byte for the current 4x4
- Land currentParcelBlock = getLandObject(x * 4, y * 4);
+ byte tempByte = (byte) 0; //This represents the byte for the current 4x4
+ Land currentParcelBlock = getLandObject(x*4, y*4);
if (currentParcelBlock.landData.ownerID == remote_client.AgentId)
{
//Owner Flag
tempByte = Convert.ToByte(tempByte | LAND_TYPE_OWNED_BY_REQUESTER);
}
- else if (currentParcelBlock.landData.salePrice > 0 && (currentParcelBlock.landData.authBuyerID == LLUUID.Zero || currentParcelBlock.landData.authBuyerID == remote_client.AgentId))
+ else if (currentParcelBlock.landData.salePrice > 0 &&
+ (currentParcelBlock.landData.authBuyerID == LLUUID.Zero ||
+ currentParcelBlock.landData.authBuyerID == remote_client.AgentId))
{
//Sale Flag
tempByte = Convert.ToByte(tempByte | LAND_TYPE_IS_FOR_SALE);
@@ -412,7 +420,7 @@ namespace OpenSim.Region.Environment.LandManagement
{
tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_WEST);
}
- else if (getLandObject((x - 1) * 4, y * 4) != currentParcelBlock)
+ else if (getLandObject((x - 1)*4, y*4) != currentParcelBlock)
{
tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_WEST);
}
@@ -421,7 +429,7 @@ namespace OpenSim.Region.Environment.LandManagement
{
tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_SOUTH);
}
- else if (getLandObject(x * 4, (y - 1) * 4) != currentParcelBlock)
+ else if (getLandObject(x*4, (y - 1)*4) != currentParcelBlock)
{
tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_SOUTH);
}
@@ -434,17 +442,16 @@ namespace OpenSim.Region.Environment.LandManagement
packet = new ParcelOverlayPacket();
packet.ParcelData.Data = byteArray;
packet.ParcelData.SequenceID = sequenceID;
- remote_client.OutPacket((Packet)packet);
+ remote_client.OutPacket((Packet) packet);
sequenceID++;
byteArray = new byte[LAND_BLOCKS_PER_PACKET];
}
}
}
-
-
}
- public void handleParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client)
+ public void handleParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id,
+ bool snap_selection, IClientAPI remote_client)
{
//Get the land objects within the bounds
List temp = new List();
@@ -486,14 +493,15 @@ namespace OpenSim.Region.Environment.LandManagement
landList[packet.ParcelData.LocalID].updateLandProperties(packet, remote_client);
}
}
+
public void handleParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client)
{
subdivide(west, south, east, north, remote_client.AgentId);
}
+
public void handleParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client)
{
join(west, south, east, north, remote_client.AgentId);
-
}
public void handleParcelSelectObjectsRequest(int local_id, int request_type, IClientAPI remote_client)
@@ -505,6 +513,7 @@ namespace OpenSim.Region.Environment.LandManagement
{
landList[local_id].sendLandObjectOwners(remote_client);
}
+
#endregion
///
@@ -523,7 +532,6 @@ namespace OpenSim.Region.Environment.LandManagement
fullSimParcel.landData.ownerID = m_regInfo.MasterAvatarAssignedUUID;
addLandObject(fullSimParcel);
-
}
@@ -532,7 +540,7 @@ namespace OpenSim.Region.Environment.LandManagement
ScenePresence clientAvatar = m_scene.RequestAvatar(remote_client.AgentId);
if (clientAvatar != null)
{
- Land over = getLandObject(clientAvatar.AbsolutePosition.X,clientAvatar.AbsolutePosition.Y);
+ Land over = getLandObject(clientAvatar.AbsolutePosition.X, clientAvatar.AbsolutePosition.Y);
if (over != null)
{
over.sendLandProperties(0, false, 0, remote_client);
@@ -547,9 +555,10 @@ namespace OpenSim.Region.Environment.LandManagement
p.resetLandPrimCounts();
}
}
+
public void setPrimsTainted()
{
- this.landPrimCountTainted = true;
+ landPrimCountTainted = true;
}
public void addPrimToLandPrimCounts(SceneObjectGroup obj)
@@ -573,14 +582,14 @@ namespace OpenSim.Region.Environment.LandManagement
public void finalizeLandPrimCountUpdate()
{
//Get Simwide prim count for owner
- Dictionary> landOwnersAndParcels = new Dictionary>();
+ Dictionary> landOwnersAndParcels = new Dictionary>();
foreach (Land p in landList.Values)
{
- if(!landOwnersAndParcels.ContainsKey(p.landData.ownerID))
+ if (!landOwnersAndParcels.ContainsKey(p.landData.ownerID))
{
List tempList = new List();
tempList.Add(p);
- landOwnersAndParcels.Add(p.landData.ownerID,tempList);
+ landOwnersAndParcels.Add(p.landData.ownerID, tempList);
}
else
{
@@ -595,7 +604,8 @@ namespace OpenSim.Region.Environment.LandManagement
foreach (Land p in landOwnersAndParcels[owner])
{
simArea += p.landData.area;
- simPrims += p.landData.ownerPrims + p.landData.otherPrims + p.landData.groupPrims + p.landData.selectedPrims;
+ simPrims += p.landData.ownerPrims + p.landData.otherPrims + p.landData.groupPrims +
+ p.landData.selectedPrims;
}
foreach (Land p in landOwnersAndParcels[owner])
@@ -604,14 +614,10 @@ namespace OpenSim.Region.Environment.LandManagement
p.landData.simwidePrims = simPrims;
}
}
-
}
+
#endregion
}
- #endregion
-
-
-
-
-}
+ #endregion
+}
\ No newline at end of file
--
cgit v1.1