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 +++++++++++++---------
1 file changed, 87 insertions(+), 62 deletions(-)
(limited to 'OpenSim/Region/Environment/LandManagement/Land.cs')
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
--
cgit v1.1