diff options
Diffstat (limited to 'OpenSim/Region/Framework')
15 files changed, 129 insertions, 80 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 431f3dc..0b92818 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -2145,19 +2145,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2145 | sourcePart.Inventory.RemoveInventoryItem(item.ItemID); | 2145 | sourcePart.Inventory.RemoveInventoryItem(item.ItemID); |
2146 | } | 2146 | } |
2147 | 2147 | ||
2148 | AddNewSceneObject(group, true); | 2148 | AddNewSceneObject(group, true, pos, rot, vel); |
2149 | |||
2150 | group.AbsolutePosition = pos; | ||
2151 | group.Velocity = vel; | ||
2152 | |||
2153 | if (rot != null) | ||
2154 | group.UpdateGroupRotationR((Quaternion)rot); | ||
2155 | |||
2156 | // TODO: This needs to be refactored with the similar code in | ||
2157 | // SceneGraph.AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup, Vector3 pos, Quaternion rot, Vector3 vel) | ||
2158 | // possibly by allowing this method to take a null rotation. | ||
2159 | if (group.RootPart.PhysActor != null && group.RootPart.PhysActor.IsPhysical && vel != Vector3.Zero) | ||
2160 | group.RootPart.ApplyImpulse((vel * group.GetMass()), false); | ||
2161 | 2149 | ||
2162 | // We can only call this after adding the scene object, since the scene object references the scene | 2150 | // We can only call this after adding the scene object, since the scene object references the scene |
2163 | // to find out if scripts should be activated at all. | 2151 | // to find out if scripts should be activated at all. |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 313a469..1d2092e 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2014,16 +2014,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
2014 | /// <summary> | 2014 | /// <summary> |
2015 | /// Add a newly created object to the scene. | 2015 | /// Add a newly created object to the scene. |
2016 | /// </summary> | 2016 | /// </summary> |
2017 | /// | 2017 | /// <remarks> |
2018 | /// This method does not send updates to the client - callers need to handle this themselves. | 2018 | /// This method does not send updates to the client - callers need to handle this themselves. |
2019 | /// </remarks> | ||
2019 | /// <param name="sceneObject"></param> | 2020 | /// <param name="sceneObject"></param> |
2020 | /// <param name="attachToBackup"></param> | 2021 | /// <param name="attachToBackup"></param> |
2021 | /// <param name="pos">Position of the object</param> | 2022 | /// <param name="pos">Position of the object. If null then the position stored in the object is used.</param> |
2022 | /// <param name="rot">Rotation of the object</param> | 2023 | /// <param name="rot">Rotation of the object. If null then the rotation stored in the object is used.</param> |
2023 | /// <param name="vel">Velocity of the object. This parameter only has an effect if the object is physical</param> | 2024 | /// <param name="vel">Velocity of the object. This parameter only has an effect if the object is physical</param> |
2024 | /// <returns></returns> | 2025 | /// <returns></returns> |
2025 | public bool AddNewSceneObject( | 2026 | public bool AddNewSceneObject( |
2026 | SceneObjectGroup sceneObject, bool attachToBackup, Vector3 pos, Quaternion rot, Vector3 vel) | 2027 | SceneObjectGroup sceneObject, bool attachToBackup, Vector3? pos, Quaternion? rot, Vector3 vel) |
2027 | { | 2028 | { |
2028 | if (m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup, pos, rot, vel)) | 2029 | if (m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup, pos, rot, vel)) |
2029 | { | 2030 | { |
@@ -4436,7 +4437,28 @@ namespace OpenSim.Region.Framework.Scenes | |||
4436 | // } | 4437 | // } |
4437 | 4438 | ||
4438 | /// <summary> | 4439 | /// <summary> |
4439 | /// Get a named prim contained in this scene (will return the first | 4440 | /// Get a group via its UUID |
4441 | /// </summary> | ||
4442 | /// <param name="fullID"></param> | ||
4443 | /// <returns>null if no group with that name exists</returns> | ||
4444 | public SceneObjectGroup GetSceneObjectGroup(UUID fullID) | ||
4445 | { | ||
4446 | return m_sceneGraph.GetSceneObjectGroup(fullID); | ||
4447 | } | ||
4448 | |||
4449 | /// <summary> | ||
4450 | /// Get a group by name from the scene (will return the first | ||
4451 | /// found, if there are more than one prim with the same name) | ||
4452 | /// </summary> | ||
4453 | /// <param name="name"></param> | ||
4454 | /// <returns>null if no group with that name exists</returns> | ||
4455 | public SceneObjectGroup GetSceneObjectGroup(string name) | ||
4456 | { | ||
4457 | return m_sceneGraph.GetSceneObjectGroup(name); | ||
4458 | } | ||
4459 | |||
4460 | /// <summary> | ||
4461 | /// Get a prim by name from the scene (will return the first | ||
4440 | /// found, if there are more than one prim with the same name) | 4462 | /// found, if there are more than one prim with the same name) |
4441 | /// </summary> | 4463 | /// </summary> |
4442 | /// <param name="name"></param> | 4464 | /// <param name="name"></param> |
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 3d6057b..c0236f4 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -352,25 +352,26 @@ namespace OpenSim.Region.Framework.Scenes | |||
352 | /// This method does not send updates to the client - callers need to handle this themselves. | 352 | /// This method does not send updates to the client - callers need to handle this themselves. |
353 | /// <param name="sceneObject"></param> | 353 | /// <param name="sceneObject"></param> |
354 | /// <param name="attachToBackup"></param> | 354 | /// <param name="attachToBackup"></param> |
355 | /// <param name="pos">Position of the object</param> | 355 | /// <param name="pos">Position of the object. If null then the position stored in the object is used.</param> |
356 | /// <param name="rot">Rotation of the object</param> | 356 | /// <param name="rot">Rotation of the object. If null then the rotation stored in the object is used.</param> |
357 | /// <param name="vel">Velocity of the object. This parameter only has an effect if the object is physical</param> | 357 | /// <param name="vel">Velocity of the object. This parameter only has an effect if the object is physical</param> |
358 | /// <returns></returns> | 358 | /// <returns></returns> |
359 | public bool AddNewSceneObject( | 359 | public bool AddNewSceneObject( |
360 | SceneObjectGroup sceneObject, bool attachToBackup, Vector3 pos, Quaternion rot, Vector3 vel) | 360 | SceneObjectGroup sceneObject, bool attachToBackup, Vector3? pos, Quaternion? rot, Vector3 vel) |
361 | { | 361 | { |
362 | AddNewSceneObject(sceneObject, true, false); | 362 | AddNewSceneObject(sceneObject, true, false); |
363 | 363 | ||
364 | // we set it's position in world. | 364 | if (pos != null) |
365 | sceneObject.AbsolutePosition = pos; | 365 | sceneObject.AbsolutePosition = (Vector3)pos; |
366 | 366 | ||
367 | if (sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim) | 367 | if (sceneObject.RootPart.Shape.PCode == (byte)PCode.Prim) |
368 | { | 368 | { |
369 | sceneObject.ClearPartAttachmentData(); | 369 | sceneObject.ClearPartAttachmentData(); |
370 | } | 370 | } |
371 | 371 | ||
372 | sceneObject.UpdateGroupRotationR(rot); | 372 | if (rot != null) |
373 | 373 | sceneObject.UpdateGroupRotationR((Quaternion)rot); | |
374 | |||
374 | //group.ApplyPhysics(m_physicalPrim); | 375 | //group.ApplyPhysics(m_physicalPrim); |
375 | if (sceneObject.RootPart.PhysActor != null && sceneObject.RootPart.PhysActor.IsPhysical && vel != Vector3.Zero) | 376 | if (sceneObject.RootPart.PhysActor != null && sceneObject.RootPart.PhysActor.IsPhysical && vel != Vector3.Zero) |
376 | { | 377 | { |
@@ -385,6 +386,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
385 | /// Add an object to the scene. This will both update the scene, and send information about the | 386 | /// Add an object to the scene. This will both update the scene, and send information about the |
386 | /// new object to all clients interested in the scene. | 387 | /// new object to all clients interested in the scene. |
387 | /// </summary> | 388 | /// </summary> |
389 | /// <remarks> | ||
390 | /// The object's stored position, rotation and velocity are used. | ||
391 | /// </remarks> | ||
388 | /// <param name="sceneObject"></param> | 392 | /// <param name="sceneObject"></param> |
389 | /// <param name="attachToBackup"> | 393 | /// <param name="attachToBackup"> |
390 | /// If true, the object is made persistent into the scene. | 394 | /// If true, the object is made persistent into the scene. |
@@ -1048,6 +1052,51 @@ namespace OpenSim.Region.Framework.Scenes | |||
1048 | } | 1052 | } |
1049 | 1053 | ||
1050 | /// <summary> | 1054 | /// <summary> |
1055 | /// Get a group in the scene | ||
1056 | /// </summary> | ||
1057 | /// <param name="fullID">UUID of the group</param> | ||
1058 | /// <returns>null if no such group was found</returns> | ||
1059 | protected internal SceneObjectGroup GetSceneObjectGroup(UUID fullID) | ||
1060 | { | ||
1061 | lock (SceneObjectGroupsByFullID) | ||
1062 | { | ||
1063 | if (SceneObjectGroupsByFullID.ContainsKey(fullID)) | ||
1064 | return SceneObjectGroupsByFullID[fullID]; | ||
1065 | } | ||
1066 | |||
1067 | return null; | ||
1068 | } | ||
1069 | |||
1070 | /// <summary> | ||
1071 | /// Get a group by name from the scene (will return the first | ||
1072 | /// found, if there are more than one prim with the same name) | ||
1073 | /// </summary> | ||
1074 | /// <param name="name"></param> | ||
1075 | /// <returns>null if the part was not found</returns> | ||
1076 | protected internal SceneObjectGroup GetSceneObjectGroup(string name) | ||
1077 | { | ||
1078 | SceneObjectGroup so = null; | ||
1079 | |||
1080 | Entities.Find( | ||
1081 | delegate(EntityBase entity) | ||
1082 | { | ||
1083 | if (entity is SceneObjectGroup) | ||
1084 | { | ||
1085 | if (entity.Name == name) | ||
1086 | { | ||
1087 | so = (SceneObjectGroup)entity; | ||
1088 | return true; | ||
1089 | } | ||
1090 | } | ||
1091 | |||
1092 | return false; | ||
1093 | } | ||
1094 | ); | ||
1095 | |||
1096 | return so; | ||
1097 | } | ||
1098 | |||
1099 | /// <summary> | ||
1051 | /// Get a part contained in this scene. | 1100 | /// Get a part contained in this scene. |
1052 | /// </summary> | 1101 | /// </summary> |
1053 | /// <param name="localID"></param> | 1102 | /// <param name="localID"></param> |
@@ -1061,7 +1110,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1061 | } | 1110 | } |
1062 | 1111 | ||
1063 | /// <summary> | 1112 | /// <summary> |
1064 | /// Get a named prim contained in this scene (will return the first | 1113 | /// Get a prim by name from the scene (will return the first |
1065 | /// found, if there are more than one prim with the same name) | 1114 | /// found, if there are more than one prim with the same name) |
1066 | /// </summary> | 1115 | /// </summary> |
1067 | /// <param name="name"></param> | 1116 | /// <param name="name"></param> |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/AttachmentTests.cs b/OpenSim/Region/Framework/Scenes/Tests/AttachmentTests.cs index 855b589..cff649b 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/AttachmentTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/AttachmentTests.cs | |||
@@ -43,7 +43,6 @@ using OpenSim.Region.CoreModules.World.Serialiser; | |||
43 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; | 43 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; |
44 | using OpenSim.Tests.Common; | 44 | using OpenSim.Tests.Common; |
45 | using OpenSim.Tests.Common.Mock; | 45 | using OpenSim.Tests.Common.Mock; |
46 | using OpenSim.Tests.Common.Setup; | ||
47 | 46 | ||
48 | namespace OpenSim.Region.Framework.Scenes.Tests | 47 | namespace OpenSim.Region.Framework.Scenes.Tests |
49 | { | 48 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs index 667b74e..f69a4b4 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs | |||
@@ -37,7 +37,6 @@ using OpenSim.Framework; | |||
37 | using OpenSim.Framework.Communications; | 37 | using OpenSim.Framework.Communications; |
38 | using OpenSim.Region.Framework.Scenes; | 38 | using OpenSim.Region.Framework.Scenes; |
39 | using OpenSim.Tests.Common; | 39 | using OpenSim.Tests.Common; |
40 | using OpenSim.Tests.Common.Setup; | ||
41 | 40 | ||
42 | namespace OpenSim.Region.Framework.Scenes.Tests | 41 | namespace OpenSim.Region.Framework.Scenes.Tests |
43 | { | 42 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs index ca635d7..895f2bb 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs | |||
@@ -34,7 +34,6 @@ using OpenSim.Framework.Communications; | |||
34 | using OpenSim.Region.Framework.Scenes; | 34 | using OpenSim.Region.Framework.Scenes; |
35 | using OpenSim.Tests.Common; | 35 | using OpenSim.Tests.Common; |
36 | using OpenSim.Tests.Common.Mock; | 36 | using OpenSim.Tests.Common.Mock; |
37 | using OpenSim.Tests.Common.Setup; | ||
38 | 37 | ||
39 | namespace OpenSim.Region.Framework.Scenes.Tests | 38 | namespace OpenSim.Region.Framework.Scenes.Tests |
40 | { | 39 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs index a6a95ef..0a82c4f 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs | |||
@@ -34,7 +34,6 @@ using OpenSim.Framework.Communications; | |||
34 | using OpenSim.Region.Framework.Scenes; | 34 | using OpenSim.Region.Framework.Scenes; |
35 | using OpenSim.Tests.Common; | 35 | using OpenSim.Tests.Common; |
36 | using OpenSim.Tests.Common.Mock; | 36 | using OpenSim.Tests.Common.Mock; |
37 | using OpenSim.Tests.Common.Setup; | ||
38 | 37 | ||
39 | namespace OpenSim.Region.Framework.Scenes.Tests | 38 | namespace OpenSim.Region.Framework.Scenes.Tests |
40 | { | 39 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs index 0d26026..5357a06 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs | |||
@@ -37,7 +37,6 @@ using OpenSim.Region.CoreModules.World.Permissions; | |||
37 | using OpenSim.Region.Framework.Scenes; | 37 | using OpenSim.Region.Framework.Scenes; |
38 | using OpenSim.Tests.Common; | 38 | using OpenSim.Tests.Common; |
39 | using OpenSim.Tests.Common.Mock; | 39 | using OpenSim.Tests.Common.Mock; |
40 | using OpenSim.Tests.Common.Setup; | ||
41 | 40 | ||
42 | namespace OpenSim.Region.Framework.Scenes.Tests | 41 | namespace OpenSim.Region.Framework.Scenes.Tests |
43 | { | 42 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs index bdfcd1d..cb1d531 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs | |||
@@ -35,7 +35,6 @@ using OpenSim.Framework.Communications; | |||
35 | using OpenSim.Region.Framework.Scenes; | 35 | using OpenSim.Region.Framework.Scenes; |
36 | using OpenSim.Tests.Common; | 36 | using OpenSim.Tests.Common; |
37 | using OpenSim.Tests.Common.Mock; | 37 | using OpenSim.Tests.Common.Mock; |
38 | using OpenSim.Tests.Common.Setup; | ||
39 | using log4net; | 38 | using log4net; |
40 | 39 | ||
41 | namespace OpenSim.Region.Framework.Scenes.Tests | 40 | namespace OpenSim.Region.Framework.Scenes.Tests |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs index 8876a43..77bd4c2 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs | |||
@@ -40,7 +40,6 @@ using OpenSim.Region.Framework.Scenes; | |||
40 | using OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups; | 40 | using OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups; |
41 | using OpenSim.Tests.Common; | 41 | using OpenSim.Tests.Common; |
42 | using OpenSim.Tests.Common.Mock; | 42 | using OpenSim.Tests.Common.Mock; |
43 | using OpenSim.Tests.Common.Setup; | ||
44 | 43 | ||
45 | namespace OpenSim.Region.Framework.Scenes.Tests | 44 | namespace OpenSim.Region.Framework.Scenes.Tests |
46 | { | 45 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTests.cs index efb757f..03ac252 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTests.cs | |||
@@ -44,7 +44,6 @@ using OpenSim.Region.CoreModules.World.Serialiser; | |||
44 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; | 44 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; |
45 | using OpenSim.Tests.Common; | 45 | using OpenSim.Tests.Common; |
46 | using OpenSim.Tests.Common.Mock; | 46 | using OpenSim.Tests.Common.Mock; |
47 | using OpenSim.Tests.Common.Setup; | ||
48 | 47 | ||
49 | namespace OpenSim.Region.Framework.Scenes.Tests | 48 | namespace OpenSim.Region.Framework.Scenes.Tests |
50 | { | 49 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs index abcce66..13d93f9 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs | |||
@@ -43,7 +43,6 @@ using OpenSim.Region.CoreModules.World.Serialiser; | |||
43 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; | 43 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; |
44 | using OpenSim.Tests.Common; | 44 | using OpenSim.Tests.Common; |
45 | using OpenSim.Tests.Common.Mock; | 45 | using OpenSim.Tests.Common.Mock; |
46 | using OpenSim.Tests.Common.Setup; | ||
47 | 46 | ||
48 | namespace OpenSim.Region.Framework.Scenes.Tests | 47 | namespace OpenSim.Region.Framework.Scenes.Tests |
49 | { | 48 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs index dd28416..1b5a54e 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs | |||
@@ -36,7 +36,6 @@ using OpenSim.Region.Framework.Interfaces; | |||
36 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; | 36 | using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; |
37 | using OpenSim.Tests.Common; | 37 | using OpenSim.Tests.Common; |
38 | using OpenSim.Tests.Common.Mock; | 38 | using OpenSim.Tests.Common.Mock; |
39 | using OpenSim.Tests.Common.Setup; | ||
40 | using System.Threading; | 39 | using System.Threading; |
41 | 40 | ||
42 | namespace OpenSim.Region.Framework.Scenes.Tests | 41 | namespace OpenSim.Region.Framework.Scenes.Tests |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs index 2aef4b0..f4e14d4 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs | |||
@@ -46,55 +46,55 @@ using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation; | |||
46 | using OpenSim.Services.Interfaces; | 46 | using OpenSim.Services.Interfaces; |
47 | using OpenSim.Tests.Common; | 47 | using OpenSim.Tests.Common; |
48 | using OpenSim.Tests.Common.Mock; | 48 | using OpenSim.Tests.Common.Mock; |
49 | using OpenSim.Tests.Common.Setup; | ||
50 | 49 | ||
51 | namespace OpenSim.Region.Framework.Tests | 50 | namespace OpenSim.Region.Framework.Tests |
52 | { | 51 | { |
53 | [TestFixture] | 52 | [TestFixture] |
54 | public class TaskInventoryTests | 53 | public class TaskInventoryTests |
55 | { | 54 | { |
56 | protected UserAccount CreateUser(Scene scene) | 55 | [Test] |
57 | { | 56 | public void TestRezObjectFromInventoryItem() |
58 | string userFirstName = "Jock"; | ||
59 | string userLastName = "Stirrup"; | ||
60 | string userPassword = "troll"; | ||
61 | UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); | ||
62 | return UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, userPassword); | ||
63 | } | ||
64 | |||
65 | protected SceneObjectGroup CreateSO1(Scene scene, UUID ownerId) | ||
66 | { | ||
67 | string part1Name = "part1"; | ||
68 | UUID part1Id = UUID.Parse("10000000-0000-0000-0000-000000000000"); | ||
69 | SceneObjectPart part1 | ||
70 | = new SceneObjectPart(ownerId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) | ||
71 | { Name = part1Name, UUID = part1Id }; | ||
72 | return new SceneObjectGroup(part1); | ||
73 | } | ||
74 | |||
75 | protected TaskInventoryItem CreateSOItem1(Scene scene, SceneObjectPart part) | ||
76 | { | 57 | { |
77 | AssetNotecard nc = new AssetNotecard(); | 58 | TestHelper.InMethod(); |
78 | nc.BodyText = "Hello World!"; | 59 | // log4net.Config.XmlConfigurator.Configure(); |
79 | nc.Encode(); | ||
80 | UUID ncAssetUuid = new UUID("00000000-0000-0000-1000-000000000000"); | ||
81 | UUID ncItemUuid = new UUID("00000000-0000-0000-1100-000000000000"); | ||
82 | AssetBase ncAsset | ||
83 | = AssetHelpers.CreateAsset(ncAssetUuid, AssetType.Notecard, nc.AssetData, UUID.Zero); | ||
84 | scene.AssetService.Store(ncAsset); | ||
85 | TaskInventoryItem ncItem | ||
86 | = new TaskInventoryItem | ||
87 | { Name = "ncItem", AssetID = ncAssetUuid, ItemID = ncItemUuid, | ||
88 | Type = (int)AssetType.Notecard, InvType = (int)InventoryType.Notecard }; | ||
89 | part.Inventory.AddInventoryItem(ncItem, true); | ||
90 | 60 | ||
91 | return ncItem; | 61 | Scene scene = SceneSetupHelpers.SetupScene(); |
62 | UserAccount user1 = UserAccountHelpers.CreateUserWithInventory(scene); | ||
63 | SceneObjectGroup sog1 = SceneSetupHelpers.CreateSceneObject(1, user1.PrincipalID); | ||
64 | SceneObjectPart sop1 = sog1.RootPart; | ||
65 | |||
66 | // Create an object embedded inside the first | ||
67 | UUID taskSceneObjectItemId = UUID.Parse("00000000-0000-0000-0000-100000000000"); | ||
68 | TaskInventoryItem taskSceneObjectItem | ||
69 | = TaskInventoryHelpers.AddSceneObject(scene, sop1, "tso", taskSceneObjectItemId); | ||
70 | |||
71 | scene.AddSceneObject(sog1); | ||
72 | |||
73 | Vector3 rezPos = new Vector3(10, 10, 10); | ||
74 | Quaternion rezRot = new Quaternion(0.5f, 0.5f, 0.5f, 0.5f); | ||
75 | Vector3 rezVel = new Vector3(2, 2, 2); | ||
76 | |||
77 | scene.RezObject(sop1, taskSceneObjectItem, rezPos, rezRot, rezVel, 0); | ||
78 | |||
79 | SceneObjectGroup rezzedObject = scene.GetSceneObjectGroup("tso"); | ||
80 | |||
81 | Assert.That(rezzedObject, Is.Not.Null); | ||
82 | Assert.That(rezzedObject.AbsolutePosition, Is.EqualTo(rezPos)); | ||
83 | |||
84 | // Velocity doesn't get applied, probably because there is no physics in tests (yet) | ||
85 | // Assert.That(rezzedObject.Velocity, Is.EqualTo(rezVel)); | ||
86 | Assert.That(rezzedObject.Velocity, Is.EqualTo(Vector3.Zero)); | ||
87 | |||
88 | // Confusingly, this isn't the rezzedObject.Rotation | ||
89 | Assert.That(rezzedObject.RootPart.RotationOffset, Is.EqualTo(rezRot)); | ||
92 | } | 90 | } |
93 | 91 | ||
94 | /// <summary> | 92 | /// <summary> |
95 | /// Test MoveTaskInventoryItem where the item has no parent folder assigned. | 93 | /// Test MoveTaskInventoryItem where the item has no parent folder assigned. |
96 | /// </summary> | 94 | /// </summary> |
95 | /// <remarks> | ||
97 | /// This should place it in the most suitable user folder. | 96 | /// This should place it in the most suitable user folder. |
97 | /// </remarks> | ||
98 | [Test] | 98 | [Test] |
99 | public void TestMoveTaskInventoryItem() | 99 | public void TestMoveTaskInventoryItem() |
100 | { | 100 | { |
@@ -102,10 +102,11 @@ namespace OpenSim.Region.Framework.Tests | |||
102 | // log4net.Config.XmlConfigurator.Configure(); | 102 | // log4net.Config.XmlConfigurator.Configure(); |
103 | 103 | ||
104 | Scene scene = SceneSetupHelpers.SetupScene(); | 104 | Scene scene = SceneSetupHelpers.SetupScene(); |
105 | UserAccount user1 = CreateUser(scene); | 105 | UserAccount user1 = UserAccountHelpers.CreateUserWithInventory(scene); |
106 | SceneObjectGroup sog1 = CreateSO1(scene, user1.PrincipalID); | 106 | SceneObjectGroup sog1 = SceneSetupHelpers.CreateSceneObject(1, user1.PrincipalID); |
107 | SceneObjectPart sop1 = sog1.RootPart; | 107 | SceneObjectPart sop1 = sog1.RootPart; |
108 | TaskInventoryItem sopItem1 = CreateSOItem1(scene, sop1); | 108 | TaskInventoryItem sopItem1 = TaskInventoryHelpers.AddNotecard(scene, sop1); |
109 | |||
109 | InventoryFolderBase folder | 110 | InventoryFolderBase folder |
110 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, user1.PrincipalID, "Objects")[0]; | 111 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, user1.PrincipalID, "Objects")[0]; |
111 | 112 | ||
@@ -128,10 +129,10 @@ namespace OpenSim.Region.Framework.Tests | |||
128 | // log4net.Config.XmlConfigurator.Configure(); | 129 | // log4net.Config.XmlConfigurator.Configure(); |
129 | 130 | ||
130 | Scene scene = SceneSetupHelpers.SetupScene(); | 131 | Scene scene = SceneSetupHelpers.SetupScene(); |
131 | UserAccount user1 = CreateUser(scene); | 132 | UserAccount user1 = UserAccountHelpers.CreateUserWithInventory(scene); |
132 | SceneObjectGroup sog1 = CreateSO1(scene, user1.PrincipalID); | 133 | SceneObjectGroup sog1 = SceneSetupHelpers.CreateSceneObject(1, user1.PrincipalID); |
133 | SceneObjectPart sop1 = sog1.RootPart; | 134 | SceneObjectPart sop1 = sog1.RootPart; |
134 | TaskInventoryItem sopItem1 = CreateSOItem1(scene, sop1); | 135 | TaskInventoryItem sopItem1 = TaskInventoryHelpers.AddNotecard(scene, sop1); |
135 | 136 | ||
136 | // Perform test | 137 | // Perform test |
137 | scene.MoveTaskInventoryItem(user1.PrincipalID, UUID.Zero, sop1, sopItem1.ItemID); | 138 | scene.MoveTaskInventoryItem(user1.PrincipalID, UUID.Zero, sop1, sopItem1.ItemID); |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs b/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs index dbf9e0f..4da8df1 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs | |||
@@ -33,7 +33,6 @@ using OpenSim.Framework; | |||
33 | using OpenSim.Region.Framework.Scenes; | 33 | using OpenSim.Region.Framework.Scenes; |
34 | using OpenSim.Services.Interfaces; | 34 | using OpenSim.Services.Interfaces; |
35 | using OpenSim.Tests.Common; | 35 | using OpenSim.Tests.Common; |
36 | using OpenSim.Tests.Common.Setup; | ||
37 | using OpenSim.Tests.Common.Mock; | 36 | using OpenSim.Tests.Common.Mock; |
38 | 37 | ||
39 | namespace OpenSim.Region.Framework.Scenes.Tests | 38 | namespace OpenSim.Region.Framework.Scenes.Tests |