aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-11-20 16:58:40 +0000
committerJustin Clarke Casey2008-11-20 16:58:40 +0000
commit81dcf223bf2c564423d2c5c101ea95b6d79c6eab (patch)
treed631c67957b5ab2d3112ec22c1f14636b0b5d96f /OpenSim
parentFrom: Christopher Yeoh <cyeoh@au1.ibm.com> (diff)
downloadopensim-SC_OLD-81dcf223bf2c564423d2c5c101ea95b6d79c6eab.zip
opensim-SC_OLD-81dcf223bf2c564423d2c5c101ea95b6d79c6eab.tar.gz
opensim-SC_OLD-81dcf223bf2c564423d2c5c101ea95b6d79c6eab.tar.bz2
opensim-SC_OLD-81dcf223bf2c564423d2c5c101ea95b6d79c6eab.tar.xz
* Add enough infrastructure code to run an extremely basic and flaky add root agent scene test
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/Tests/ScenePresenceTests.cs15
-rw-r--r--OpenSim/Region/Environment/Scenes/Tests/SceneTestUtils.cs7
-rw-r--r--OpenSim/Region/Environment/Scenes/Tests/TestClient.cs938
-rw-r--r--OpenSim/Region/Environment/Scenes/Tests/TestCommunicationsManager.cs44
-rw-r--r--OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs2
7 files changed, 1003 insertions, 7 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index a9014e1..f37ba25 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -193,7 +193,7 @@ namespace OpenSim.Region.Environment.Scenes
193 public PhysicsScene PhysicsScene 193 public PhysicsScene PhysicsScene
194 { 194 {
195 set { m_sceneGraph.PhysicsScene = value; } 195 set { m_sceneGraph.PhysicsScene = value; }
196 get { return (m_sceneGraph.PhysicsScene); } 196 get { return m_sceneGraph.PhysicsScene; }
197 } 197 }
198 198
199 // This gets locked so things stay thread safe. 199 // This gets locked so things stay thread safe.
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 19f0f9c..61fa83d 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -2424,6 +2424,7 @@ namespace OpenSim.Region.Environment.Scenes
2424 PhysicsVector pVec = 2424 PhysicsVector pVec =
2425 new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y, 2425 new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
2426 AbsolutePosition.Z); 2426 AbsolutePosition.Z);
2427
2427 if (m_avHeight == 127.0f) 2428 if (m_avHeight == 127.0f)
2428 { 2429 {
2429 m_physicsActor = scene.AddAvatar(Firstname + "." + Lastname, pVec, new PhysicsVector(0, 0, 1.56f)); 2430 m_physicsActor = scene.AddAvatar(Firstname + "." + Lastname, pVec, new PhysicsVector(0, 0, 1.56f));
@@ -2432,6 +2433,7 @@ namespace OpenSim.Region.Environment.Scenes
2432 { 2433 {
2433 m_physicsActor = scene.AddAvatar(Firstname + "." + Lastname, pVec, new PhysicsVector(0, 0, m_avHeight)); 2434 m_physicsActor = scene.AddAvatar(Firstname + "." + Lastname, pVec, new PhysicsVector(0, 0, m_avHeight));
2434 } 2435 }
2436
2435 //m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients; 2437 //m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients;
2436 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; 2438 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate;
2437 m_physicsActor.SubscribeEvents(1000); 2439 m_physicsActor.SubscribeEvents(1000);
diff --git a/OpenSim/Region/Environment/Scenes/Tests/ScenePresenceTests.cs b/OpenSim/Region/Environment/Scenes/Tests/ScenePresenceTests.cs
index 4cab32a..a82f9b1 100644
--- a/OpenSim/Region/Environment/Scenes/Tests/ScenePresenceTests.cs
+++ b/OpenSim/Region/Environment/Scenes/Tests/ScenePresenceTests.cs
@@ -26,6 +26,7 @@
26 */ 26 */
27 27
28using NUnit.Framework; 28using NUnit.Framework;
29using NUnit.Framework.SyntaxHelpers;
29using OpenMetaverse; 30using OpenMetaverse;
30using OpenSim.Framework; 31using OpenSim.Framework;
31using OpenSim.Region.Environment.Scenes; 32using OpenSim.Region.Environment.Scenes;
@@ -52,16 +53,18 @@ namespace OpenSim.Region.Environment.Scenes.Tests
52 } 53 }
53 54
54 /// <summary> 55 /// <summary>
55 /// Test adding a root agent to a scene. Doesn't yet do what it says on the tin. 56 /// Test adding a root agent to a scene. Doesn't yet actually complete crossing the agent into the scene.
56 /// </summary> 57 /// </summary>
57 [Test] 58 [Test]
58 public void TestAddRootAgent() 59 public void TestAddRootAgent()
59 { 60 {
60 Scene scene = SceneTestUtils.SetupScene(); 61 Scene scene = SceneTestUtils.SetupScene();
62 UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000001");
63 string firstName = "testfirstname";
61 64
62 AgentCircuitData agent = new AgentCircuitData(); 65 AgentCircuitData agent = new AgentCircuitData();
63 agent.AgentID = UUID.Zero; 66 agent.AgentID = agentId;
64 agent.firstname = "testfirstname"; 67 agent.firstname = firstName;
65 agent.lastname = "testlastname"; 68 agent.lastname = "testlastname";
66 agent.SessionID = UUID.Zero; 69 agent.SessionID = UUID.Zero;
67 agent.SecureSessionID = UUID.Zero; 70 agent.SecureSessionID = UUID.Zero;
@@ -72,8 +75,12 @@ namespace OpenSim.Region.Environment.Scenes.Tests
72 agent.CapsPath = "http://wibble.com"; 75 agent.CapsPath = "http://wibble.com";
73 76
74 scene.NewUserConnection(agent); 77 scene.NewUserConnection(agent);
78 scene.AddNewClient(new TestClient(agent), false);
75 79
76 // There are going to be more parts to this. 80 ScenePresence presence = scene.GetScenePresence(agentId);
81
82 Assert.That(presence, Is.Not.Null, "presence is null");
83 Assert.That(presence.Firstname, Is.EqualTo(firstName), "First name not same");
77 } 84 }
78 } 85 }
79} 86}
diff --git a/OpenSim/Region/Environment/Scenes/Tests/SceneTestUtils.cs b/OpenSim/Region/Environment/Scenes/Tests/SceneTestUtils.cs
index 26c148f..15053f1 100644
--- a/OpenSim/Region/Environment/Scenes/Tests/SceneTestUtils.cs
+++ b/OpenSim/Region/Environment/Scenes/Tests/SceneTestUtils.cs
@@ -30,6 +30,7 @@ using OpenMetaverse;
30using OpenSim.Framework; 30using OpenSim.Framework;
31using OpenSim.Framework.Communications; 31using OpenSim.Framework.Communications;
32using OpenSim.Framework.Servers; 32using OpenSim.Framework.Servers;
33using OpenSim.Region.Physics.Manager;
33using OpenSim.Region.Environment.Scenes; 34using OpenSim.Region.Environment.Scenes;
34 35
35namespace OpenSim.Region.Environment.Scenes.Tests 36namespace OpenSim.Region.Environment.Scenes.Tests
@@ -50,7 +51,7 @@ namespace OpenSim.Region.Environment.Scenes.Tests
50 regInfo.ExternalHostName = "1.2.3.4"; 51 regInfo.ExternalHostName = "1.2.3.4";
51 52
52 AgentCircuitManager acm = new AgentCircuitManager(); 53 AgentCircuitManager acm = new AgentCircuitManager();
53 CommunicationsManager cm = new CommunicationsManager(null, null, null, false, null); 54 CommunicationsManager cm = new TestCommunicationsManager();
54 //SceneCommunicationService scs = new SceneCommunicationService(cm); 55 //SceneCommunicationService scs = new SceneCommunicationService(cm);
55 SceneCommunicationService scs = null; 56 SceneCommunicationService scs = null;
56 StorageManager sm = new OpenSim.Region.Environment.StorageManager("OpenSim.Data.Null.dll", "", ""); 57 StorageManager sm = new OpenSim.Region.Environment.StorageManager("OpenSim.Data.Null.dll", "", "");
@@ -62,6 +63,10 @@ namespace OpenSim.Region.Environment.Scenes.Tests
62 63
63 testScene.LandChannel = new TestLandChannel(); 64 testScene.LandChannel = new TestLandChannel();
64 65
66 PhysicsPluginManager physicsPluginManager = new PhysicsPluginManager();
67 physicsPluginManager.LoadPlugins();
68 testScene.PhysicsScene = physicsPluginManager.GetPhysicsScene("basicphysics", "ZeroMesher", configSource);
69
65 return testScene; 70 return testScene;
66 } 71 }
67 72
diff --git a/OpenSim/Region/Environment/Scenes/Tests/TestClient.cs b/OpenSim/Region/Environment/Scenes/Tests/TestClient.cs
new file mode 100644
index 0000000..15c6ad1
--- /dev/null
+++ b/OpenSim/Region/Environment/Scenes/Tests/TestClient.cs
@@ -0,0 +1,938 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Net;
31using OpenMetaverse;
32using OpenMetaverse.Packets;
33using OpenSim.Framework;
34using OpenSim.Region.Environment.Scenes;
35
36namespace OpenSim.Region.Environment.Scenes.Tests
37{
38 public class TestClient : IClientAPI
39 {
40 private Scene m_scene;
41
42// disable warning: public events, part of the public API
43#pragma warning disable 67
44
45 public event Action<IClientAPI> OnLogout;
46 public event ObjectPermissions OnObjectPermissions;
47
48 public event MoneyTransferRequest OnMoneyTransferRequest;
49 public event ParcelBuy OnParcelBuy;
50 public event Action<IClientAPI> OnConnectionClosed;
51
52 public event ImprovedInstantMessage OnInstantMessage;
53 public event ChatMessage OnChatFromClient;
54 public event TextureRequest OnRequestTexture;
55 public event RezObject OnRezObject;
56 public event ModifyTerrain OnModifyTerrain;
57 public event BakeTerrain OnBakeTerrain;
58 public event SetAppearance OnSetAppearance;
59 public event AvatarNowWearing OnAvatarNowWearing;
60 public event RezSingleAttachmentFromInv OnRezSingleAttachmentFromInv;
61 public event UUIDNameRequest OnDetachAttachmentIntoInv;
62 public event ObjectAttach OnObjectAttach;
63 public event ObjectDeselect OnObjectDetach;
64 public event ObjectDrop OnObjectDrop;
65 public event StartAnim OnStartAnim;
66 public event StopAnim OnStopAnim;
67 public event LinkObjects OnLinkObjects;
68 public event DelinkObjects OnDelinkObjects;
69 public event RequestMapBlocks OnRequestMapBlocks;
70 public event RequestMapName OnMapNameRequest;
71 public event TeleportLocationRequest OnTeleportLocationRequest;
72 public event TeleportLandmarkRequest OnTeleportLandmarkRequest;
73 public event DisconnectUser OnDisconnectUser;
74 public event RequestAvatarProperties OnRequestAvatarProperties;
75 public event SetAlwaysRun OnSetAlwaysRun;
76
77 public event DeRezObject OnDeRezObject;
78 public event Action<IClientAPI> OnRegionHandShakeReply;
79 public event GenericCall2 OnRequestWearables;
80 public event GenericCall2 OnCompleteMovementToRegion;
81 public event UpdateAgent OnAgentUpdate;
82 public event AgentRequestSit OnAgentRequestSit;
83 public event AgentSit OnAgentSit;
84 public event AvatarPickerRequest OnAvatarPickerRequest;
85 public event Action<IClientAPI> OnRequestAvatarsData;
86 public event AddNewPrim OnAddPrim;
87 public event RequestGodlikePowers OnRequestGodlikePowers;
88 public event GodKickUser OnGodKickUser;
89 public event ObjectDuplicate OnObjectDuplicate;
90 public event GrabObject OnGrabObject;
91 public event ObjectSelect OnDeGrabObject;
92 public event MoveObject OnGrabUpdate;
93 public event ViewerEffectEventHandler OnViewerEffect;
94
95 public event FetchInventory OnAgentDataUpdateRequest;
96 public event FetchInventory OnUserInfoRequest;
97 public event TeleportLocationRequest OnSetStartLocationRequest;
98
99 public event UpdateShape OnUpdatePrimShape;
100 public event ObjectExtraParams OnUpdateExtraParams;
101 public event RequestObjectPropertiesFamily OnRequestObjectPropertiesFamily;
102 public event ObjectSelect OnObjectSelect;
103 public event GenericCall7 OnObjectDescription;
104 public event GenericCall7 OnObjectName;
105 public event GenericCall7 OnObjectClickAction;
106 public event GenericCall7 OnObjectMaterial;
107 public event UpdatePrimFlags OnUpdatePrimFlags;
108 public event UpdatePrimTexture OnUpdatePrimTexture;
109 public event UpdateVector OnUpdatePrimGroupPosition;
110 public event UpdateVector OnUpdatePrimSinglePosition;
111 public event UpdatePrimRotation OnUpdatePrimGroupRotation;
112 public event UpdatePrimSingleRotation OnUpdatePrimSingleRotation;
113 public event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation;
114 public event UpdateVector OnUpdatePrimScale;
115 public event UpdateVector OnUpdatePrimGroupScale;
116 public event StatusChange OnChildAgentStatus;
117 public event GenericCall2 OnStopMovement;
118 public event Action<UUID> OnRemoveAvatar;
119
120 public event CreateNewInventoryItem OnCreateNewInventoryItem;
121 public event CreateInventoryFolder OnCreateNewInventoryFolder;
122 public event UpdateInventoryFolder OnUpdateInventoryFolder;
123 public event MoveInventoryFolder OnMoveInventoryFolder;
124 public event RemoveInventoryFolder OnRemoveInventoryFolder;
125 public event RemoveInventoryItem OnRemoveInventoryItem;
126 public event FetchInventoryDescendents OnFetchInventoryDescendents;
127 public event PurgeInventoryDescendents OnPurgeInventoryDescendents;
128 public event FetchInventory OnFetchInventory;
129 public event RequestTaskInventory OnRequestTaskInventory;
130 public event UpdateInventoryItem OnUpdateInventoryItem;
131 public event CopyInventoryItem OnCopyInventoryItem;
132 public event MoveInventoryItem OnMoveInventoryItem;
133 public event UDPAssetUploadRequest OnAssetUploadRequest;
134 public event RequestTerrain OnRequestTerrain;
135 public event RequestTerrain OnUploadTerrain;
136 public event XferReceive OnXferReceive;
137 public event RequestXfer OnRequestXfer;
138 public event ConfirmXfer OnConfirmXfer;
139 public event AbortXfer OnAbortXfer;
140 public event RezScript OnRezScript;
141 public event UpdateTaskInventory OnUpdateTaskInventory;
142 public event MoveTaskInventory OnMoveTaskItem;
143 public event RemoveTaskInventory OnRemoveTaskItem;
144 public event RequestAsset OnRequestAsset;
145 public event GenericMessage OnGenericMessage;
146 public event UUIDNameRequest OnNameFromUUIDRequest;
147 public event UUIDNameRequest OnUUIDGroupNameRequest;
148
149 public event ParcelPropertiesRequest OnParcelPropertiesRequest;
150 public event ParcelDivideRequest OnParcelDivideRequest;
151 public event ParcelJoinRequest OnParcelJoinRequest;
152 public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
153 public event ParcelAbandonRequest OnParcelAbandonRequest;
154 public event ParcelGodForceOwner OnParcelGodForceOwner;
155 public event ParcelReclaim OnParcelReclaim;
156 public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
157 public event ParcelAccessListRequest OnParcelAccessListRequest;
158 public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
159 public event ParcelSelectObjects OnParcelSelectObjects;
160 public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
161 public event ObjectDeselect OnObjectDeselect;
162 public event RegionInfoRequest OnRegionInfoRequest;
163 public event EstateCovenantRequest OnEstateCovenantRequest;
164 public event EstateChangeInfo OnEstateChangeInfo;
165
166 public event ObjectDuplicateOnRay OnObjectDuplicateOnRay;
167
168 public event FriendActionDelegate OnApproveFriendRequest;
169 public event FriendActionDelegate OnDenyFriendRequest;
170 public event FriendshipTermination OnTerminateFriendship;
171
172 public event EconomyDataRequest OnEconomyDataRequest;
173 public event MoneyBalanceRequest OnMoneyBalanceRequest;
174 public event UpdateAvatarProperties OnUpdateAvatarProperties;
175
176 public event ObjectIncludeInSearch OnObjectIncludeInSearch;
177 public event UUIDNameRequest OnTeleportHomeRequest;
178
179 public event ScriptAnswer OnScriptAnswer;
180 public event RequestPayPrice OnRequestPayPrice;
181 public event ObjectSaleInfo OnObjectSaleInfo;
182 public event ObjectBuy OnObjectBuy;
183 public event BuyObjectInventory OnBuyObjectInventory;
184 public event AgentSit OnUndo;
185
186 public event ForceReleaseControls OnForceReleaseControls;
187
188 public event GodLandStatRequest OnLandStatRequest;
189 public event RequestObjectPropertiesFamily OnObjectGroupRequest;
190
191 public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
192 public event SetEstateFlagsRequest OnSetEstateFlagsRequest;
193 public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
194 public event SetEstateTerrainDetailTexture OnSetEstateTerrainDetailTexture;
195 public event SetEstateTerrainTextureHeights OnSetEstateTerrainTextureHeights;
196 public event CommitEstateTerrainTextureRequest OnCommitEstateTerrainTextureRequest;
197 public event SetRegionTerrainSettings OnSetRegionTerrainSettings;
198 public event EstateRestartSimRequest OnEstateRestartSimRequest;
199 public event EstateChangeCovenantRequest OnEstateChangeCovenantRequest;
200 public event UpdateEstateAccessDeltaRequest OnUpdateEstateAccessDeltaRequest;
201 public event SimulatorBlueBoxMessageRequest OnSimulatorBlueBoxMessageRequest;
202 public event EstateBlueBoxMessageRequest OnEstateBlueBoxMessageRequest;
203 public event EstateDebugRegionRequest OnEstateDebugRegionRequest;
204 public event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest;
205 public event EstateTeleportAllUsersHomeRequest OnEstateTeleportAllUsersHomeRequest;
206 public event ScriptReset OnScriptReset;
207 public event GetScriptRunning OnGetScriptRunning;
208 public event SetScriptRunning OnSetScriptRunning;
209 public event UpdateVector OnAutoPilotGo;
210
211 public event TerrainUnacked OnUnackedTerrain;
212
213 public event RegionHandleRequest OnRegionHandleRequest;
214 public event ParcelInfoRequest OnParcelInfoRequest;
215
216 public event ActivateGesture OnActivateGesture;
217 public event DeactivateGesture OnDeactivateGesture;
218 public event ObjectOwner OnObjectOwner;
219
220 public event DirPlacesQuery OnDirPlacesQuery;
221 public event DirFindQuery OnDirFindQuery;
222 public event DirLandQuery OnDirLandQuery;
223 public event DirPopularQuery OnDirPopularQuery;
224 public event DirClassifiedQuery OnDirClassifiedQuery;
225 public event EventInfoRequest OnEventInfoRequest;
226 public event ParcelSetOtherCleanTime OnParcelSetOtherCleanTime;
227
228 public event MapItemRequest OnMapItemRequest;
229
230 public event OfferCallingCard OnOfferCallingCard;
231 public event AcceptCallingCard OnAcceptCallingCard;
232 public event DeclineCallingCard OnDeclineCallingCard;
233
234 public event SoundTrigger OnSoundTrigger;
235
236#pragma warning restore 67
237
238 /// <value>
239 /// This agent's UUID
240 /// </value>
241 private UUID myID;
242
243 private Vector3 startPos = new Vector3(128, 128, 2);
244
245 public virtual Vector3 StartPos
246 {
247 get { return startPos; }
248 set { }
249 }
250
251 public virtual UUID AgentId
252 {
253 get { return myID; }
254 }
255
256 public UUID SessionId
257 {
258 get { return UUID.Zero; }
259 }
260
261 public UUID SecureSessionId
262 {
263 get { return UUID.Zero; }
264 }
265
266 public virtual string FirstName
267 {
268 get { return m_firstName; }
269 }
270 private string m_firstName;
271
272 public virtual string LastName
273 {
274 get { return m_lastName; }
275 }
276 private string m_lastName;
277
278 public virtual String Name
279 {
280 get { return FirstName + " " + LastName; }
281 }
282
283 public bool IsActive
284 {
285 get { return true; }
286 set { }
287 }
288
289 public UUID ActiveGroupId
290 {
291 get { return UUID.Zero; }
292 }
293
294 public string ActiveGroupName
295 {
296 get { return String.Empty; }
297 }
298
299 public ulong ActiveGroupPowers
300 {
301 get { return 0; }
302 }
303
304 public ulong GetGroupPowers(UUID groupID)
305 {
306 return 0;
307 }
308
309 public virtual int NextAnimationSequenceNumber
310 {
311 get { return 1; }
312 }
313
314 public IScene Scene
315 {
316 get { return m_scene; }
317 }
318
319 public bool SendLogoutPacketWhenClosing
320 {
321 set { }
322 }
323
324 /// <summary>
325 /// Constructor
326 /// </summary>
327 /// <param name="agentData"></param>
328 public TestClient(AgentCircuitData agentData)
329 {
330 myID = agentData.AgentID;
331 m_firstName = agentData.firstname;
332 m_lastName = agentData.lastname;
333 }
334
335 public virtual void ActivateGesture(UUID assetId, UUID gestureId)
336 {
337 }
338
339 public virtual void SendWearables(AvatarWearable[] wearables, int serial)
340 {
341 }
342
343 public virtual void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry)
344 {
345 }
346
347 public virtual void Kick(string message)
348 {
349 }
350
351 public virtual void SendStartPingCheck(byte seq)
352 {
353 }
354
355 public virtual void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data)
356 {
357 }
358
359 public virtual void SendAgentDataUpdate(UUID agentid, UUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle)
360 {
361
362 }
363
364 public virtual void SendKillObject(ulong regionHandle, uint localID)
365 {
366 }
367
368 public virtual void SetChildAgentThrottle(byte[] throttle)
369 {
370 }
371 public byte[] GetThrottlesPacked(float multiplier)
372 {
373 return new byte[0];
374 }
375
376
377 public virtual void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId)
378 {
379 }
380
381 public virtual void SendChatMessage(string message, byte type, Vector3 fromPos, string fromName,
382 UUID fromAgentID, byte source, byte audible)
383 {
384 }
385
386 public virtual void SendChatMessage(byte[] message, byte type, Vector3 fromPos, string fromName,
387 UUID fromAgentID, byte source, byte audible)
388 {
389 }
390
391 public void SendInstantMessage(UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, uint timeStamp)
392 {
393
394 }
395
396 public void SendInstantMessage(UUID fromAgent, string message, UUID toAgent, string fromName, byte dialog, uint timeStamp, UUID transactionID, bool fromGroup, byte[] binaryBucket)
397 {
398
399 }
400
401 public void SendGenericMessage(string method, List<string> message)
402 {
403
404 }
405
406 public virtual void SendLayerData(float[] map)
407 {
408 }
409
410 public virtual void SendLayerData(int px, int py, float[] map)
411 {
412 }
413 public virtual void SendLayerData(int px, int py, float[] map, bool track)
414 {
415 }
416
417 public virtual void SendWindData(Vector2[] windSpeeds) { }
418
419 public virtual void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look)
420 {
421 }
422
423 public virtual void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint)
424 {
425 }
426
427 public virtual AgentCircuitData RequestClientInfo()
428 {
429 return new AgentCircuitData();
430 }
431
432 public virtual void CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt,
433 IPEndPoint newRegionExternalEndPoint, string capsURL)
434 {
435 }
436
437 public virtual void SendMapBlock(List<MapBlockData> mapBlocks, uint flag)
438 {
439 }
440
441 public virtual void SendLocalTeleport(Vector3 position, Vector3 lookAt, uint flags)
442 {
443 }
444
445 public virtual void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint,
446 uint locationID, uint flags, string capsURL)
447 {
448 }
449
450 public virtual void SendTeleportFailed(string reason)
451 {
452 }
453
454 public virtual void SendTeleportLocationStart()
455 {
456 }
457
458 public virtual void SendMoneyBalance(UUID transaction, bool success, byte[] description, int balance)
459 {
460 }
461
462 public virtual void SendPayPrice(UUID objectID, int[] payPrice)
463 {
464 }
465
466 public virtual void SendAvatarData(ulong regionHandle, string firstName, string lastName, string grouptitle, UUID avatarID,
467 uint avatarLocalID, Vector3 Pos, byte[] textureEntry, uint parentID, Quaternion rotation)
468 {
469 }
470
471 public virtual void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID,
472 Vector3 position, Vector3 velocity, Quaternion rotation)
473 {
474 }
475
476 public virtual void SendCoarseLocationUpdate(List<Vector3> CoarseLocations)
477 {
478 }
479
480 public virtual void AttachObject(uint localID, Quaternion rotation, byte attachPoint, UUID ownerID)
481 {
482 }
483
484 public virtual void SendDialog(string objectname, UUID objectID, UUID ownerID, string msg, UUID textureID, int ch, string[] buttonlabels)
485 {
486 }
487
488 public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID,
489 PrimitiveBaseShape primShape, Vector3 pos, Vector3 vel,
490 Vector3 acc, Quaternion rotation, Vector3 rvel, uint flags,
491 UUID objectID, UUID ownerID, string text, byte[] color,
492 uint parentID,
493 byte[] particleSystem, byte clickAction, byte material)
494 {
495 }
496 public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID,
497 PrimitiveBaseShape primShape, Vector3 pos, Vector3 vel,
498 Vector3 acc, Quaternion rotation, Vector3 rvel, uint flags,
499 UUID objectID, UUID ownerID, string text, byte[] color,
500 uint parentID,
501 byte[] particleSystem, byte clickAction, byte material, byte[] textureanimation,
502 bool attachment, uint AttachmentPoint, UUID AssetId, UUID SoundId, double SoundVolume, byte SoundFlags, double SoundRadius)
503 {
504 }
505 public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID,
506 Vector3 position, Quaternion rotation, Vector3 velocity,
507 Vector3 rotationalvelocity, byte state, UUID AssetId,
508 UUID ownerID, int attachPoint)
509 {
510 }
511
512 public virtual void SendInventoryFolderDetails(UUID ownerID, UUID folderID,
513 List<InventoryItemBase> items,
514 List<InventoryFolderBase> folders,
515 bool fetchFolders,
516 bool fetchItems)
517 {
518 }
519
520 public virtual void SendInventoryItemDetails(UUID ownerID, InventoryItemBase item)
521 {
522 }
523
524 public virtual void SendInventoryItemCreateUpdate(InventoryItemBase Item)
525 {
526 }
527
528 public virtual void SendRemoveInventoryItem(UUID itemID)
529 {
530 }
531
532 /// <see>IClientAPI.SendBulkUpdateInventory(InventoryItemBase)</see>
533 public virtual void SendBulkUpdateInventory(InventoryItemBase item)
534 {
535 }
536
537 public UUID GetDefaultAnimation(string name)
538 {
539 return UUID.Zero;
540 }
541
542 public void SendTakeControls(int controls, bool passToAgent, bool TakeControls)
543 {
544 }
545
546 public virtual void SendTaskInventory(UUID taskID, short serial, byte[] fileName)
547 {
548 }
549
550 public virtual void SendXferPacket(ulong xferID, uint packet, byte[] data)
551 {
552 }
553
554 public virtual void SendEconomyData(float EnergyEfficiency, int ObjectCapacity, int ObjectCount, int PriceEnergyUnit,
555 int PriceGroupCreate, int PriceObjectClaim, float PriceObjectRent, float PriceObjectScaleFactor,
556 int PriceParcelClaim, float PriceParcelClaimFactor, int PriceParcelRent, int PricePublicObjectDecay,
557 int PricePublicObjectDelete, int PriceRentLight, int PriceUpload, int TeleportMinPrice, float TeleportPriceExponent)
558 {
559
560 }
561 public virtual void SendNameReply(UUID profileId, string firstname, string lastname)
562 {
563 }
564
565 public virtual void SendPreLoadSound(UUID objectID, UUID ownerID, UUID soundID)
566 {
567 }
568
569 public virtual void SendPlayAttachedSound(UUID soundID, UUID objectID, UUID ownerID, float gain,
570 byte flags)
571 {
572 }
573
574 public void SendTriggeredSound(UUID soundID, UUID ownerID, UUID objectID, UUID parentID, ulong handle, Vector3 position, float gain)
575 {
576 }
577
578 public void SendAttachedSoundGainChange(UUID objectID, float gain)
579 {
580
581 }
582
583 public void SendAlertMessage(string message)
584 {
585 }
586
587 public void SendAgentAlertMessage(string message, bool modal)
588 {
589 }
590
591 public void SendSystemAlertMessage(string message)
592 {
593 }
594
595 public void SendLoadURL(string objectname, UUID objectID, UUID ownerID, bool groupOwned, string message,
596 string url)
597 {
598 }
599
600 public virtual void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args)
601 {
602 if (OnRegionHandShakeReply != null)
603 {
604 OnRegionHandShakeReply(this);
605 }
606
607 if (OnCompleteMovementToRegion != null)
608 {
609 OnCompleteMovementToRegion();
610 }
611 }
612 public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID)
613 {
614 }
615
616 public void SendConfirmXfer(ulong xferID, uint PacketID)
617 {
618 }
619
620 public void SendXferRequest(ulong XferID, short AssetType, UUID vFileID, byte FilePath, byte[] FileName)
621 {
622 }
623
624 public void SendInitiateDownload(string simFileName, string clientFileName)
625 {
626 }
627
628 public void SendImageFirstPart(ushort numParts, UUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec)
629 {
630 }
631
632 public void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData)
633 {
634 }
635
636 public void SendImageNotFound(UUID imageid)
637 {
638 }
639
640 public void SendShutdownConnectionNotice()
641 {
642 }
643
644 public void SendSimStats(SimStats stats)
645 {
646 }
647
648 public void SendObjectPropertiesFamilyData(uint RequestFlags, UUID ObjectUUID, UUID OwnerID, UUID GroupID,
649 uint BaseMask, uint OwnerMask, uint GroupMask, uint EveryoneMask,
650 uint NextOwnerMask, int OwnershipCost, byte SaleType,int SalePrice, uint Category,
651 UUID LastOwnerID, string ObjectName, string Description)
652 {
653 }
654
655 public void SendObjectPropertiesReply(UUID ItemID, ulong CreationDate, UUID CreatorUUID, UUID FolderUUID, UUID FromTaskUUID,
656 UUID GroupUUID, short InventorySerial, UUID LastOwnerUUID, UUID ObjectUUID,
657 UUID OwnerUUID, string TouchTitle, byte[] TextureID, string SitTitle, string ItemName,
658 string ItemDescription, uint OwnerMask, uint NextOwnerMask, uint GroupMask, uint EveryoneMask,
659 uint BaseMask, byte saleType, int salePrice)
660 {
661 }
662
663 public void SendAgentOffline(UUID[] agentIDs)
664 {
665
666 }
667
668 public void SendAgentOnline(UUID[] agentIDs)
669 {
670
671 }
672
673 public void SendSitResponse(UUID TargetID, Vector3 OffsetPos, Quaternion SitOrientation, bool autopilot,
674 Vector3 CameraAtOffset, Vector3 CameraEyeOffset, bool ForceMouseLook)
675 {
676 }
677
678 public void SendAdminResponse(UUID Token, uint AdminLevel)
679 {
680
681 }
682
683 public void SendGroupMembership(GroupMembershipData[] GroupMembership)
684 {
685
686 }
687
688 public bool AddMoney(int debit)
689 {
690 return false;
691 }
692
693 public void SendSunPos(Vector3 sunPos, Vector3 sunVel, ulong time, uint dlen, uint ylen, float phase)
694 {
695 }
696
697 public void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks)
698 {
699 }
700
701 public void SendViewerTime(int phase)
702 {
703 }
704
705 public void SendAvatarProperties(UUID avatarID, string aboutText, string bornOn, Byte[] charterMember,
706 string flAbout, uint flags, UUID flImageID, UUID imageID, string profileURL,
707 UUID partnerID)
708 {
709 }
710
711 public void SetDebugPacketLevel(int newDebug)
712 {
713 }
714
715 public void InPacket(object NewPack)
716 {
717 }
718
719 public void ProcessInPacket(Packet NewPack)
720 {
721 }
722
723 public void Close(bool ShutdownCircuit)
724 {
725 }
726
727 public void Stop()
728 {
729 }
730
731 private uint m_circuitCode;
732
733 public uint CircuitCode
734 {
735 get { return m_circuitCode; }
736 set { m_circuitCode = value; }
737 }
738
739 public void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message)
740 {
741
742 }
743 public void SendLogoutPacket()
744 {
745 }
746
747 public void Terminate()
748 {
749 }
750
751 public ClientInfo GetClientInfo()
752 {
753 return null;
754 }
755
756 public void SetClientInfo(ClientInfo info)
757 {
758 }
759
760 public void SendScriptQuestion(UUID objectID, string taskName, string ownerName, UUID itemID, int question)
761 {
762 }
763 public void SendHealth(float health)
764 {
765 }
766
767 public void SendEstateManagersList(UUID invoice, UUID[] EstateManagers, uint estateID)
768 {
769 }
770
771 public void SendBannedUserList(UUID invoice, EstateBan[] banlist, uint estateID)
772 {
773 }
774
775 public void SendRegionInfoToEstateMenu(RegionInfoForEstateMenuArgs args)
776 {
777 }
778
779 public void SendEstateCovenantInformation(UUID covenant)
780 {
781 }
782
783 public void SendDetailedEstateData(UUID invoice, string estateName, uint estateID, uint parentEstate, uint estateFlags, uint sunPosition, UUID covenant, string abuseEmail, UUID estateOwner)
784 {
785 }
786
787 public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags)
788 {
789 }
790
791 public void SendLandAccessListData(List<UUID> avatars, uint accessFlag, int localLandID)
792 {
793 }
794
795 public void SendForceClientSelectObjects(List<uint> objectIDs)
796 {
797 }
798
799 public void SendLandObjectOwners(Dictionary<UUID, int> ownersAndCount)
800 {
801 }
802
803 public void SendLandParcelOverlay(byte[] data, int sequence_id)
804 {
805 }
806
807 public void SendParcelMediaCommand(uint flags, ParcelMediaCommandEnum command, float time)
808 {
809 }
810
811 public void SendParcelMediaUpdate(string mediaUrl, UUID mediaTextureID, byte autoScale, string mediaType,
812 string mediaDesc, int mediaWidth, int mediaHeight, byte mediaLoop)
813 {
814 }
815
816 public void SendGroupNameReply(UUID groupLLUID, string GroupName)
817 {
818 }
819
820 public void SendLandStatReply(uint reportType, uint requestFlags, uint resultCount, LandStatReportItem[] lsrpia)
821 {
822 }
823
824 public void SendScriptRunningReply(UUID objectID, UUID itemID, bool running)
825 {
826 }
827
828 public void SendAsset(AssetRequestToClient req)
829 {
830 }
831
832 public void SendTexture(AssetBase TextureAsset)
833 {
834
835 }
836
837 public void SendSetFollowCamProperties (UUID objectID, SortedDictionary<int, float> parameters)
838 {
839 }
840
841 public void SendClearFollowCamProperties (UUID objectID)
842 {
843 }
844
845 public void SendRegionHandle (UUID regoinID, ulong handle)
846 {
847 }
848
849 public void SendParcelInfo (RegionInfo info, LandData land, UUID parcelID, uint x, uint y)
850 {
851 }
852
853 public void SetClientOption(string option, string value)
854 {
855 }
856
857 public string GetClientOption(string option)
858 {
859 return string.Empty;
860 }
861
862 public void SendScriptTeleportRequest(string objName, string simName, Vector3 pos, Vector3 lookAt)
863 {
864 }
865
866 public void SendDirPlacesReply(UUID queryID, DirPlacesReplyData[] data)
867 {
868 }
869
870 public void SendDirPeopleReply(UUID queryID, DirPeopleReplyData[] data)
871 {
872 }
873
874 public void SendDirEventsReply(UUID queryID, DirEventsReplyData[] data)
875 {
876 }
877
878 public void SendDirGroupsReply(UUID queryID, DirGroupsReplyData[] data)
879 {
880 }
881
882 public void SendDirClassifiedReply(UUID queryID, DirClassifiedReplyData[] data)
883 {
884 }
885
886 public void SendDirLandReply(UUID queryID, DirLandReplyData[] data)
887 {
888 }
889
890 public void SendDirPopularReply(UUID queryID, DirPopularReplyData[] data)
891 {
892 }
893
894 public void SendMapItemReply(mapItemReply[] replies, uint mapitemtype, uint flags)
895 {
896 }
897
898 public void KillEndDone()
899 {
900 }
901
902 public void SendEventInfoReply (EventData info)
903 {
904 }
905
906 public void SendOfferCallingCard (UUID destID, UUID transactionID)
907 {
908 }
909
910 public void SendAcceptCallingCard (UUID transactionID)
911 {
912 }
913
914 public void SendDeclineCallingCard (UUID transactionID)
915 {
916 }
917
918 public void SendAvatarGroupsReply(UUID avatarID, GroupMembershipData[] data)
919 {
920 }
921
922 public void SendJoinGroupReply(UUID groupID, bool success)
923 {
924 }
925
926 public void SendEjectGroupMemberReply(UUID agentID, UUID groupID, bool succss)
927 {
928 }
929
930 public void SendLeaveGroupReply(UUID groupID, bool success)
931 {
932 }
933
934 public void SendTerminateFriend(UUID exFriendID)
935 {
936 }
937 }
938}
diff --git a/OpenSim/Region/Environment/Scenes/Tests/TestCommunicationsManager.cs b/OpenSim/Region/Environment/Scenes/Tests/TestCommunicationsManager.cs
new file mode 100644
index 0000000..2225edd
--- /dev/null
+++ b/OpenSim/Region/Environment/Scenes/Tests/TestCommunicationsManager.cs
@@ -0,0 +1,44 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using OpenSim.Framework;
29using OpenSim.Framework.Communications;
30using OpenSim.Framework.Communications.Cache;
31using OpenSim.Framework.Servers;
32using OpenSim.Region.Communications.Local;
33
34namespace OpenSim.Region.Environment.Scenes.Tests
35{
36 public class TestCommunicationsManager : CommunicationsManager
37 {
38 public TestCommunicationsManager()
39 : base(null, null, null, false, null)
40 {
41 m_userService = new LocalUserServices(null, 991, 992, null);
42 }
43 }
44}
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
index 702f5f1..cacb9eb 100644
--- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
+++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
@@ -34,7 +34,7 @@ using OpenSim.Region.Physics.Manager;
34namespace OpenSim.Region.Physics.BasicPhysicsPlugin 34namespace OpenSim.Region.Physics.BasicPhysicsPlugin
35{ 35{
36 /// <summary> 36 /// <summary>
37 /// Will be the PhysX plugin but for now will be a very basic physics engine 37 /// Effectively a physics plugin that simulates no physics at all.
38 /// </summary> 38 /// </summary>
39 public class BasicPhysicsPlugin : IPhysicsPlugin 39 public class BasicPhysicsPlugin : IPhysicsPlugin
40 { 40 {