diff options
Diffstat (limited to 'OpenSim')
5 files changed, 104 insertions, 56 deletions
diff --git a/OpenSim/Framework/ILandObject.cs b/OpenSim/Framework/ILandObject.cs index 02775e9..5a55b02 100644 --- a/OpenSim/Framework/ILandObject.cs +++ b/OpenSim/Framework/ILandObject.cs | |||
@@ -92,8 +92,12 @@ namespace OpenSim.Framework | |||
92 | /// Create a square land bitmap. | 92 | /// Create a square land bitmap. |
93 | /// </summary> | 93 | /// </summary> |
94 | /// <remarks> | 94 | /// <remarks> |
95 | /// Land co-ordinates are zero indexed. At the moment, the smallest parcel of land is 4m x 4m, so if the | 95 | /// Land co-ordinates are zero indexed. The inputs are treated as points. So if you want to create a bitmap |
96 | /// region is 256 x 256m (the SL size), the largest land parcel starts at (0,0) and ends at (63,63). | 96 | /// that covers an entire 256 x 256m region apart from a strip of land on the east, then you would need to |
97 | /// specify start_x = 0, start_y = 0, end_x = 252 (or anything up to 255), end_y = 256. | ||
98 | /// | ||
99 | /// At the moment, the smallest parcel of land is 4m x 4m, so if the | ||
100 | /// region is 256 x 256m (the SL size), the bitmap returned will start at (0,0) and end at (63,63). | ||
97 | /// </remarks> | 101 | /// </remarks> |
98 | /// <param name="start_x"></param> | 102 | /// <param name="start_x"></param> |
99 | /// <param name="start_y"></param> | 103 | /// <param name="start_y"></param> |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index abc7a3a..bfab7b8 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -612,6 +612,10 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
612 | { | 612 | { |
613 | if (landBitmap[x, y]) | 613 | if (landBitmap[x, y]) |
614 | { | 614 | { |
615 | // m_log.DebugFormat( | ||
616 | // "[LAND MANAGEMENT MODULE]: Registering parcel {0} for land co-ord ({1}, {2}) on {3}", | ||
617 | // new_land.LandData.Name, x, y, m_scene.RegionInfo.RegionName); | ||
618 | |||
615 | m_landIDList[x, y] = newLandLocalID; | 619 | m_landIDList[x, y] = newLandLocalID; |
616 | } | 620 | } |
617 | } | 621 | } |
@@ -741,8 +745,16 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
741 | // Corner case. If an autoreturn happens during sim startup | 745 | // Corner case. If an autoreturn happens during sim startup |
742 | // we will come here with the list uninitialized | 746 | // we will come here with the list uninitialized |
743 | // | 747 | // |
748 | int landId = m_landIDList[x, y]; | ||
749 | |||
750 | // if (landId == 0) | ||
751 | // m_log.DebugFormat( | ||
752 | // "[LAND MANAGEMENT MODULE]: No land object found at ({0}, {1}) on {2}", | ||
753 | // x, y, m_scene.RegionInfo.RegionName); | ||
754 | |||
744 | if (m_landList.ContainsKey(m_landIDList[x, y])) | 755 | if (m_landList.ContainsKey(m_landIDList[x, y])) |
745 | return m_landList[m_landIDList[x, y]]; | 756 | return m_landList[m_landIDList[x, y]]; |
757 | |||
746 | return null; | 758 | return null; |
747 | } | 759 | } |
748 | } | 760 | } |
diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 7a04eb1..dca842a 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs | |||
@@ -173,24 +173,32 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
173 | 173 | ||
174 | // NOTE: Call under Taint Lock | 174 | // NOTE: Call under Taint Lock |
175 | private void AddObject(SceneObjectGroup obj) | 175 | private void AddObject(SceneObjectGroup obj) |
176 | { | 176 | { |
177 | // m_log.DebugFormat("[PRIM COUNT MODULE]: Adding object {0} {1} to prim count", obj.Name, obj.UUID); | ||
178 | |||
179 | if (obj.IsAttachment) | 177 | if (obj.IsAttachment) |
180 | return; | 178 | return; |
181 | if (((obj.RootPart.Flags & PrimFlags.TemporaryOnRez) != 0)) | 179 | if (((obj.RootPart.Flags & PrimFlags.TemporaryOnRez) != 0)) |
182 | return; | 180 | return; |
183 | 181 | ||
184 | Vector3 pos = obj.AbsolutePosition; | 182 | Vector3 pos = obj.AbsolutePosition; |
185 | ILandObject landObject = m_Scene.LandChannel.GetLandObject(pos.X, pos.Y); | 183 | ILandObject landObject = m_Scene.LandChannel.GetLandObject(pos.X, pos.Y); |
186 | 184 | ||
187 | // If for some reason there is no land object (perhaps the object is out of bounds) then we can't count it | 185 | // If for some reason there is no land object (perhaps the object is out of bounds) then we can't count it |
188 | if (landObject == null) | 186 | if (landObject == null) |
187 | { | ||
188 | // m_log.WarnFormat( | ||
189 | // "[PRIM COUNT MODULE]: Found no land object for {0} at position ({1}, {2}) on {3}", | ||
190 | // obj.Name, pos.X, pos.Y, m_Scene.RegionInfo.RegionName); | ||
191 | |||
189 | return; | 192 | return; |
193 | } | ||
190 | 194 | ||
191 | LandData landData = landObject.LandData; | 195 | LandData landData = landObject.LandData; |
192 | 196 | ||
193 | // m_log.DebugFormat( | 197 | // m_log.DebugFormat( |
198 | // "[PRIM COUNT MODULE]: Adding object {0} with {1} parts to prim count for parcel {2} on {3}", | ||
199 | // obj.Name, obj.Parts.Length, landData.Name, m_Scene.RegionInfo.RegionName); | ||
200 | |||
201 | // m_log.DebugFormat( | ||
194 | // "[PRIM COUNT MODULE]: Object {0} is owned by {1} over land owned by {2}", | 202 | // "[PRIM COUNT MODULE]: Object {0} is owned by {1} over land owned by {2}", |
195 | // obj.Name, obj.OwnerID, landData.OwnerID); | 203 | // obj.Name, obj.OwnerID, landData.OwnerID); |
196 | 204 | ||
@@ -473,7 +481,9 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
473 | 481 | ||
474 | m_OwnerMap[landData.GlobalID] = landData.OwnerID; | 482 | m_OwnerMap[landData.GlobalID] = landData.OwnerID; |
475 | m_SimwideCounts[landData.OwnerID] = 0; | 483 | m_SimwideCounts[landData.OwnerID] = 0; |
476 | // m_log.DebugFormat("[PRIM COUNT MODULE]: Adding parcel count for {0}", landData.GlobalID); | 484 | // m_log.DebugFormat( |
485 | // "[PRIM COUNT MODULE]: Initializing parcel count for {0} on {1}", | ||
486 | // landData.Name, m_Scene.RegionInfo.RegionName); | ||
477 | m_ParcelCounts[landData.GlobalID] = new ParcelCounts(); | 487 | m_ParcelCounts[landData.GlobalID] = new ParcelCounts(); |
478 | } | 488 | } |
479 | 489 | ||
@@ -583,4 +593,4 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
583 | } | 593 | } |
584 | } | 594 | } |
585 | } | 595 | } |
586 | } | 596 | } \ No newline at end of file |
diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 4acba18..d161bb8 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs | |||
@@ -51,9 +51,14 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
51 | protected PrimCountModule m_pcm; | 51 | protected PrimCountModule m_pcm; |
52 | 52 | ||
53 | /// <summary> | 53 | /// <summary> |
54 | /// A parcel that covers the entire sim. | 54 | /// A parcel that covers the entire sim except for a 1 unit wide strip on the eastern side. |
55 | /// </summary> | 55 | /// </summary> |
56 | protected ILandObject m_lo; | 56 | protected ILandObject m_lo; |
57 | |||
58 | /// <summary> | ||
59 | /// A parcel that covers just the eastern strip of the sim. | ||
60 | /// </summary> | ||
61 | protected ILandObject m_lo2; | ||
57 | 62 | ||
58 | [SetUp] | 63 | [SetUp] |
59 | public void SetUp() | 64 | public void SetUp() |
@@ -63,10 +68,19 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
63 | m_scene = SceneSetupHelpers.SetupScene(); | 68 | m_scene = SceneSetupHelpers.SetupScene(); |
64 | SceneSetupHelpers.SetupSceneModules(m_scene, lmm, m_pcm); | 69 | SceneSetupHelpers.SetupSceneModules(m_scene, lmm, m_pcm); |
65 | 70 | ||
71 | int xParcelDivider = (int)Constants.RegionSize - 1; | ||
72 | |||
66 | ILandObject lo = new LandObject(m_userId, false, m_scene); | 73 | ILandObject lo = new LandObject(m_userId, false, m_scene); |
74 | lo.LandData.Name = "m_lo"; | ||
67 | lo.SetLandBitmap( | 75 | lo.SetLandBitmap( |
68 | lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize / 4 - 1, (int)Constants.RegionSize / 4 - 1)); | 76 | lo.GetSquareLandBitmap(0, 0, xParcelDivider, (int)Constants.RegionSize)); |
69 | m_lo = lmm.AddLandObject(lo); | 77 | m_lo = lmm.AddLandObject(lo); |
78 | |||
79 | ILandObject lo2 = new LandObject(m_userId, false, m_scene); | ||
80 | lo2.SetLandBitmap( | ||
81 | lo2.GetSquareLandBitmap(xParcelDivider, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); | ||
82 | lo2.LandData.Name = "m_lo2"; | ||
83 | m_lo2 = lmm.AddLandObject(lo2); | ||
70 | } | 84 | } |
71 | 85 | ||
72 | /// <summary> | 86 | /// <summary> |
@@ -98,7 +112,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
98 | 112 | ||
99 | IPrimCounts pc = m_lo.PrimCounts; | 113 | IPrimCounts pc = m_lo.PrimCounts; |
100 | 114 | ||
101 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); | 115 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01); |
102 | m_scene.AddNewSceneObject(sog, false); | 116 | m_scene.AddNewSceneObject(sog, false); |
103 | 117 | ||
104 | Assert.That(pc.Owner, Is.EqualTo(3)); | 118 | Assert.That(pc.Owner, Is.EqualTo(3)); |
@@ -111,7 +125,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
111 | Assert.That(pc.Simulator, Is.EqualTo(3)); | 125 | Assert.That(pc.Simulator, Is.EqualTo(3)); |
112 | 126 | ||
113 | // Add a second object and retest | 127 | // Add a second object and retest |
114 | SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, 0x10); | 128 | SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, "b", 0x10); |
115 | m_scene.AddNewSceneObject(sog2, false); | 129 | m_scene.AddNewSceneObject(sog2, false); |
116 | 130 | ||
117 | Assert.That(pc.Owner, Is.EqualTo(5)); | 131 | Assert.That(pc.Owner, Is.EqualTo(5)); |
@@ -135,7 +149,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
135 | 149 | ||
136 | IPrimCounts pc = m_lo.PrimCounts; | 150 | IPrimCounts pc = m_lo.PrimCounts; |
137 | 151 | ||
138 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); | 152 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01); |
139 | m_scene.AddNewSceneObject(sog, false); | 153 | m_scene.AddNewSceneObject(sog, false); |
140 | m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, 0, m_userId, UUID.Zero, Quaternion.Identity); | 154 | m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, 0, m_userId, UUID.Zero, Quaternion.Identity); |
141 | 155 | ||
@@ -156,35 +170,37 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
156 | //[Test] | 170 | //[Test] |
157 | public void TestMoveOwnerObject() | 171 | public void TestMoveOwnerObject() |
158 | { | 172 | { |
159 | // TestHelper.InMethod(); | 173 | TestHelper.InMethod(); |
160 | //// log4net.Config.XmlConfigurator.Configure(); | 174 | log4net.Config.XmlConfigurator.Configure(); |
161 | // | 175 | |
162 | // IPrimCounts pc = m_lo.PrimCounts; | 176 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01); |
163 | // | 177 | m_scene.AddNewSceneObject(sog, false); |
164 | // SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); | 178 | SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, "b", 0x10); |
165 | // m_scene.AddNewSceneObject(sog, false); | 179 | m_scene.AddNewSceneObject(sog2, false); |
166 | // | 180 | |
167 | // Assert.That(pc.Owner, Is.EqualTo(3)); | 181 | sog.AbsolutePosition = new Vector3(254, 2, 2); |
168 | // Assert.That(pc.Group, Is.EqualTo(0)); | 182 | |
169 | // Assert.That(pc.Others, Is.EqualTo(0)); | 183 | IPrimCounts pclo1 = m_lo.PrimCounts; |
170 | // Assert.That(pc.Total, Is.EqualTo(3)); | 184 | |
171 | // Assert.That(pc.Selected, Is.EqualTo(0)); | 185 | Assert.That(pclo1.Owner, Is.EqualTo(2)); |
172 | // Assert.That(pc.Users[m_userId], Is.EqualTo(3)); | 186 | Assert.That(pclo1.Group, Is.EqualTo(0)); |
173 | // Assert.That(pc.Users[m_otherUserId], Is.EqualTo(0)); | 187 | Assert.That(pclo1.Others, Is.EqualTo(0)); |
174 | // Assert.That(pc.Simulator, Is.EqualTo(3)); | 188 | Assert.That(pclo1.Total, Is.EqualTo(2)); |
175 | // | 189 | Assert.That(pclo1.Selected, Is.EqualTo(0)); |
176 | // // Add a second object and retest | 190 | Assert.That(pclo1.Users[m_userId], Is.EqualTo(2)); |
177 | // SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, 0x10); | 191 | Assert.That(pclo1.Users[m_otherUserId], Is.EqualTo(0)); |
178 | // m_scene.AddNewSceneObject(sog2, false); | 192 | Assert.That(pclo1.Simulator, Is.EqualTo(2)); |
179 | // | 193 | |
180 | // Assert.That(pc.Owner, Is.EqualTo(5)); | 194 | IPrimCounts pclo2 = m_lo2.PrimCounts; |
181 | // Assert.That(pc.Group, Is.EqualTo(0)); | 195 | |
182 | // Assert.That(pc.Others, Is.EqualTo(0)); | 196 | Assert.That(pclo2.Owner, Is.EqualTo(3)); |
183 | // Assert.That(pc.Total, Is.EqualTo(5)); | 197 | Assert.That(pclo2.Group, Is.EqualTo(0)); |
184 | // Assert.That(pc.Selected, Is.EqualTo(0)); | 198 | Assert.That(pclo2.Others, Is.EqualTo(0)); |
185 | // Assert.That(pc.Users[m_userId], Is.EqualTo(5)); | 199 | Assert.That(pclo2.Total, Is.EqualTo(3)); |
186 | // Assert.That(pc.Users[m_otherUserId], Is.EqualTo(0)); | 200 | Assert.That(pclo2.Selected, Is.EqualTo(0)); |
187 | // Assert.That(pc.Simulator, Is.EqualTo(5)); | 201 | Assert.That(pclo2.Users[m_userId], Is.EqualTo(3)); |
202 | Assert.That(pclo2.Users[m_otherUserId], Is.EqualTo(0)); | ||
203 | Assert.That(pclo2.Simulator, Is.EqualTo(3)); | ||
188 | } | 204 | } |
189 | 205 | ||
190 | /// <summary> | 206 | /// <summary> |
@@ -198,8 +214,8 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
198 | 214 | ||
199 | IPrimCounts pc = m_lo.PrimCounts; | 215 | IPrimCounts pc = m_lo.PrimCounts; |
200 | 216 | ||
201 | m_scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, m_userId, 0x1), false); | 217 | m_scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, m_userId, "a", 0x1), false); |
202 | SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x10); | 218 | SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_userId, "b", 0x10); |
203 | m_scene.AddNewSceneObject(sogToDelete, false); | 219 | m_scene.AddNewSceneObject(sogToDelete, false); |
204 | m_scene.DeleteSceneObject(sogToDelete, false); | 220 | m_scene.DeleteSceneObject(sogToDelete, false); |
205 | 221 | ||
@@ -223,7 +239,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
223 | 239 | ||
224 | IPrimCounts pc = m_lo.PrimCounts; | 240 | IPrimCounts pc = m_lo.PrimCounts; |
225 | 241 | ||
226 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, 0x01); | 242 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, "a", 0x01); |
227 | sog.GroupID = m_groupId; | 243 | sog.GroupID = m_groupId; |
228 | m_scene.AddNewSceneObject(sog, false); | 244 | m_scene.AddNewSceneObject(sog, false); |
229 | 245 | ||
@@ -254,11 +270,11 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
254 | 270 | ||
255 | IPrimCounts pc = m_lo.PrimCounts; | 271 | IPrimCounts pc = m_lo.PrimCounts; |
256 | 272 | ||
257 | SceneObjectGroup sogToKeep = SceneSetupHelpers.CreateSceneObject(1, m_userId, 0x1); | 273 | SceneObjectGroup sogToKeep = SceneSetupHelpers.CreateSceneObject(1, m_userId, "a", 0x1); |
258 | sogToKeep.GroupID = m_groupId; | 274 | sogToKeep.GroupID = m_groupId; |
259 | m_scene.AddNewSceneObject(sogToKeep, false); | 275 | m_scene.AddNewSceneObject(sogToKeep, false); |
260 | 276 | ||
261 | SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x10); | 277 | SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_userId, "b", 0x10); |
262 | m_scene.AddNewSceneObject(sogToDelete, false); | 278 | m_scene.AddNewSceneObject(sogToDelete, false); |
263 | m_scene.DeleteSceneObject(sogToDelete, false); | 279 | m_scene.DeleteSceneObject(sogToDelete, false); |
264 | 280 | ||
@@ -281,7 +297,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
281 | 297 | ||
282 | IPrimCounts pc = m_lo.PrimCounts; | 298 | IPrimCounts pc = m_lo.PrimCounts; |
283 | 299 | ||
284 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, 0x01); | 300 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, "a", 0x01); |
285 | m_scene.AddNewSceneObject(sog, false); | 301 | m_scene.AddNewSceneObject(sog, false); |
286 | 302 | ||
287 | Assert.That(pc.Owner, Is.EqualTo(0)); | 303 | Assert.That(pc.Owner, Is.EqualTo(0)); |
@@ -302,8 +318,8 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
302 | 318 | ||
303 | IPrimCounts pc = m_lo.PrimCounts; | 319 | IPrimCounts pc = m_lo.PrimCounts; |
304 | 320 | ||
305 | m_scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, m_otherUserId, 0x1), false); | 321 | m_scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, m_otherUserId, "a", 0x1), false); |
306 | SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, 0x10); | 322 | SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, "b", 0x10); |
307 | m_scene.AddNewSceneObject(sogToDelete, false); | 323 | m_scene.AddNewSceneObject(sogToDelete, false); |
308 | m_scene.DeleteSceneObject(sogToDelete, false); | 324 | m_scene.DeleteSceneObject(sogToDelete, false); |
309 | 325 | ||
@@ -326,7 +342,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests | |||
326 | TestHelper.InMethod(); | 342 | TestHelper.InMethod(); |
327 | IPrimCounts pc = m_lo.PrimCounts; | 343 | IPrimCounts pc = m_lo.PrimCounts; |
328 | 344 | ||
329 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); | 345 | SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01); |
330 | m_scene.AddNewSceneObject(sog, false); | 346 | m_scene.AddNewSceneObject(sog, false); |
331 | 347 | ||
332 | m_pcm.TaintPrimCount(); | 348 | m_pcm.TaintPrimCount(); |
diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index 57850c1..709dd78 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs | |||
@@ -489,32 +489,38 @@ namespace OpenSim.Tests.Common.Setup | |||
489 | /// <returns></returns> | 489 | /// <returns></returns> |
490 | public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId) | 490 | public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId) |
491 | { | 491 | { |
492 | return CreateSceneObject(parts, ownerId, 0x1); | 492 | return CreateSceneObject(parts, ownerId, "", 0x1); |
493 | } | 493 | } |
494 | 494 | ||
495 | /// <summary> | 495 | /// <summary> |
496 | /// Create a scene object but do not add it to the scene. | 496 | /// Create a scene object but do not add it to the scene. |
497 | /// </summary> | 497 | /// </summary> |
498 | /// <param name="parts">The number of parts that should be in the scene object</param> | 498 | /// <param name="parts"> |
499 | /// The number of parts that should be in the scene object | ||
500 | /// </param> | ||
499 | /// <param name="ownerId"></param> | 501 | /// <param name="ownerId"></param> |
502 | /// <param name="partNamePrefix"> | ||
503 | /// The prefix to be given to part names. This will be suffixed with "Part<part no>" | ||
504 | /// (e.g. mynamePart0 for the root part) | ||
505 | /// </param> | ||
500 | /// <param name="uuidTail"> | 506 | /// <param name="uuidTail"> |
501 | /// The hexadecimal last part of the UUID for parts created. A UUID of the form "00000000-0000-0000-0000-{0:XD12}" | 507 | /// The hexadecimal last part of the UUID for parts created. A UUID of the form "00000000-0000-0000-0000-{0:XD12}" |
502 | /// will be given to the root part, and incremented for each part thereafter. | 508 | /// will be given to the root part, and incremented for each part thereafter. |
503 | /// </param> | 509 | /// </param> |
504 | /// <returns></returns> | 510 | /// <returns></returns> |
505 | public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId, int uuidTail) | 511 | public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId, string partNamePrefix, int uuidTail) |
506 | { | 512 | { |
507 | string rawSogId = string.Format("00000000-0000-0000-0000-{0:X12}", uuidTail); | 513 | string rawSogId = string.Format("00000000-0000-0000-0000-{0:X12}", uuidTail); |
508 | 514 | ||
509 | SceneObjectGroup sog | 515 | SceneObjectGroup sog |
510 | = new SceneObjectGroup( | 516 | = new SceneObjectGroup( |
511 | CreateSceneObjectPart("part0", new UUID(rawSogId), ownerId)); | 517 | CreateSceneObjectPart(string.Format("{0}Part0", partNamePrefix), new UUID(rawSogId), ownerId)); |
512 | 518 | ||
513 | if (parts > 1) | 519 | if (parts > 1) |
514 | for (int i = 1; i < parts; i++) | 520 | for (int i = 1; i < parts; i++) |
515 | sog.AddPart( | 521 | sog.AddPart( |
516 | CreateSceneObjectPart( | 522 | CreateSceneObjectPart( |
517 | string.Format("obj{0}", i), | 523 | string.Format("{0}Part{1}", partNamePrefix, i), |
518 | new UUID(string.Format("00000000-0000-0000-0000-{0:X12}", uuidTail + i)), | 524 | new UUID(string.Format("00000000-0000-0000-0000-{0:X12}", uuidTail + i)), |
519 | ownerId)); | 525 | ownerId)); |
520 | 526 | ||