diff options
Diffstat (limited to 'OpenSim/Region/Framework')
4 files changed, 70 insertions, 63 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/ILandObject.cs b/OpenSim/Region/Framework/Interfaces/ILandObject.cs index a4e90d2..c2b1292 100644 --- a/OpenSim/Region/Framework/Interfaces/ILandObject.cs +++ b/OpenSim/Region/Framework/Interfaces/ILandObject.cs | |||
@@ -37,49 +37,49 @@ namespace OpenSim.Region.Framework.Interfaces | |||
37 | 37 | ||
38 | public interface ILandObject | 38 | public interface ILandObject |
39 | { | 39 | { |
40 | int getParcelMaxPrimCount(ILandObject thisObject); | 40 | int GetParcelMaxPrimCount(ILandObject thisObject); |
41 | int getSimulatorMaxPrimCount(ILandObject thisObject); | 41 | int GetSimulatorMaxPrimCount(ILandObject thisObject); |
42 | 42 | ||
43 | LandData landData { get; set; } | 43 | LandData LandData { get; set; } |
44 | bool[,] landBitmap { get; set; } | 44 | bool[,] LandBitmap { get; set; } |
45 | UUID regionUUID { get; } | 45 | UUID RegionUUID { get; } |
46 | bool containsPoint(int x, int y); | 46 | bool ContainsPoint(int x, int y); |
47 | ILandObject Copy(); | 47 | ILandObject Copy(); |
48 | 48 | ||
49 | void sendLandUpdateToAvatarsOverMe(); | 49 | void SendLandUpdateToAvatarsOverMe(); |
50 | 50 | ||
51 | void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client); | 51 | void SendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client); |
52 | void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client); | 52 | void UpdateLandProperties(LandUpdateArgs args, IClientAPI remote_client); |
53 | bool isEitherBannedOrRestricted(UUID avatar); | 53 | bool IsEitherBannedOrRestricted(UUID avatar); |
54 | bool isBannedFromLand(UUID avatar); | 54 | bool IsBannedFromLand(UUID avatar); |
55 | bool isRestrictedFromLand(UUID avatar); | 55 | bool IsRestrictedFromLand(UUID avatar); |
56 | void sendLandUpdateToClient(IClientAPI remote_client); | 56 | void SendLandUpdateToClient(IClientAPI remote_client); |
57 | List<UUID> createAccessListArrayByFlag(AccessList flag); | 57 | List<UUID> CreateAccessListArrayByFlag(AccessList flag); |
58 | void sendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, IClientAPI remote_client); | 58 | void SendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, IClientAPI remote_client); |
59 | void updateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client); | 59 | void UpdateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client); |
60 | void updateLandBitmapByteArray(); | 60 | void UpdateLandBitmapByteArray(); |
61 | void setLandBitmapFromByteArray(); | 61 | void SetLandBitmapFromByteArray(); |
62 | bool[,] getLandBitmap(); | 62 | bool[,] GetLandBitmap(); |
63 | void forceUpdateLandInfo(); | 63 | void ForceUpdateLandInfo(); |
64 | void setLandBitmap(bool[,] bitmap); | 64 | void SetLandBitmap(bool[,] bitmap); |
65 | 65 | ||
66 | bool[,] basicFullRegionLandBitmap(); | 66 | bool[,] BasicFullRegionLandBitmap(); |
67 | bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); | 67 | bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); |
68 | bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); | 68 | bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); |
69 | bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); | 69 | bool[,] MergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); |
70 | void sendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client); | 70 | void SendForceObjectSelect(int local_id, int request_type, List<UUID> returnIDs, IClientAPI remote_client); |
71 | void sendLandObjectOwners(IClientAPI remote_client); | 71 | void SendLandObjectOwners(IClientAPI remote_client); |
72 | void returnObject(SceneObjectGroup obj); | 72 | void ReturnObject(SceneObjectGroup obj); |
73 | void returnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client); | 73 | void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client); |
74 | void resetLandPrimCounts(); | 74 | void ResetLandPrimCounts(); |
75 | void addPrimToCount(SceneObjectGroup obj); | 75 | void AddPrimToCount(SceneObjectGroup obj); |
76 | void removePrimFromCount(SceneObjectGroup obj); | 76 | void RemovePrimFromCount(SceneObjectGroup obj); |
77 | void updateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area); | 77 | void UpdateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area); |
78 | 78 | ||
79 | void deedToGroup(UUID groupID); | 79 | void DeedToGroup(UUID groupID); |
80 | 80 | ||
81 | void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel); | 81 | void SetParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel); |
82 | void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel); | 82 | void SetSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel); |
83 | 83 | ||
84 | /// <summary> | 84 | /// <summary> |
85 | /// Set the media url for this land parcel | 85 | /// Set the media url for this land parcel |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 9db2240..c06a58f 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3206,9 +3206,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3206 | ILandObject land = LandChannel.GetLandObject(agent.startpos.X, agent.startpos.Y); | 3206 | ILandObject land = LandChannel.GetLandObject(agent.startpos.X, agent.startpos.Y); |
3207 | if (land != null) | 3207 | if (land != null) |
3208 | { | 3208 | { |
3209 | if (land.landData.LandingType == (byte)1 && land.landData.UserLocation != Vector3.Zero) | 3209 | if (land.LandData.LandingType == (byte)1 && land.LandData.UserLocation != Vector3.Zero) |
3210 | { | 3210 | { |
3211 | agent.startpos = land.landData.UserLocation; | 3211 | agent.startpos = land.LandData.UserLocation; |
3212 | } | 3212 | } |
3213 | } | 3213 | } |
3214 | } | 3214 | } |
@@ -3846,13 +3846,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
3846 | 3846 | ||
3847 | public LandData GetLandData(float x, float y) | 3847 | public LandData GetLandData(float x, float y) |
3848 | { | 3848 | { |
3849 | return LandChannel.GetLandObject(x, y).landData; | 3849 | return LandChannel.GetLandObject(x, y).LandData; |
3850 | } | 3850 | } |
3851 | 3851 | ||
3852 | public LandData GetLandData(uint x, uint y) | 3852 | public LandData GetLandData(uint x, uint y) |
3853 | { | 3853 | { |
3854 | m_log.DebugFormat("[SCENE]: returning land for {0},{1}", x, y); | 3854 | m_log.DebugFormat("[SCENE]: returning land for {0},{1}", x, y); |
3855 | return LandChannel.GetLandObject((int)x, (int)y).landData; | 3855 | return LandChannel.GetLandObject((int)x, (int)y).LandData; |
3856 | } | 3856 | } |
3857 | 3857 | ||
3858 | 3858 | ||
@@ -3880,14 +3880,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
3880 | { | 3880 | { |
3881 | if (parcel != null) | 3881 | if (parcel != null) |
3882 | { | 3882 | { |
3883 | if ((parcel.landData.Flags & (uint)ParcelFlags.AllowOtherScripts) != 0) | 3883 | if ((parcel.LandData.Flags & (uint)ParcelFlags.AllowOtherScripts) != 0) |
3884 | { | 3884 | { |
3885 | return true; | 3885 | return true; |
3886 | } | 3886 | } |
3887 | else if ((parcel.landData.Flags & (uint)ParcelFlags.AllowGroupScripts) != 0) | 3887 | else if ((parcel.LandData.Flags & (uint)ParcelFlags.AllowGroupScripts) != 0) |
3888 | { | 3888 | { |
3889 | if (part.OwnerID == parcel.landData.OwnerID | 3889 | if (part.OwnerID == parcel.LandData.OwnerID |
3890 | || (parcel.landData.IsGroupOwned && part.GroupID == parcel.landData.GroupID) | 3890 | || (parcel.LandData.IsGroupOwned && part.GroupID == parcel.LandData.GroupID) |
3891 | || Permissions.IsGod(part.OwnerID)) | 3891 | || Permissions.IsGod(part.OwnerID)) |
3892 | { | 3892 | { |
3893 | return true; | 3893 | return true; |
@@ -3899,7 +3899,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3899 | } | 3899 | } |
3900 | else | 3900 | else |
3901 | { | 3901 | { |
3902 | if (part.OwnerID == parcel.landData.OwnerID) | 3902 | if (part.OwnerID == parcel.LandData.OwnerID) |
3903 | { | 3903 | { |
3904 | return true; | 3904 | return true; |
3905 | } | 3905 | } |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 9f44f92..be8a6c9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -1327,15 +1327,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
1327 | ILandObject parcel = m_scene.LandChannel.GetLandObject( | 1327 | ILandObject parcel = m_scene.LandChannel.GetLandObject( |
1328 | m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y); | 1328 | m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y); |
1329 | 1329 | ||
1330 | if (parcel != null && parcel.landData != null && | 1330 | if (parcel != null && parcel.LandData != null && |
1331 | parcel.landData.OtherCleanTime != 0) | 1331 | parcel.LandData.OtherCleanTime != 0) |
1332 | { | 1332 | { |
1333 | if (parcel.landData.OwnerID != OwnerID && | 1333 | if (parcel.LandData.OwnerID != OwnerID && |
1334 | (parcel.landData.GroupID != GroupID || | 1334 | (parcel.LandData.GroupID != GroupID || |
1335 | parcel.landData.GroupID == UUID.Zero)) | 1335 | parcel.LandData.GroupID == UUID.Zero)) |
1336 | { | 1336 | { |
1337 | if ((DateTime.Now - RootPart.Rezzed).TotalMinutes > | 1337 | if ((DateTime.Now - RootPart.Rezzed).TotalMinutes > |
1338 | parcel.landData.OtherCleanTime) | 1338 | parcel.LandData.OtherCleanTime) |
1339 | { | 1339 | { |
1340 | DetachFromBackup(); | 1340 | DetachFromBackup(); |
1341 | m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString()); | 1341 | m_log.InfoFormat("[SCENE]: Returning object {0} due to parcel auto return", RootPart.UUID.ToString()); |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs index b3d10df..709cca2 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs | |||
@@ -94,10 +94,12 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
94 | } | 94 | } |
95 | 95 | ||
96 | // root part should have no offset position or rotation | 96 | // root part should have no offset position or rotation |
97 | Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity); | 97 | Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity, |
98 | "root part should have no offset position or rotation"); | ||
98 | 99 | ||
99 | // offset position should be root part position - part2.absolute position. | 100 | // offset position should be root part position - part2.absolute position. |
100 | Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10)); | 101 | Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10), |
102 | "offset position should be root part position - part2.absolute position."); | ||
101 | 103 | ||
102 | float roll = 0; | 104 | float roll = 0; |
103 | float pitch = 0; | 105 | float pitch = 0; |
@@ -116,7 +118,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
116 | if (debugtest) | 118 | if (debugtest) |
117 | m_log.Debug(rotEuler2); | 119 | m_log.Debug(rotEuler2); |
118 | 120 | ||
119 | Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f)); | 121 | Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f), |
122 | "Not exactly sure what this is asserting..."); | ||
120 | 123 | ||
121 | // Delink part 2 | 124 | // Delink part 2 |
122 | grp1.DelinkFromGroup(part2.LocalId); | 125 | grp1.DelinkFromGroup(part2.LocalId); |
@@ -125,7 +128,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
125 | m_log.Debug("Group2: Prim2: OffsetPosition:" + part2.AbsolutePosition + ", OffsetRotation:" + part2.RotationOffset); | 128 | m_log.Debug("Group2: Prim2: OffsetPosition:" + part2.AbsolutePosition + ", OffsetRotation:" + part2.RotationOffset); |
126 | 129 | ||
127 | Assert.That(grp1.Children.Count, Is.EqualTo(1), "Group 1 still contained part2 after delink."); | 130 | Assert.That(grp1.Children.Count, Is.EqualTo(1), "Group 1 still contained part2 after delink."); |
128 | Assert.That(part2.AbsolutePosition == Vector3.Zero); | 131 | Assert.That(part2.AbsolutePosition == Vector3.Zero, "The absolute position should be zero"); |
129 | } | 132 | } |
130 | 133 | ||
131 | [Test] | 134 | [Test] |
@@ -175,10 +178,10 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
175 | grp3.LinkToGroup(grp4); | 178 | grp3.LinkToGroup(grp4); |
176 | 179 | ||
177 | // At this point we should have 4 parts total in two groups. | 180 | // At this point we should have 4 parts total in two groups. |
178 | Assert.That(grp1.Children.Count == 2); | 181 | Assert.That(grp1.Children.Count == 2, "Group1 children count should be 2"); |
179 | Assert.That(grp2.IsDeleted, "Group 2 was not registered as deleted after link."); | 182 | Assert.That(grp2.IsDeleted, "Group 2 was not registered as deleted after link."); |
180 | Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink."); | 183 | Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink."); |
181 | Assert.That(grp3.Children.Count == 2); | 184 | Assert.That(grp3.Children.Count == 2, "Group3 children count should be 2"); |
182 | Assert.That(grp4.IsDeleted, "Group 4 was not registered as deleted after link."); | 185 | Assert.That(grp4.IsDeleted, "Group 4 was not registered as deleted after link."); |
183 | Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink."); | 186 | Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink."); |
184 | 187 | ||
@@ -201,10 +204,12 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
201 | grp3.RootPart.UpdateFlag = 0; | 204 | grp3.RootPart.UpdateFlag = 0; |
202 | 205 | ||
203 | // root part should have no offset position or rotation | 206 | // root part should have no offset position or rotation |
204 | Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity); | 207 | Assert.That(part1.OffsetPosition == Vector3.Zero && part1.RotationOffset == Quaternion.Identity, |
208 | "root part should have no offset position or rotation (again)"); | ||
205 | 209 | ||
206 | // offset position should be root part position - part2.absolute position. | 210 | // offset position should be root part position - part2.absolute position. |
207 | Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10)); | 211 | Assert.That(part2.OffsetPosition == new Vector3(-10, -10, -10), |
212 | "offset position should be root part position - part2.absolute position (again)"); | ||
208 | 213 | ||
209 | float roll = 0; | 214 | float roll = 0; |
210 | float pitch = 0; | 215 | float pitch = 0; |
@@ -223,7 +228,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
223 | if (debugtest) | 228 | if (debugtest) |
224 | m_log.Debug(rotEuler2); | 229 | m_log.Debug(rotEuler2); |
225 | 230 | ||
226 | Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f)); | 231 | Assert.That(rotEuler2.ApproxEquals(new Vector3(-180, 0, 0), 0.001f) || rotEuler2.ApproxEquals(new Vector3(180, 0, 0), 0.001f), |
232 | "Not sure what this assertion is all about..."); | ||
227 | 233 | ||
228 | // Now we're linking the first group to the third group. This will make the first group child parts of the third one. | 234 | // Now we're linking the first group to the third group. This will make the first group child parts of the third one. |
229 | grp3.LinkToGroup(grp1); | 235 | grp3.LinkToGroup(grp1); |
@@ -246,13 +252,14 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
246 | m_log.Debug("Group3: Prim2: OffsetPosition:" + part4.OffsetPosition + ", OffsetRotation:" + part4.RotationOffset); | 252 | m_log.Debug("Group3: Prim2: OffsetPosition:" + part4.OffsetPosition + ", OffsetRotation:" + part4.RotationOffset); |
247 | } | 253 | } |
248 | 254 | ||
249 | Assert.That(part2.AbsolutePosition == Vector3.Zero); | 255 | Assert.That(part2.AbsolutePosition == Vector3.Zero, "Badness 1"); |
250 | Assert.That(part4.OffsetPosition == new Vector3(20, 20, 20)); | 256 | Assert.That(part4.OffsetPosition == new Vector3(20, 20, 20), "Badness 2"); |
251 | Quaternion compareQuaternion = new Quaternion(0, 0.7071068f, 0, 0.7071068f); | 257 | Quaternion compareQuaternion = new Quaternion(0, 0.7071068f, 0, 0.7071068f); |
252 | Assert.That((part4.RotationOffset.X - compareQuaternion.X < 0.00003) | 258 | Assert.That((part4.RotationOffset.X - compareQuaternion.X < 0.00003) |
253 | && (part4.RotationOffset.Y - compareQuaternion.Y < 0.00003) | 259 | && (part4.RotationOffset.Y - compareQuaternion.Y < 0.00003) |
254 | && (part4.RotationOffset.Z - compareQuaternion.Z < 0.00003) | 260 | && (part4.RotationOffset.Z - compareQuaternion.Z < 0.00003) |
255 | && (part4.RotationOffset.W - compareQuaternion.W < 0.00003)); | 261 | && (part4.RotationOffset.W - compareQuaternion.W < 0.00003), |
262 | "Badness 3"); | ||
256 | } | 263 | } |
257 | } | 264 | } |
258 | } | 265 | } |