diff options
author | lbsa71 | 2007-09-19 00:30:55 +0000 |
---|---|---|
committer | lbsa71 | 2007-09-19 00:30:55 +0000 |
commit | 8f0b03597b0bc8ea6873af9a55495407fae1ec56 (patch) | |
tree | f9f4de38379aebf2223ad4cb10a3d9ebcfa52a4f /OpenSim/Region/Environment/Scenes | |
parent | * Moved SendLogoutPacket back to IClientAPI. (diff) | |
download | opensim-SC-8f0b03597b0bc8ea6873af9a55495407fae1ec56.zip opensim-SC-8f0b03597b0bc8ea6873af9a55495407fae1ec56.tar.gz opensim-SC-8f0b03597b0bc8ea6873af9a55495407fae1ec56.tar.bz2 opensim-SC-8f0b03597b0bc8ea6873af9a55495407fae1ec56.tar.xz |
* Modernized ScriptManager to new interface-based module calls.
* 'remove redundant this qualifier' ftw
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
17 files changed, 991 insertions, 906 deletions
diff --git a/OpenSim/Region/Environment/Scenes/EntityBase.cs b/OpenSim/Region/Environment/Scenes/EntityBase.cs index 2caab9e..bc27ec8 100644 --- a/OpenSim/Region/Environment/Scenes/EntityBase.cs +++ b/OpenSim/Region/Environment/Scenes/EntityBase.cs | |||
@@ -1,30 +1,25 @@ | |||
1 | using System.Collections.Generic; | 1 | using System.Collections.Generic; |
2 | using Axiom.Math; | 2 | using Axiom.Math; |
3 | using libsecondlife; | 3 | using libsecondlife; |
4 | using OpenSim.Region.Environment.Scenes.Scripting; | ||
5 | 4 | ||
6 | namespace OpenSim.Region.Environment.Scenes | 5 | namespace OpenSim.Region.Environment.Scenes |
7 | { | 6 | { |
8 | public abstract class EntityBase | 7 | public abstract class EntityBase |
9 | { | 8 | { |
10 | protected List<EntityBase> m_children; | 9 | protected List<EntityBase> m_children; |
11 | 10 | ||
12 | protected Scene m_scene; | 11 | protected Scene m_scene; |
13 | 12 | ||
14 | public LLUUID m_uuid; | 13 | public LLUUID m_uuid; |
14 | |||
15 | public virtual LLUUID UUID | 15 | public virtual LLUUID UUID |
16 | { | 16 | { |
17 | get | 17 | get { return m_uuid; } |
18 | { | 18 | set { m_uuid = value; } |
19 | return m_uuid; | ||
20 | } | ||
21 | set | ||
22 | { | ||
23 | m_uuid = value; | ||
24 | } | ||
25 | } | 19 | } |
26 | 20 | ||
27 | protected string m_name; | 21 | protected string m_name; |
22 | |||
28 | /// <summary> | 23 | /// <summary> |
29 | /// | 24 | /// |
30 | /// </summary> | 25 | /// </summary> |
@@ -35,6 +30,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
35 | } | 30 | } |
36 | 31 | ||
37 | protected LLVector3 m_pos; | 32 | protected LLVector3 m_pos; |
33 | |||
38 | /// <summary> | 34 | /// <summary> |
39 | /// | 35 | /// |
40 | /// </summary> | 36 | /// </summary> |
@@ -45,6 +41,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
45 | } | 41 | } |
46 | 42 | ||
47 | public LLVector3 m_velocity; | 43 | public LLVector3 m_velocity; |
44 | |||
48 | /// <summary> | 45 | /// <summary> |
49 | /// | 46 | /// |
50 | /// </summary> | 47 | /// </summary> |
@@ -55,6 +52,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
55 | } | 52 | } |
56 | 53 | ||
57 | protected Quaternion m_rotation = new Quaternion(0, 0, 1, 0); | 54 | protected Quaternion m_rotation = new Quaternion(0, 0, 1, 0); |
55 | |||
58 | public virtual Quaternion Rotation | 56 | public virtual Quaternion Rotation |
59 | { | 57 | { |
60 | get { return m_rotation; } | 58 | get { return m_rotation; } |
@@ -62,6 +60,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
62 | } | 60 | } |
63 | 61 | ||
64 | protected uint m_localId; | 62 | protected uint m_localId; |
63 | |||
65 | public virtual uint LocalId | 64 | public virtual uint LocalId |
66 | { | 65 | { |
67 | get { return m_localId; } | 66 | get { return m_localId; } |
@@ -125,5 +124,5 @@ namespace OpenSim.Region.Environment.Scenes | |||
125 | } | 124 | } |
126 | 125 | ||
127 | public abstract void SetText(string text, Vector3 color, double alpha); | 126 | public abstract void SetText(string text, Vector3 color, double alpha); |
128 | } | 127 | } |
129 | } \ No newline at end of file | 128 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/IScenePresenceBody.cs b/OpenSim/Region/Environment/Scenes/IScenePresenceBody.cs index 8551b70..851ad4e 100644 --- a/OpenSim/Region/Environment/Scenes/IScenePresenceBody.cs +++ b/OpenSim/Region/Environment/Scenes/IScenePresenceBody.cs | |||
@@ -11,4 +11,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
11 | void SendOurAppearance(IClientAPI OurClient); | 11 | void SendOurAppearance(IClientAPI OurClient); |
12 | void SendAppearanceToOtherAgent(ScenePresence avatarInfo); | 12 | void SendAppearanceToOtherAgent(ScenePresence avatarInfo); |
13 | } | 13 | } |
14 | } | 14 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index a259dd0..048d2b4 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -1,15 +1,13 @@ | |||
1 | using System; | 1 | using Axiom.Math; |
2 | using System.IO; | 2 | using libsecondlife; |
3 | using System.Collections.Generic; | 3 | using libsecondlife.Packets; |
4 | using libsecondlife; | 4 | using OpenSim.Framework.Communications.Caches; |
5 | using libsecondlife.Packets; | 5 | using OpenSim.Framework.Data; |
6 | using OpenSim.Framework.Interfaces; | 6 | using OpenSim.Framework.Interfaces; |
7 | using OpenSim.Framework.Types; | 7 | using OpenSim.Framework.Types; |
8 | using OpenSim.Framework.Communications.Caches; | 8 | using OpenSim.Framework.Utilities; |
9 | using OpenSim.Framework.Data; | 9 | using OpenSim.Region.Physics.Manager; |
10 | using OpenSim.Framework.Utilities; | 10 | |
11 | using OpenSim.Region.Physics.Manager; | ||
12 | |||
13 | namespace OpenSim.Region.Environment.Scenes | 11 | namespace OpenSim.Region.Environment.Scenes |
14 | { | 12 | { |
15 | public partial class Scene | 13 | public partial class Scene |
@@ -19,9 +17,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
19 | 17 | ||
20 | public void AddInventoryItem(LLUUID userID, InventoryItemBase item) | 18 | public void AddInventoryItem(LLUUID userID, InventoryItemBase item) |
21 | { | 19 | { |
22 | if (this.Avatars.ContainsKey(userID)) | 20 | if (Avatars.ContainsKey(userID)) |
23 | { | 21 | { |
24 | this.AddInventoryItem(this.Avatars[userID].ControllingClient, item); | 22 | AddInventoryItem(Avatars[userID].ControllingClient, item); |
25 | } | 23 | } |
26 | } | 24 | } |
27 | 25 | ||
@@ -37,9 +35,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
37 | 35 | ||
38 | public LLUUID CapsUpdateInventoryItemAsset(LLUUID userID, LLUUID itemID, byte[] data) | 36 | public LLUUID CapsUpdateInventoryItemAsset(LLUUID userID, LLUUID itemID, byte[] data) |
39 | { | 37 | { |
40 | if (this.Avatars.ContainsKey(userID)) | 38 | if (Avatars.ContainsKey(userID)) |
41 | { | 39 | { |
42 | return this.CapsUpdateInventoryItemAsset(this.Avatars[userID].ControllingClient, itemID, data); | 40 | return CapsUpdateInventoryItemAsset(Avatars[userID].ControllingClient, itemID, data); |
43 | } | 41 | } |
44 | return LLUUID.Zero; | 42 | return LLUUID.Zero; |
45 | } | 43 | } |
@@ -57,8 +55,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
57 | AssetBase asset; | 55 | AssetBase asset; |
58 | asset = new AssetBase(); | 56 | asset = new AssetBase(); |
59 | asset.FullID = LLUUID.Random(); | 57 | asset.FullID = LLUUID.Random(); |
60 | asset.Type = (sbyte)item.assetType; | 58 | asset.Type = (sbyte) item.assetType; |
61 | asset.InvType = (sbyte)item.invType; | 59 | asset.InvType = (sbyte) item.invType; |
62 | asset.Name = item.inventoryName; | 60 | asset.Name = item.inventoryName; |
63 | asset.Data = data; | 61 | asset.Data = data; |
64 | commsManager.AssetCache.AddAsset(asset); | 62 | commsManager.AssetCache.AddAsset(asset); |
@@ -83,7 +81,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
83 | return LLUUID.Zero; | 81 | return LLUUID.Zero; |
84 | } | 82 | } |
85 | 83 | ||
86 | public void UDPUpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, LLUUID assetID, LLUUID itemID) | 84 | public void UDPUpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, LLUUID assetID, |
85 | LLUUID itemID) | ||
87 | { | 86 | { |
88 | CachedUserInfo userInfo = commsManager.UserProfiles.GetUserDetails(remoteClient.AgentId); | 87 | CachedUserInfo userInfo = commsManager.UserProfiles.GetUserDetails(remoteClient.AgentId); |
89 | if (userInfo != null) | 88 | if (userInfo != null) |
@@ -93,7 +92,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
93 | InventoryItemBase item = userInfo.RootFolder.HasItem(itemID); | 92 | InventoryItemBase item = userInfo.RootFolder.HasItem(itemID); |
94 | if (item != null) | 93 | if (item != null) |
95 | { | 94 | { |
96 | AgentAssetTransactions transactions = commsManager.TransactionsManager.GetUserTransActions(remoteClient.AgentId); | 95 | AgentAssetTransactions transactions = |
96 | commsManager.TransactionsManager.GetUserTransActions(remoteClient.AgentId); | ||
97 | if (transactions != null) | 97 | if (transactions != null) |
98 | { | 98 | { |
99 | AssetBase asset = null; | 99 | AssetBase asset = null; |
@@ -112,8 +112,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
112 | { | 112 | { |
113 | asset.Name = item.inventoryName; | 113 | asset.Name = item.inventoryName; |
114 | asset.Description = item.inventoryDescription; | 114 | asset.Description = item.inventoryDescription; |
115 | asset.InvType = (sbyte)item.invType; | 115 | asset.InvType = (sbyte) item.invType; |
116 | asset.Type = (sbyte)item.assetType; | 116 | asset.Type = (sbyte) item.assetType; |
117 | item.assetID = asset.FullID; | 117 | item.assetID = asset.FullID; |
118 | 118 | ||
119 | if (addToCache) | 119 | if (addToCache) |
@@ -143,7 +143,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
143 | /// <param name="type"></param> | 143 | /// <param name="type"></param> |
144 | /// <param name="wearableType"></param> | 144 | /// <param name="wearableType"></param> |
145 | /// <param name="nextOwnerMask"></param> | 145 | /// <param name="nextOwnerMask"></param> |
146 | public void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID transActionID, LLUUID folderID, uint callbackID, string description, string name, sbyte invType, sbyte type, byte wearableType, uint nextOwnerMask) | 146 | public void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID transActionID, LLUUID folderID, |
147 | uint callbackID, string description, string name, sbyte invType, sbyte type, | ||
148 | byte wearableType, uint nextOwnerMask) | ||
147 | { | 149 | { |
148 | if (transActionID == LLUUID.Zero) | 150 | if (transActionID == LLUUID.Zero) |
149 | { | 151 | { |
@@ -157,7 +159,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
157 | asset.Type = type; | 159 | asset.Type = type; |
158 | asset.FullID = LLUUID.Random(); | 160 | asset.FullID = LLUUID.Random(); |
159 | asset.Data = new byte[1]; | 161 | asset.Data = new byte[1]; |
160 | this.commsManager.AssetCache.AddAsset(asset); | 162 | commsManager.AssetCache.AddAsset(asset); |
161 | 163 | ||
162 | InventoryItemBase item = new InventoryItemBase(); | 164 | InventoryItemBase item = new InventoryItemBase(); |
163 | item.avatarID = remoteClient.AgentId; | 165 | item.avatarID = remoteClient.AgentId; |
@@ -178,7 +180,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
178 | } | 180 | } |
179 | else | 181 | else |
180 | { | 182 | { |
181 | commsManager.TransactionsManager.HandleInventoryFromTransaction(remoteClient, transActionID, folderID, callbackID, description, name, invType, type, wearableType, nextOwnerMask); | 183 | commsManager.TransactionsManager.HandleInventoryFromTransaction(remoteClient, transActionID, folderID, |
184 | callbackID, description, name, invType, | ||
185 | type, wearableType, nextOwnerMask); | ||
182 | //System.Console.WriteLine("request to create inventory item from transaction " + transActionID); | 186 | //System.Console.WriteLine("request to create inventory item from transaction " + transActionID); |
183 | } | 187 | } |
184 | } | 188 | } |
@@ -195,15 +199,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
195 | { | 199 | { |
196 | if (ent is SceneObjectGroup) | 200 | if (ent is SceneObjectGroup) |
197 | { | 201 | { |
198 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(primLocalID); | 202 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); |
199 | if (hasPrim != false) | 203 | if (hasPrim != false) |
200 | { | 204 | { |
201 | bool fileChange = ((SceneObjectGroup)ent).GetPartInventoryFileName(remoteClient, primLocalID); | 205 | bool fileChange = ((SceneObjectGroup) ent).GetPartInventoryFileName(remoteClient, primLocalID); |
202 | if (fileChange) | 206 | if (fileChange) |
203 | { | 207 | { |
204 | if (this.XferManager != null) | 208 | if (XferManager != null) |
205 | { | 209 | { |
206 | ((SceneObjectGroup)ent).RequestInventoryFile(primLocalID, XferManager); | 210 | ((SceneObjectGroup) ent).RequestInventoryFile(primLocalID, XferManager); |
207 | } | 211 | } |
208 | } | 212 | } |
209 | break; | 213 | break; |
@@ -219,14 +223,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
219 | { | 223 | { |
220 | if (ent is SceneObjectGroup) | 224 | if (ent is SceneObjectGroup) |
221 | { | 225 | { |
222 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 226 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
223 | if (hasPrim != false) | 227 | if (hasPrim != false) |
224 | { | 228 | { |
225 | int type = ((SceneObjectGroup)ent).RemoveInventoryItem(remoteClient, localID, itemID); | 229 | int type = ((SceneObjectGroup) ent).RemoveInventoryItem(remoteClient, localID, itemID); |
226 | ((SceneObjectGroup)ent).GetProperites(remoteClient); | 230 | ((SceneObjectGroup) ent).GetProperites(remoteClient); |
227 | if (type == 10) | 231 | if (type == 10) |
228 | { | 232 | { |
229 | this.EventManager.TriggerRemoveScript(localID, itemID); | 233 | EventManager.TriggerRemoveScript(localID, itemID); |
230 | } | 234 | } |
231 | } | 235 | } |
232 | } | 236 | } |
@@ -255,7 +259,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
255 | { | 259 | { |
256 | string script = Util.FieldToString(rezAsset.Data); | 260 | string script = Util.FieldToString(rezAsset.Data); |
257 | //Console.WriteLine("rez script "+script); | 261 | //Console.WriteLine("rez script "+script); |
258 | this.EventManager.TriggerRezScript(localID, copyID, script); | 262 | EventManager.TriggerRezScript(localID, copyID, script); |
259 | rezzed = true; | 263 | rezzed = true; |
260 | } | 264 | } |
261 | else | 265 | else |
@@ -266,7 +270,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
266 | { | 270 | { |
267 | string script = Util.FieldToString(rezAsset.Data); | 271 | string script = Util.FieldToString(rezAsset.Data); |
268 | // Console.WriteLine("rez script " + script); | 272 | // Console.WriteLine("rez script " + script); |
269 | this.EventManager.TriggerRezScript(localID, copyID, script); | 273 | EventManager.TriggerRezScript(localID, copyID, script); |
270 | rezzed = true; | 274 | rezzed = true; |
271 | } | 275 | } |
272 | } | 276 | } |
@@ -278,12 +282,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
278 | { | 282 | { |
279 | if (ent is SceneObjectGroup) | 283 | if (ent is SceneObjectGroup) |
280 | { | 284 | { |
281 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 285 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
282 | if (hasPrim != false) | 286 | if (hasPrim != false) |
283 | { | 287 | { |
284 | 288 | bool added = | |
285 | bool added = ((SceneObjectGroup)ent).AddInventoryItem(remoteClient, localID, item, copyID); | 289 | ((SceneObjectGroup) ent).AddInventoryItem(remoteClient, localID, item, |
286 | ((SceneObjectGroup)ent).GetProperites(remoteClient); | 290 | copyID); |
291 | ((SceneObjectGroup) ent).GetProperites(remoteClient); | ||
287 | } | 292 | } |
288 | } | 293 | } |
289 | } | 294 | } |
@@ -300,7 +305,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
300 | /// <param name="simClient"></param> | 305 | /// <param name="simClient"></param> |
301 | public void DeRezObject(Packet packet, IClientAPI remoteClient) | 306 | public void DeRezObject(Packet packet, IClientAPI remoteClient) |
302 | { | 307 | { |
303 | DeRezObjectPacket DeRezPacket = (DeRezObjectPacket)packet; | 308 | DeRezObjectPacket DeRezPacket = (DeRezObjectPacket) packet; |
304 | 309 | ||
305 | if (DeRezPacket.AgentBlock.DestinationID == LLUUID.Zero) | 310 | if (DeRezPacket.AgentBlock.DestinationID == LLUUID.Zero) |
306 | { | 311 | { |
@@ -312,7 +317,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
312 | { | 317 | { |
313 | EntityBase selectedEnt = null; | 318 | EntityBase selectedEnt = null; |
314 | //OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LocalID:" + Data.ObjectLocalID.ToString()); | 319 | //OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LocalID:" + Data.ObjectLocalID.ToString()); |
315 | foreach (EntityBase ent in this.Entities.Values) | 320 | foreach (EntityBase ent in Entities.Values) |
316 | { | 321 | { |
317 | if (ent.LocalId == Data.ObjectLocalID) | 322 | if (ent.LocalId == Data.ObjectLocalID) |
318 | { | 323 | { |
@@ -322,15 +327,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
322 | } | 327 | } |
323 | if (selectedEnt != null) | 328 | if (selectedEnt != null) |
324 | { | 329 | { |
325 | if (PermissionsMngr.CanDeRezObject(remoteClient.AgentId, ((SceneObjectGroup)selectedEnt).UUID)) | 330 | if (PermissionsMngr.CanDeRezObject(remoteClient.AgentId, ((SceneObjectGroup) selectedEnt).UUID)) |
326 | { | 331 | { |
327 | string sceneObjectXml = ((SceneObjectGroup)selectedEnt).ToXmlString(); | 332 | string sceneObjectXml = ((SceneObjectGroup) selectedEnt).ToXmlString(); |
328 | CachedUserInfo userInfo = commsManager.UserProfiles.GetUserDetails(remoteClient.AgentId); | 333 | CachedUserInfo userInfo = commsManager.UserProfiles.GetUserDetails(remoteClient.AgentId); |
329 | if (userInfo != null) | 334 | if (userInfo != null) |
330 | { | 335 | { |
331 | AssetBase asset = new AssetBase(); | 336 | AssetBase asset = new AssetBase(); |
332 | asset.Name = ((SceneObjectGroup)selectedEnt).GetPartName(selectedEnt.LocalId); | 337 | asset.Name = ((SceneObjectGroup) selectedEnt).GetPartName(selectedEnt.LocalId); |
333 | asset.Description = ((SceneObjectGroup)selectedEnt).GetPartDescription(selectedEnt.LocalId); | 338 | asset.Description = |
339 | ((SceneObjectGroup) selectedEnt).GetPartDescription(selectedEnt.LocalId); | ||
334 | asset.InvType = 6; | 340 | asset.InvType = 6; |
335 | asset.Type = 6; | 341 | asset.Type = 6; |
336 | asset.FullID = LLUUID.Random(); | 342 | asset.FullID = LLUUID.Random(); |
@@ -355,21 +361,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
355 | remoteClient.SendInventoryItemUpdate(item); | 361 | remoteClient.SendInventoryItemUpdate(item); |
356 | } | 362 | } |
357 | 363 | ||
358 | SceneObjectPart rootPart = ((SceneObjectGroup)selectedEnt).GetChildPart(((SceneObjectGroup)selectedEnt).UUID); | 364 | SceneObjectPart rootPart = |
365 | ((SceneObjectGroup) selectedEnt).GetChildPart(((SceneObjectGroup) selectedEnt).UUID); | ||
359 | if (rootPart.PhysActor != null) | 366 | if (rootPart.PhysActor != null) |
360 | { | 367 | { |
361 | this.phyScene.RemovePrim(rootPart.PhysActor); | 368 | phyScene.RemovePrim(rootPart.PhysActor); |
362 | rootPart.PhysActor = null; | 369 | rootPart.PhysActor = null; |
363 | } | 370 | } |
364 | 371 | ||
365 | storageManager.DataStore.RemoveObject(((SceneObjectGroup)selectedEnt).UUID, m_regInfo.SimUUID); | 372 | storageManager.DataStore.RemoveObject(((SceneObjectGroup) selectedEnt).UUID, |
366 | ((SceneObjectGroup)selectedEnt).DeleteGroup(); | 373 | m_regInfo.SimUUID); |
374 | ((SceneObjectGroup) selectedEnt).DeleteGroup(); | ||
367 | 375 | ||
368 | lock (Entities) | 376 | lock (Entities) |
369 | { | 377 | { |
370 | Entities.Remove(((SceneObjectGroup)selectedEnt).UUID); | 378 | Entities.Remove(((SceneObjectGroup) selectedEnt).UUID); |
371 | } | 379 | } |
372 | ((SceneObjectGroup)selectedEnt).DeleteParts(); | 380 | ((SceneObjectGroup) selectedEnt).DeleteParts(); |
373 | } | 381 | } |
374 | } | 382 | } |
375 | } | 383 | } |
@@ -389,7 +397,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
389 | AssetBase rezAsset = commsManager.AssetCache.GetAsset(item.assetID, false); | 397 | AssetBase rezAsset = commsManager.AssetCache.GetAsset(item.assetID, false); |
390 | if (rezAsset != null) | 398 | if (rezAsset != null) |
391 | { | 399 | { |
392 | this.AddRezObject(Util.FieldToString(rezAsset.Data), pos); | 400 | AddRezObject(Util.FieldToString(rezAsset.Data), pos); |
393 | userInfo.DeleteItem(remoteClient.AgentId, item); | 401 | userInfo.DeleteItem(remoteClient.AgentId, item); |
394 | remoteClient.SendRemoveInventoryItem(itemID); | 402 | remoteClient.SendRemoveInventoryItem(itemID); |
395 | } | 403 | } |
@@ -399,7 +407,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
399 | rezAsset = commsManager.AssetCache.GetAsset(item.assetID, false); | 407 | rezAsset = commsManager.AssetCache.GetAsset(item.assetID, false); |
400 | if (rezAsset != null) | 408 | if (rezAsset != null) |
401 | { | 409 | { |
402 | this.AddRezObject(Util.FieldToString(rezAsset.Data), pos); | 410 | AddRezObject(Util.FieldToString(rezAsset.Data), pos); |
403 | userInfo.DeleteItem(remoteClient.AgentId, item); | 411 | userInfo.DeleteItem(remoteClient.AgentId, item); |
404 | remoteClient.SendRemoveInventoryItem(itemID); | 412 | remoteClient.SendRemoveInventoryItem(itemID); |
405 | } | 413 | } |
@@ -411,17 +419,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
411 | 419 | ||
412 | private void AddRezObject(string xmlData, LLVector3 pos) | 420 | private void AddRezObject(string xmlData, LLVector3 pos) |
413 | { | 421 | { |
414 | SceneObjectGroup group = new SceneObjectGroup(this, this.m_regionHandle, xmlData); | 422 | SceneObjectGroup group = new SceneObjectGroup(this, m_regionHandle, xmlData); |
415 | this.AddEntity(group); | 423 | AddEntity(group); |
416 | group.AbsolutePosition = pos; | 424 | group.AbsolutePosition = pos; |
417 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); | 425 | SceneObjectPart rootPart = group.GetChildPart(group.UUID); |
418 | if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 426 | if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) |
419 | rootPart.PhysActor = phyScene.AddPrim( | 427 | rootPart.PhysActor = phyScene.AddPrim( |
420 | new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z), | 428 | new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, |
429 | rootPart.AbsolutePosition.Z), | ||
421 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), | 430 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), |
422 | new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 431 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
423 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); | 432 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); |
424 | } | 433 | } |
425 | } | 434 | } |
426 | 435 | } \ No newline at end of file | |
427 | } | ||
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 881b4a1..5a7dda5 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -25,17 +25,11 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | using System.IO; | ||
30 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
31 | using libsecondlife; | 29 | using libsecondlife; |
32 | using libsecondlife.Packets; | 30 | using libsecondlife.Packets; |
31 | using OpenSim.Framework.Console; | ||
33 | using OpenSim.Framework.Interfaces; | 32 | using OpenSim.Framework.Interfaces; |
34 | using OpenSim.Framework.Types; | ||
35 | using OpenSim.Framework.Communications.Caches; | ||
36 | using OpenSim.Framework.Data; | ||
37 | using OpenSim.Framework.Utilities; | ||
38 | using OpenSim.Region.Environment.Interfaces; | ||
39 | 33 | ||
40 | namespace OpenSim.Region.Environment.Scenes | 34 | namespace OpenSim.Region.Environment.Scenes |
41 | { | 35 | { |
@@ -50,7 +44,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
50 | /// <param name="action">The action to be performed</param> | 44 | /// <param name="action">The action to be performed</param> |
51 | /// <param name="north">Distance from the north border where the cursor is located</param> | 45 | /// <param name="north">Distance from the north border where the cursor is located</param> |
52 | /// <param name="west">Distance from the west border where the cursor is located</param> | 46 | /// <param name="west">Distance from the west border where the cursor is located</param> |
53 | public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, IClientAPI remoteUser) | 47 | public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, |
48 | IClientAPI remoteUser) | ||
54 | { | 49 | { |
55 | // Do a permissions check before allowing terraforming. | 50 | // Do a permissions check before allowing terraforming. |
56 | // random users are now no longer allowed to terraform | 51 | // random users are now no longer allowed to terraform |
@@ -71,17 +66,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
71 | /// <param name="timestamp"></param> | 66 | /// <param name="timestamp"></param> |
72 | /// <param name="fromAgentName"></param> | 67 | /// <param name="fromAgentName"></param> |
73 | /// <param name="message"></param> | 68 | /// <param name="message"></param> |
74 | public void InstantMessage(LLUUID fromAgentID, LLUUID fromAgentSession, LLUUID toAgentID, LLUUID imSessionID, uint timestamp, string fromAgentName, string message, byte dialog) | 69 | public void InstantMessage(LLUUID fromAgentID, LLUUID fromAgentSession, LLUUID toAgentID, LLUUID imSessionID, |
70 | uint timestamp, string fromAgentName, string message, byte dialog) | ||
75 | { | 71 | { |
76 | if (this.Avatars.ContainsKey(toAgentID)) | 72 | if (Avatars.ContainsKey(toAgentID)) |
77 | { | 73 | { |
78 | if (this.Avatars.ContainsKey(fromAgentID)) | 74 | if (Avatars.ContainsKey(fromAgentID)) |
79 | { | 75 | { |
80 | // Local sim message | 76 | // Local sim message |
81 | ScenePresence fromAvatar = this.Avatars[fromAgentID]; | 77 | ScenePresence fromAvatar = Avatars[fromAgentID]; |
82 | ScenePresence toAvatar = this.Avatars[toAgentID]; | 78 | ScenePresence toAvatar = Avatars[toAgentID]; |
83 | string fromName = fromAvatar.Firstname + " " + fromAvatar.Lastname; | 79 | string fromName = fromAvatar.Firstname + " " + fromAvatar.Lastname; |
84 | toAvatar.ControllingClient.SendInstantMessage(fromAgentID, fromAgentSession, message, toAgentID, imSessionID, fromName, dialog, timestamp); | 80 | toAvatar.ControllingClient.SendInstantMessage(fromAgentID, fromAgentSession, message, toAgentID, |
81 | imSessionID, fromName, dialog, timestamp); | ||
85 | } | 82 | } |
86 | else | 83 | else |
87 | { | 84 | { |
@@ -102,7 +99,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
102 | /// <param name="fromPos"></param> | 99 | /// <param name="fromPos"></param> |
103 | /// <param name="fromName"></param> | 100 | /// <param name="fromName"></param> |
104 | /// <param name="fromAgentID"></param> | 101 | /// <param name="fromAgentID"></param> |
105 | public void SimChat(byte[] message, byte type, int channel, LLVector3 fromPos, string fromName, LLUUID fromAgentID) | 102 | public void SimChat(byte[] message, byte type, int channel, LLVector3 fromPos, string fromName, |
103 | LLUUID fromAgentID) | ||
106 | { | 104 | { |
107 | if (m_simChatModule != null) | 105 | if (m_simChatModule != null) |
108 | { | 106 | { |
@@ -123,9 +121,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
123 | { | 121 | { |
124 | if (ent is SceneObjectGroup) | 122 | if (ent is SceneObjectGroup) |
125 | { | 123 | { |
126 | if (((SceneObjectGroup)ent).LocalId == originalPrim) | 124 | if (((SceneObjectGroup) ent).LocalId == originalPrim) |
127 | { | 125 | { |
128 | originPrim = (SceneObjectGroup)ent; | 126 | originPrim = (SceneObjectGroup) ent; |
129 | break; | 127 | break; |
130 | } | 128 | } |
131 | } | 129 | } |
@@ -135,7 +133,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
135 | { | 133 | { |
136 | SceneObjectGroup copy = originPrim.Copy(); | 134 | SceneObjectGroup copy = originPrim.Copy(); |
137 | copy.AbsolutePosition = copy.AbsolutePosition + offset; | 135 | copy.AbsolutePosition = copy.AbsolutePosition + offset; |
138 | this.Entities.Add(copy.UUID, copy); | 136 | Entities.Add(copy.UUID, copy); |
139 | 137 | ||
140 | copy.ScheduleGroupForFullUpdate(); | 138 | copy.ScheduleGroupForFullUpdate(); |
141 | /* List<ScenePresence> avatars = this.RequestAvatarList(); | 139 | /* List<ScenePresence> avatars = this.RequestAvatarList(); |
@@ -143,13 +141,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
143 | { | 141 | { |
144 | // copy.SendAllChildPrimsToClient(avatars[i].ControllingClient); | 142 | // copy.SendAllChildPrimsToClient(avatars[i].ControllingClient); |
145 | }*/ | 143 | }*/ |
146 | |||
147 | } | 144 | } |
148 | else | 145 | else |
149 | { | 146 | { |
150 | OpenSim.Framework.Console.MainLog.Instance.Warn("client", "Attempted to duplicate nonexistant prim"); | 147 | MainLog.Instance.Warn("client", "Attempted to duplicate nonexistant prim"); |
151 | } | 148 | } |
152 | |||
153 | } | 149 | } |
154 | 150 | ||
155 | /// <summary> | 151 | /// <summary> |
@@ -164,9 +160,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
164 | { | 160 | { |
165 | if (ent is SceneObjectGroup) | 161 | if (ent is SceneObjectGroup) |
166 | { | 162 | { |
167 | if (((SceneObjectGroup)ent).LocalId == parentPrim) | 163 | if (((SceneObjectGroup) ent).LocalId == parentPrim) |
168 | { | 164 | { |
169 | parenPrim = (SceneObjectGroup)ent; | 165 | parenPrim = (SceneObjectGroup) ent; |
170 | break; | 166 | break; |
171 | } | 167 | } |
172 | } | 168 | } |
@@ -181,9 +177,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
181 | { | 177 | { |
182 | if (ent is SceneObjectGroup) | 178 | if (ent is SceneObjectGroup) |
183 | { | 179 | { |
184 | if (((SceneObjectGroup)ent).LocalId == childPrims[i]) | 180 | if (((SceneObjectGroup) ent).LocalId == childPrims[i]) |
185 | { | 181 | { |
186 | children.Add((SceneObjectGroup)ent); | 182 | children.Add((SceneObjectGroup) ent); |
187 | } | 183 | } |
188 | } | 184 | } |
189 | } | 185 | } |
@@ -208,10 +204,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
208 | { | 204 | { |
209 | if (ent is SceneObjectGroup) | 205 | if (ent is SceneObjectGroup) |
210 | { | 206 | { |
211 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(primLocalID); | 207 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); |
212 | if (hasPrim != false) | 208 | if (hasPrim != false) |
213 | { | 209 | { |
214 | ((SceneObjectGroup)ent).UpdateShape(shapeBlock, primLocalID); | 210 | ((SceneObjectGroup) ent).UpdateShape(shapeBlock, primLocalID); |
215 | break; | 211 | break; |
216 | } | 212 | } |
217 | } | 213 | } |
@@ -225,10 +221,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
225 | { | 221 | { |
226 | if (ent is SceneObjectGroup) | 222 | if (ent is SceneObjectGroup) |
227 | { | 223 | { |
228 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(primLocalID); | 224 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); |
229 | if (hasPrim != false) | 225 | if (hasPrim != false) |
230 | { | 226 | { |
231 | ((SceneObjectGroup)ent).UpdateExtraParam(primLocalID, type, inUse, data); | 227 | ((SceneObjectGroup) ent).UpdateExtraParam(primLocalID, type, inUse, data); |
232 | break; | 228 | break; |
233 | } | 229 | } |
234 | } | 230 | } |
@@ -246,11 +242,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
246 | { | 242 | { |
247 | if (ent is SceneObjectGroup) | 243 | if (ent is SceneObjectGroup) |
248 | { | 244 | { |
249 | if (((SceneObjectGroup)ent).LocalId == primLocalID) | 245 | if (((SceneObjectGroup) ent).LocalId == primLocalID) |
250 | { | 246 | { |
251 | ((SceneObjectGroup)ent).GetProperites(remoteClient); | 247 | ((SceneObjectGroup) ent).GetProperites(remoteClient); |
252 | ((SceneObjectGroup)ent).IsSelected = true; | 248 | ((SceneObjectGroup) ent).IsSelected = true; |
253 | this.LandManager.setPrimsTainted(); | 249 | LandManager.setPrimsTainted(); |
254 | break; | 250 | break; |
255 | } | 251 | } |
256 | } | 252 | } |
@@ -268,10 +264,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
268 | { | 264 | { |
269 | if (ent is SceneObjectGroup) | 265 | if (ent is SceneObjectGroup) |
270 | { | 266 | { |
271 | if (((SceneObjectGroup)ent).LocalId == primLocalID) | 267 | if (((SceneObjectGroup) ent).LocalId == primLocalID) |
272 | { | 268 | { |
273 | ((SceneObjectGroup)ent).IsSelected = false; | 269 | ((SceneObjectGroup) ent).IsSelected = false; |
274 | this.LandManager.setPrimsTainted(); | 270 | LandManager.setPrimsTainted(); |
275 | break; | 271 | break; |
276 | } | 272 | } |
277 | } | 273 | } |
@@ -290,10 +286,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
290 | { | 286 | { |
291 | if (ent is SceneObjectGroup) | 287 | if (ent is SceneObjectGroup) |
292 | { | 288 | { |
293 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(primLocalID); | 289 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); |
294 | if (hasPrim != false) | 290 | if (hasPrim != false) |
295 | { | 291 | { |
296 | ((SceneObjectGroup)ent).SetPartDescription(description, primLocalID); | 292 | ((SceneObjectGroup) ent).SetPartDescription(description, primLocalID); |
297 | break; | 293 | break; |
298 | } | 294 | } |
299 | } | 295 | } |
@@ -312,10 +308,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
312 | { | 308 | { |
313 | if (ent is SceneObjectGroup) | 309 | if (ent is SceneObjectGroup) |
314 | { | 310 | { |
315 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(primLocalID); | 311 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(primLocalID); |
316 | if (hasPrim != false) | 312 | if (hasPrim != false) |
317 | { | 313 | { |
318 | ((SceneObjectGroup)ent).SetPartName(name, primLocalID); | 314 | ((SceneObjectGroup) ent).SetPartName(name, primLocalID); |
319 | break; | 315 | break; |
320 | } | 316 | } |
321 | } | 317 | } |
@@ -331,10 +327,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
331 | { | 327 | { |
332 | if (ent is SceneObjectGroup) | 328 | if (ent is SceneObjectGroup) |
333 | { | 329 | { |
334 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(objectID); | 330 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(objectID); |
335 | if (hasPrim != false) | 331 | if (hasPrim != false) |
336 | { | 332 | { |
337 | ((SceneObjectGroup)ent).GrabMovement(offset, pos, remoteClient); | 333 | ((SceneObjectGroup) ent).GrabMovement(offset, pos, remoteClient); |
338 | break; | 334 | break; |
339 | } | 335 | } |
340 | } | 336 | } |
@@ -350,7 +346,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
350 | /// <param name="remoteClient"></param> | 346 | /// <param name="remoteClient"></param> |
351 | public void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient) | 347 | public void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient) |
352 | { | 348 | { |
353 | |||
354 | } | 349 | } |
355 | 350 | ||
356 | /// <summary> | 351 | /// <summary> |
@@ -366,10 +361,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
366 | { | 361 | { |
367 | if (ent is SceneObjectGroup) | 362 | if (ent is SceneObjectGroup) |
368 | { | 363 | { |
369 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 364 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
370 | if (hasPrim != false) | 365 | if (hasPrim != false) |
371 | { | 366 | { |
372 | ((SceneObjectGroup)ent).UpdateTextureEntry(localID, texture); | 367 | ((SceneObjectGroup) ent).UpdateTextureEntry(localID, texture); |
373 | break; | 368 | break; |
374 | } | 369 | } |
375 | } | 370 | } |
@@ -389,10 +384,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
389 | { | 384 | { |
390 | if (ent is SceneObjectGroup) | 385 | if (ent is SceneObjectGroup) |
391 | { | 386 | { |
392 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 387 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
393 | if (hasPrim != false) | 388 | if (hasPrim != false) |
394 | { | 389 | { |
395 | ((SceneObjectGroup)ent).UpdateGroupPosition(pos); | 390 | ((SceneObjectGroup) ent).UpdateGroupPosition(pos); |
396 | break; | 391 | break; |
397 | } | 392 | } |
398 | } | 393 | } |
@@ -406,10 +401,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
406 | { | 401 | { |
407 | if (ent is SceneObjectGroup) | 402 | if (ent is SceneObjectGroup) |
408 | { | 403 | { |
409 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 404 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
410 | if (hasPrim != false) | 405 | if (hasPrim != false) |
411 | { | 406 | { |
412 | ((SceneObjectGroup)ent).UpdateSinglePosition(pos, localID); | 407 | ((SceneObjectGroup) ent).UpdateSinglePosition(pos, localID); |
413 | break; | 408 | break; |
414 | } | 409 | } |
415 | } | 410 | } |
@@ -430,10 +425,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
430 | { | 425 | { |
431 | if (ent is SceneObjectGroup) | 426 | if (ent is SceneObjectGroup) |
432 | { | 427 | { |
433 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 428 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
434 | if (hasPrim != false) | 429 | if (hasPrim != false) |
435 | { | 430 | { |
436 | ((SceneObjectGroup)ent).UpdateGroupRotation(pos, rot); | 431 | ((SceneObjectGroup) ent).UpdateGroupRotation(pos, rot); |
437 | break; | 432 | break; |
438 | } | 433 | } |
439 | } | 434 | } |
@@ -453,10 +448,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
453 | { | 448 | { |
454 | if (ent is SceneObjectGroup) | 449 | if (ent is SceneObjectGroup) |
455 | { | 450 | { |
456 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 451 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
457 | if (hasPrim != false) | 452 | if (hasPrim != false) |
458 | { | 453 | { |
459 | ((SceneObjectGroup)ent).UpdateGroupRotation(rot); | 454 | ((SceneObjectGroup) ent).UpdateGroupRotation(rot); |
460 | break; | 455 | break; |
461 | } | 456 | } |
462 | } | 457 | } |
@@ -476,10 +471,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
476 | { | 471 | { |
477 | if (ent is SceneObjectGroup) | 472 | if (ent is SceneObjectGroup) |
478 | { | 473 | { |
479 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 474 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
480 | if (hasPrim != false) | 475 | if (hasPrim != false) |
481 | { | 476 | { |
482 | ((SceneObjectGroup)ent).UpdateSingleRotation(rot, localID); | 477 | ((SceneObjectGroup) ent).UpdateSingleRotation(rot, localID); |
483 | break; | 478 | break; |
484 | } | 479 | } |
485 | } | 480 | } |
@@ -499,10 +494,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
499 | { | 494 | { |
500 | if (ent is SceneObjectGroup) | 495 | if (ent is SceneObjectGroup) |
501 | { | 496 | { |
502 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 497 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
503 | if (hasPrim != false) | 498 | if (hasPrim != false) |
504 | { | 499 | { |
505 | ((SceneObjectGroup)ent).Resize(scale, localID); | 500 | ((SceneObjectGroup) ent).Resize(scale, localID); |
506 | break; | 501 | break; |
507 | } | 502 | } |
508 | } | 503 | } |
@@ -511,7 +506,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
511 | 506 | ||
512 | public void StartAnimation(IClientAPI client, LLUUID animID, int seq) | 507 | public void StartAnimation(IClientAPI client, LLUUID animID, int seq) |
513 | { | 508 | { |
514 | List<ScenePresence> avatars = this.RequestAvatarList(); | 509 | List<ScenePresence> avatars = RequestAvatarList(); |
515 | for (int i = 0; i < avatars.Count; i++) | 510 | for (int i = 0; i < avatars.Count; i++) |
516 | { | 511 | { |
517 | avatars[i].ControllingClient.SendAnimation(animID, seq, client.AgentId); | 512 | avatars[i].ControllingClient.SendAnimation(animID, seq, client.AgentId); |
@@ -520,7 +515,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
520 | 515 | ||
521 | public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) | 516 | public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) |
522 | { | 517 | { |
523 | this.EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient); | 518 | EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient); |
524 | } | 519 | } |
525 | } | 520 | } |
526 | } | 521 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index d763fe3..df125aa 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -27,28 +27,28 @@ | |||
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.IO; | ||
30 | using System.Threading; | 31 | using System.Threading; |
31 | using System.Timers; | 32 | using System.Timers; |
32 | using System.IO; | ||
33 | using System.Xml; | 33 | using System.Xml; |
34 | using Axiom.Math; | ||
34 | using libsecondlife; | 35 | using libsecondlife; |
35 | using OpenSim.Framework; | 36 | using OpenSim.Framework; |
36 | using OpenSim.Framework.Communications; | 37 | using OpenSim.Framework.Communications; |
38 | using OpenSim.Framework.Communications.Caches; | ||
37 | using OpenSim.Framework.Console; | 39 | using OpenSim.Framework.Console; |
38 | using OpenSim.Framework.Interfaces; | 40 | using OpenSim.Framework.Interfaces; |
39 | using OpenSim.Framework.Servers; | 41 | using OpenSim.Framework.Servers; |
40 | using OpenSim.Framework.Types; | 42 | using OpenSim.Framework.Types; |
41 | using OpenSim.Framework.Utilities; | 43 | using OpenSim.Framework.Utilities; |
42 | using OpenSim.Region.Physics.Manager; | 44 | using OpenSim.Region.Capabilities; |
43 | using OpenSim.Framework.Communications.Caches; | ||
44 | using OpenSim.Region.Environment.LandManagement; | ||
45 | using OpenSim.Region.Environment; | ||
46 | using OpenSim.Region.Environment.Interfaces; | 45 | using OpenSim.Region.Environment.Interfaces; |
46 | using OpenSim.Region.Environment.LandManagement; | ||
47 | using OpenSim.Region.Environment.Scenes.Scripting; | ||
47 | using OpenSim.Region.Environment.Types; | 48 | using OpenSim.Region.Environment.Types; |
49 | using OpenSim.Region.Physics.Manager; | ||
48 | using OpenSim.Region.Terrain; | 50 | using OpenSim.Region.Terrain; |
49 | using OpenSim.Framework.Data; | 51 | using Timer=System.Timers.Timer; |
50 | using Caps = OpenSim.Region.Capabilities.Caps; | ||
51 | using Timer = System.Timers.Timer; | ||
52 | 52 | ||
53 | namespace OpenSim.Region.Environment.Scenes | 53 | namespace OpenSim.Region.Environment.Scenes |
54 | { | 54 | { |
@@ -61,8 +61,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
61 | protected Timer m_heartbeatTimer = new Timer(); | 61 | protected Timer m_heartbeatTimer = new Timer(); |
62 | protected Dictionary<LLUUID, ScenePresence> Avatars; | 62 | protected Dictionary<LLUUID, ScenePresence> Avatars; |
63 | protected Dictionary<LLUUID, SceneObjectGroup> Prims; | 63 | protected Dictionary<LLUUID, SceneObjectGroup> Prims; |
64 | public PhysicsScene phyScene; /// publicized so it can be accessed from SceneObjectGroup. | 64 | public PhysicsScene phyScene; |
65 | |||
66 | /// publicized so it can be accessed from SceneObjectGroup. | ||
65 | protected float timeStep = 0.1f; | 67 | protected float timeStep = 0.1f; |
68 | |||
66 | private Random Rand = new Random(); | 69 | private Random Rand = new Random(); |
67 | private uint _primCount = 702000; | 70 | private uint _primCount = 702000; |
68 | private Mutex _primAllocateMutex = new Mutex(false); | 71 | private Mutex _primAllocateMutex = new Mutex(false); |
@@ -102,8 +105,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
102 | 105 | ||
103 | public AgentCircuitManager AuthenticateHandler | 106 | public AgentCircuitManager AuthenticateHandler |
104 | { | 107 | { |
105 | get { return this.authenticateHandler; } | 108 | get { return authenticateHandler; } |
106 | } | 109 | } |
110 | |||
107 | /// <summary> | 111 | /// <summary> |
108 | /// | 112 | /// |
109 | /// </summary> | 113 | /// </summary> |
@@ -141,7 +145,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
141 | 145 | ||
142 | public int TimePhase | 146 | public int TimePhase |
143 | { | 147 | { |
144 | get { return this.m_timePhase; } | 148 | get { return m_timePhase; } |
145 | } | 149 | } |
146 | 150 | ||
147 | #endregion | 151 | #endregion |
@@ -155,7 +159,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
155 | /// <param name="regionHandle">Region Handle for this region</param> | 159 | /// <param name="regionHandle">Region Handle for this region</param> |
156 | /// <param name="regionName">Region Name for this region</param> | 160 | /// <param name="regionName">Region Name for this region</param> |
157 | public Scene(RegionInfo regInfo, AgentCircuitManager authen, CommunicationsManager commsMan, | 161 | public Scene(RegionInfo regInfo, AgentCircuitManager authen, CommunicationsManager commsMan, |
158 | AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer, ModuleLoader moduleLoader) | 162 | AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer, |
163 | ModuleLoader moduleLoader) | ||
159 | { | 164 | { |
160 | updateLock = new Mutex(false); | 165 | updateLock = new Mutex(false); |
161 | 166 | ||
@@ -190,22 +195,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
190 | Prims = new Dictionary<LLUUID, SceneObjectGroup>(); | 195 | Prims = new Dictionary<LLUUID, SceneObjectGroup>(); |
191 | 196 | ||
192 | MainLog.Instance.Verbose("Creating LandMap"); | 197 | MainLog.Instance.Verbose("Creating LandMap"); |
193 | Terrain = new TerrainEngine((int)this.RegionInfo.RegionLocX, (int)this.RegionInfo.RegionLocY); | 198 | Terrain = new TerrainEngine((int) RegionInfo.RegionLocX, (int) RegionInfo.RegionLocY); |
194 | 199 | ||
195 | ScenePresence.LoadAnims(); | 200 | ScenePresence.LoadAnims(); |
196 | 201 | ||
197 | httpListener = httpServer; | 202 | httpListener = httpServer; |
198 | |||
199 | } | 203 | } |
200 | 204 | ||
201 | #endregion | 205 | #endregion |
202 | 206 | ||
203 | public void SetModuleInterfaces() | 207 | public void SetModuleInterfaces() |
204 | { | 208 | { |
205 | m_simChatModule = this.RequestModuleInterface<ISimChat>(); | 209 | m_simChatModule = RequestModuleInterface<ISimChat>(); |
206 | m_httpRequestModule = this.RequestModuleInterface<IHttpRequests>(); | 210 | m_httpRequestModule = RequestModuleInterface<IHttpRequests>(); |
207 | 211 | ||
208 | XferManager = this.RequestModuleInterface<IXfer>(); | 212 | XferManager = RequestModuleInterface<IXfer>(); |
209 | } | 213 | } |
210 | 214 | ||
211 | #region Script Handling Methods | 215 | #region Script Handling Methods |
@@ -249,7 +253,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
249 | { | 253 | { |
250 | if (phyScene.IsThreaded) | 254 | if (phyScene.IsThreaded) |
251 | { | 255 | { |
252 | phyScene.GetResults(); /// no engines implement this, and what does it have to do with threading? possible DEAD CODE | 256 | phyScene.GetResults(); |
257 | /// no engines implement this, and what does it have to do with threading? possible DEAD CODE | ||
253 | } | 258 | } |
254 | 259 | ||
255 | List<EntityBase> moveEntities = new List<EntityBase>(Entities.Values); | 260 | List<EntityBase> moveEntities = new List<EntityBase>(Entities.Values); |
@@ -308,9 +313,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
308 | { | 313 | { |
309 | for (int y = 0; y < 16; y++) | 314 | for (int y = 0; y < 16; y++) |
310 | { | 315 | { |
311 | if (Terrain.Tainted(x * 16, y * 16)) | 316 | if (Terrain.Tainted(x*16, y*16)) |
312 | { | 317 | { |
313 | SendLayerData(x, y, presence.ControllingClient, terData); | 318 | SendLayerData(x, y, presence.ControllingClient, |
319 | terData); | ||
314 | } | 320 | } |
315 | } | 321 | } |
316 | } | 322 | } |
@@ -340,7 +346,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
340 | m_timeUpdateCount++; | 346 | m_timeUpdateCount++; |
341 | if (m_timeUpdateCount > 600) | 347 | if (m_timeUpdateCount > 600) |
342 | { | 348 | { |
343 | List<ScenePresence> Avatars = this.RequestAvatarList(); | 349 | List<ScenePresence> Avatars = RequestAvatarList(); |
344 | foreach (ScenePresence avatar in Avatars) | 350 | foreach (ScenePresence avatar in Avatars) |
345 | { | 351 | { |
346 | if (!avatar.childAgent) | 352 | if (!avatar.childAgent) |
@@ -398,10 +404,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
398 | 404 | ||
399 | storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD()); | 405 | storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD()); |
400 | 406 | ||
401 | ForEachScenePresence(delegate(ScenePresence presence) | 407 | ForEachScenePresence(delegate(ScenePresence presence) { SendLayerData(presence.ControllingClient); }); |
402 | { | ||
403 | SendLayerData(presence.ControllingClient); | ||
404 | }); | ||
405 | 408 | ||
406 | foreach (LLUUID UUID in Entities.Keys) | 409 | foreach (LLUUID UUID in Entities.Keys) |
407 | { | 410 | { |
@@ -429,10 +432,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
429 | } | 432 | } |
430 | storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD()); | 433 | storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD()); |
431 | 434 | ||
432 | ForEachScenePresence(delegate(ScenePresence presence) | 435 | ForEachScenePresence(delegate(ScenePresence presence) { SendLayerData(presence.ControllingClient); }); |
433 | { | ||
434 | SendLayerData(presence.ControllingClient); | ||
435 | }); | ||
436 | 436 | ||
437 | foreach (LLUUID UUID in Entities.Keys) | 437 | foreach (LLUUID UUID in Entities.Keys) |
438 | { | 438 | { |
@@ -521,23 +521,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
521 | public void LoadPrimsFromStorage() | 521 | public void LoadPrimsFromStorage() |
522 | { | 522 | { |
523 | MainLog.Instance.Verbose("Loading objects from datastore"); | 523 | MainLog.Instance.Verbose("Loading objects from datastore"); |
524 | List<SceneObjectGroup> PrimsFromDB = storageManager.DataStore.LoadObjects(this.m_regInfo.SimUUID); | 524 | List<SceneObjectGroup> PrimsFromDB = storageManager.DataStore.LoadObjects(m_regInfo.SimUUID); |
525 | foreach (SceneObjectGroup prim in PrimsFromDB) | 525 | foreach (SceneObjectGroup prim in PrimsFromDB) |
526 | { | 526 | { |
527 | AddEntityFromStorage(prim); | 527 | AddEntityFromStorage(prim); |
528 | SceneObjectPart rootPart = prim.GetChildPart(prim.UUID); | 528 | SceneObjectPart rootPart = prim.GetChildPart(prim.UUID); |
529 | if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 529 | if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) |
530 | rootPart.PhysActor = phyScene.AddPrim( | 530 | rootPart.PhysActor = phyScene.AddPrim( |
531 | new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z), | 531 | new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, |
532 | rootPart.AbsolutePosition.Z), | ||
532 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), | 533 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), |
533 | new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 534 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
534 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); | 535 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); |
535 | } | 536 | } |
536 | MainLog.Instance.Verbose("Loaded " + PrimsFromDB.Count.ToString() + " SceneObject(s)"); | 537 | MainLog.Instance.Verbose("Loaded " + PrimsFromDB.Count.ToString() + " SceneObject(s)"); |
537 | } | 538 | } |
538 | 539 | ||
539 | 540 | ||
540 | |||
541 | /// <summary> | 541 | /// <summary> |
542 | /// Returns a new unallocated primitive ID | 542 | /// Returns a new unallocated primitive ID |
543 | /// </summary> | 543 | /// </summary> |
@@ -561,20 +561,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
561 | /// <param name="ownerID"></param> | 561 | /// <param name="ownerID"></param> |
562 | public void AddNewPrim(LLUUID ownerID, LLVector3 pos, PrimitiveBaseShape shape) | 562 | public void AddNewPrim(LLUUID ownerID, LLVector3 pos, PrimitiveBaseShape shape) |
563 | { | 563 | { |
564 | if (this.PermissionsMngr.CanRezObject(ownerID, pos)) | 564 | if (PermissionsMngr.CanRezObject(ownerID, pos)) |
565 | { | 565 | { |
566 | SceneObjectGroup sceneOb = new SceneObjectGroup(this, this.m_regionHandle, ownerID, PrimIDAllocate(), pos, shape); | 566 | SceneObjectGroup sceneOb = |
567 | new SceneObjectGroup(this, m_regionHandle, ownerID, PrimIDAllocate(), pos, shape); | ||
567 | AddEntity(sceneOb); | 568 | AddEntity(sceneOb); |
568 | SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID); | 569 | SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID); |
569 | // if grass or tree, make phantom | 570 | // if grass or tree, make phantom |
570 | if ((rootPart.Shape.PCode==95) || (rootPart.Shape.PCode==255)) | 571 | if ((rootPart.Shape.PCode == 95) || (rootPart.Shape.PCode == 255)) |
571 | { | 572 | { |
572 | rootPart.ObjectFlags += (uint)LLObject.ObjectFlags.Phantom; | 573 | rootPart.ObjectFlags += (uint) LLObject.ObjectFlags.Phantom; |
573 | } | 574 | } |
574 | // if not phantom, add to physics | 575 | // if not phantom, add to physics |
575 | if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 576 | if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) |
576 | rootPart.PhysActor = phyScene.AddPrim(new PhysicsVector(pos.X, pos.Y, pos.Z), new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), | 577 | rootPart.PhysActor = |
577 | new Axiom.Math.Quaternion()); | 578 | phyScene.AddPrim(new PhysicsVector(pos.X, pos.Y, pos.Z), |
579 | new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), | ||
580 | new Quaternion()); | ||
578 | } | 581 | } |
579 | } | 582 | } |
580 | 583 | ||
@@ -584,9 +587,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
584 | { | 587 | { |
585 | if (obj is SceneObjectGroup) | 588 | if (obj is SceneObjectGroup) |
586 | { | 589 | { |
587 | if (((SceneObjectGroup)obj).LocalId == localID) | 590 | if (((SceneObjectGroup) obj).LocalId == localID) |
588 | { | 591 | { |
589 | RemoveEntity((SceneObjectGroup)obj); | 592 | RemoveEntity((SceneObjectGroup) obj); |
590 | return; | 593 | return; |
591 | } | 594 | } |
592 | } | 595 | } |
@@ -595,21 +598,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
595 | 598 | ||
596 | public void AddEntityFromStorage(SceneObjectGroup sceneObject) | 599 | public void AddEntityFromStorage(SceneObjectGroup sceneObject) |
597 | { | 600 | { |
598 | sceneObject.RegionHandle = this.m_regionHandle; | 601 | sceneObject.RegionHandle = m_regionHandle; |
599 | sceneObject.SetScene(this); | 602 | sceneObject.SetScene(this); |
600 | foreach (SceneObjectPart part in sceneObject.Children.Values) | 603 | foreach (SceneObjectPart part in sceneObject.Children.Values) |
601 | { | 604 | { |
602 | part.LocalID = this.PrimIDAllocate(); | 605 | part.LocalID = PrimIDAllocate(); |
603 | } | 606 | } |
604 | sceneObject.UpdateParentIDs(); | 607 | sceneObject.UpdateParentIDs(); |
605 | this.AddEntity(sceneObject); | 608 | AddEntity(sceneObject); |
606 | } | 609 | } |
607 | 610 | ||
608 | public void AddEntity(SceneObjectGroup sceneObject) | 611 | public void AddEntity(SceneObjectGroup sceneObject) |
609 | { | 612 | { |
610 | if (!Entities.ContainsKey(sceneObject.UUID)) | 613 | if (!Entities.ContainsKey(sceneObject.UUID)) |
611 | { | 614 | { |
612 | // QuadTree.AddObject(sceneObject); | 615 | // QuadTree.AddObject(sceneObject); |
613 | Entities.Add(sceneObject.UUID, sceneObject); | 616 | Entities.Add(sceneObject.UUID, sceneObject); |
614 | } | 617 | } |
615 | } | 618 | } |
@@ -648,18 +651,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
648 | foreach (XmlNode aPrimNode in rootNode.ChildNodes) | 651 | foreach (XmlNode aPrimNode in rootNode.ChildNodes) |
649 | { | 652 | { |
650 | SceneObjectGroup obj = new SceneObjectGroup(this, | 653 | SceneObjectGroup obj = new SceneObjectGroup(this, |
651 | this.m_regionHandle, aPrimNode.OuterXml); | 654 | m_regionHandle, aPrimNode.OuterXml); |
652 | //if we want this to be a import method then we need new uuids for the object to avoid any clashes | 655 | //if we want this to be a import method then we need new uuids for the object to avoid any clashes |
653 | //obj.RegenerateFullIDs(); | 656 | //obj.RegenerateFullIDs(); |
654 | AddEntity(obj); | 657 | AddEntity(obj); |
655 | 658 | ||
656 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); | 659 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); |
657 | if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 660 | if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) |
658 | rootPart.PhysActor = phyScene.AddPrim( | 661 | rootPart.PhysActor = phyScene.AddPrim( |
659 | new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, rootPart.AbsolutePosition.Z), | 662 | new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, |
660 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), | 663 | rootPart.AbsolutePosition.Z), |
661 | new Axiom.Math.Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 664 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), |
662 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); | 665 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
666 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z)); | ||
663 | primCount++; | 667 | primCount++; |
664 | } | 668 | } |
665 | } | 669 | } |
@@ -679,7 +683,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
679 | { | 683 | { |
680 | if (ent is SceneObjectGroup) | 684 | if (ent is SceneObjectGroup) |
681 | { | 685 | { |
682 | stream.WriteLine(((SceneObjectGroup)ent).ToXmlString()); | 686 | stream.WriteLine(((SceneObjectGroup) ent).ToXmlString()); |
683 | primCount++; | 687 | primCount++; |
684 | } | 688 | } |
685 | } | 689 | } |
@@ -688,7 +692,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
688 | file.Close(); | 692 | file.Close(); |
689 | } | 693 | } |
690 | 694 | ||
691 | |||
692 | #endregion | 695 | #endregion |
693 | 696 | ||
694 | #region Add/Remove Avatar Methods | 697 | #region Add/Remove Avatar Methods |
@@ -703,7 +706,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
703 | { | 706 | { |
704 | SubscribeToClientEvents(client); | 707 | SubscribeToClientEvents(client); |
705 | m_estateManager.sendRegionHandshake(client); | 708 | m_estateManager.sendRegionHandshake(client); |
706 | CreateAndAddScenePresence(client, child ); | 709 | CreateAndAddScenePresence(client, child); |
707 | m_LandManager.sendParcelOverlay(client); | 710 | m_LandManager.sendParcelOverlay(client); |
708 | commsManager.UserProfiles.AddNewUser(client.AgentId); | 711 | commsManager.UserProfiles.AddNewUser(client.AgentId); |
709 | commsManager.TransactionsManager.AddUser(client.AgentId); | 712 | commsManager.TransactionsManager.AddUser(client.AgentId); |
@@ -744,9 +747,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
744 | client.OnParcelPropertiesRequest += new ParcelPropertiesRequest(m_LandManager.handleParcelPropertiesRequest); | 747 | client.OnParcelPropertiesRequest += new ParcelPropertiesRequest(m_LandManager.handleParcelPropertiesRequest); |
745 | client.OnParcelDivideRequest += new ParcelDivideRequest(m_LandManager.handleParcelDivideRequest); | 748 | client.OnParcelDivideRequest += new ParcelDivideRequest(m_LandManager.handleParcelDivideRequest); |
746 | client.OnParcelJoinRequest += new ParcelJoinRequest(m_LandManager.handleParcelJoinRequest); | 749 | client.OnParcelJoinRequest += new ParcelJoinRequest(m_LandManager.handleParcelJoinRequest); |
747 | client.OnParcelPropertiesUpdateRequest += new ParcelPropertiesUpdateRequest(m_LandManager.handleParcelPropertiesUpdateRequest); | 750 | client.OnParcelPropertiesUpdateRequest += |
751 | new ParcelPropertiesUpdateRequest(m_LandManager.handleParcelPropertiesUpdateRequest); | ||
748 | client.OnParcelSelectObjects += new ParcelSelectObjects(m_LandManager.handleParcelSelectObjectsRequest); | 752 | client.OnParcelSelectObjects += new ParcelSelectObjects(m_LandManager.handleParcelSelectObjectsRequest); |
749 | client.OnParcelObjectOwnerRequest += new ParcelObjectOwnerRequest(m_LandManager.handleParcelObjectOwnersRequest); | 753 | client.OnParcelObjectOwnerRequest += |
754 | new ParcelObjectOwnerRequest(m_LandManager.handleParcelObjectOwnersRequest); | ||
750 | 755 | ||
751 | client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage); | 756 | client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage); |
752 | 757 | ||
@@ -768,7 +773,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
768 | EventManager.TriggerOnNewClient(client); | 773 | EventManager.TriggerOnNewClient(client); |
769 | } | 774 | } |
770 | 775 | ||
771 | protected ScenePresence CreateAndAddScenePresence(IClientAPI client, bool child ) | 776 | protected ScenePresence CreateAndAddScenePresence(IClientAPI client, bool child) |
772 | { | 777 | { |
773 | ScenePresence newAvatar = null; | 778 | ScenePresence newAvatar = null; |
774 | 779 | ||
@@ -777,16 +782,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
777 | 782 | ||
778 | if (child) | 783 | if (child) |
779 | { | 784 | { |
780 | MainLog.Instance.Verbose(this.RegionInfo.RegionName + ": Creating new child agent."); | 785 | MainLog.Instance.Verbose(RegionInfo.RegionName + ": Creating new child agent."); |
781 | } | 786 | } |
782 | else | 787 | else |
783 | { | 788 | { |
784 | newAvatar.OnSignificantClientMovement += m_LandManager.handleSignificantClientMovement; | 789 | newAvatar.OnSignificantClientMovement += m_LandManager.handleSignificantClientMovement; |
785 | 790 | ||
786 | MainLog.Instance.Verbose(this.RegionInfo.RegionName + ": Creating new root agent."); | 791 | MainLog.Instance.Verbose(RegionInfo.RegionName + ": Creating new root agent."); |
787 | MainLog.Instance.Verbose(this.RegionInfo.RegionName + ": Adding Physical agent."); | 792 | MainLog.Instance.Verbose(RegionInfo.RegionName + ": Adding Physical agent."); |
788 | 793 | ||
789 | PhysicsVector pVec = new PhysicsVector(newAvatar.AbsolutePosition.X, newAvatar.AbsolutePosition.Y, newAvatar.AbsolutePosition.Z); | 794 | PhysicsVector pVec = |
795 | new PhysicsVector(newAvatar.AbsolutePosition.X, newAvatar.AbsolutePosition.Y, | ||
796 | newAvatar.AbsolutePosition.Z); | ||
790 | lock (m_syncRoot) | 797 | lock (m_syncRoot) |
791 | { | 798 | { |
792 | newAvatar.PhysActor = phyScene.AddAvatar(pVec); | 799 | newAvatar.PhysActor = phyScene.AddAvatar(pVec); |
@@ -832,14 +839,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
832 | 839 | ||
833 | ForEachScenePresence( | 840 | ForEachScenePresence( |
834 | delegate(ScenePresence presence) | 841 | delegate(ScenePresence presence) |
835 | { | ||
836 | presence.CoarseLocationChange(avatar); | ||
837 | presence.ControllingClient.SendKillObject(avatar.RegionHandle, avatar.LocalId); | ||
838 | if (presence.PhysActor != null) | ||
839 | { | 842 | { |
840 | phyScene.RemoveAvatar(presence.PhysActor); | 843 | presence.CoarseLocationChange(avatar); |
841 | } | 844 | presence.ControllingClient.SendKillObject(avatar.RegionHandle, avatar.LocalId); |
842 | }); | 845 | if (presence.PhysActor != null) |
846 | { | ||
847 | phyScene.RemoveAvatar(presence.PhysActor); | ||
848 | } | ||
849 | }); | ||
843 | 850 | ||
844 | lock (Avatars) | 851 | lock (Avatars) |
845 | { | 852 | { |
@@ -943,7 +950,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
943 | if (Entities.ContainsKey(entID)) | 950 | if (Entities.ContainsKey(entID)) |
944 | { | 951 | { |
945 | Entities.Remove(entID); | 952 | Entities.Remove(entID); |
946 | storageManager.DataStore.RemoveObject(entID, this.m_regInfo.SimUUID); | 953 | storageManager.DataStore.RemoveObject(entID, m_regInfo.SimUUID); |
947 | return true; | 954 | return true; |
948 | } | 955 | } |
949 | return false; | 956 | return false; |
@@ -951,10 +958,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
951 | 958 | ||
952 | public void SendKillObject(uint localID) | 959 | public void SendKillObject(uint localID) |
953 | { | 960 | { |
954 | List<ScenePresence> avatars = this.RequestAvatarList(); | 961 | List<ScenePresence> avatars = RequestAvatarList(); |
955 | for (int i = 0; i < avatars.Count; i++) | 962 | for (int i = 0; i < avatars.Count; i++) |
956 | { | 963 | { |
957 | avatars[i].ControllingClient.SendKillObject(this.m_regionHandle, localID); | 964 | avatars[i].ControllingClient.SendKillObject(m_regionHandle, localID); |
958 | } | 965 | } |
959 | } | 966 | } |
960 | 967 | ||
@@ -964,8 +971,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
964 | { | 971 | { |
965 | if (ent is SceneObjectGroup) | 972 | if (ent is SceneObjectGroup) |
966 | { | 973 | { |
967 | // ((SceneObjectGroup)ent).SendFullUpdateToClient(client); | 974 | // ((SceneObjectGroup)ent).SendFullUpdateToClient(client); |
968 | ((SceneObjectGroup)ent).ScheduleFullUpdateToAvatar(presence); | 975 | ((SceneObjectGroup) ent).ScheduleFullUpdateToAvatar(presence); |
969 | } | 976 | } |
970 | } | 977 | } |
971 | } | 978 | } |
@@ -999,15 +1006,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
999 | if (agent.CapsPath != "") | 1006 | if (agent.CapsPath != "") |
1000 | { | 1007 | { |
1001 | //Console.WriteLine("new user, so creating caps handler for it"); | 1008 | //Console.WriteLine("new user, so creating caps handler for it"); |
1002 | Caps cap = new Caps(commsManager.AssetCache, httpListener, m_regInfo.ExternalHostName, httpListener.Port, agent.CapsPath, agent.AgentID); | 1009 | Caps cap = |
1003 | Util.SetCapsURL(agent.AgentID, "http://" + m_regInfo.ExternalHostName + ":" + httpListener.Port.ToString() + "/CAPS/" + agent.CapsPath + "0000/"); | 1010 | new Caps(commsManager.AssetCache, httpListener, m_regInfo.ExternalHostName, httpListener.Port, |
1011 | agent.CapsPath, agent.AgentID); | ||
1012 | Util.SetCapsURL(agent.AgentID, | ||
1013 | "http://" + m_regInfo.ExternalHostName + ":" + httpListener.Port.ToString() + | ||
1014 | "/CAPS/" + agent.CapsPath + "0000/"); | ||
1004 | cap.RegisterHandlers(); | 1015 | cap.RegisterHandlers(); |
1005 | cap.AddNewInventoryItem = this.AddInventoryItem; | 1016 | cap.AddNewInventoryItem = AddInventoryItem; |
1006 | cap.ItemUpdatedCall = this.CapsUpdateInventoryItemAsset; | 1017 | cap.ItemUpdatedCall = CapsUpdateInventoryItemAsset; |
1007 | if (capsHandlers.ContainsKey(agent.AgentID)) | 1018 | if (capsHandlers.ContainsKey(agent.AgentID)) |
1008 | { | 1019 | { |
1009 | MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " + | 1020 | MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " + |
1010 | agent.AgentID.ToStringHyphenated()); | 1021 | agent.AgentID.ToStringHyphenated()); |
1011 | capsHandlers[agent.AgentID] = cap; | 1022 | capsHandlers[agent.AgentID] = cap; |
1012 | } | 1023 | } |
1013 | else | 1024 | else |
@@ -1142,43 +1153,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
1142 | 1153 | ||
1143 | public void AddModule(string name, IRegionModule module) | 1154 | public void AddModule(string name, IRegionModule module) |
1144 | { | 1155 | { |
1145 | if (!this.Modules.ContainsKey(name)) | 1156 | if (!Modules.ContainsKey(name)) |
1146 | { | 1157 | { |
1147 | Modules.Add(name, module); | 1158 | Modules.Add(name, module); |
1148 | } | 1159 | } |
1149 | } | 1160 | } |
1150 | 1161 | ||
1151 | //following delegate methods will be removed, so use the interface methods (below these) | ||
1152 | public void RegisterAPIMethod(string name, object method) | ||
1153 | { | ||
1154 | if (!this.ModuleAPIMethods.ContainsKey(name)) | ||
1155 | { | ||
1156 | this.ModuleAPIMethods.Add(name, method); | ||
1157 | } | ||
1158 | } | ||
1159 | |||
1160 | public object RequestAPIMethod(string name) | ||
1161 | { | ||
1162 | if (this.ModuleAPIMethods.ContainsKey(name)) | ||
1163 | { | ||
1164 | return ModuleAPIMethods[name]; | ||
1165 | } | ||
1166 | return false; | ||
1167 | } | ||
1168 | |||
1169 | public void RegisterModuleInterface<M>(M mod) | 1162 | public void RegisterModuleInterface<M>(M mod) |
1170 | { | 1163 | { |
1171 | if (!this.ModuleInterfaces.ContainsKey(typeof(M))) | 1164 | if (!ModuleInterfaces.ContainsKey(typeof (M))) |
1172 | { | 1165 | { |
1173 | ModuleInterfaces.Add(typeof(M), mod); | 1166 | ModuleInterfaces.Add(typeof (M), mod); |
1174 | } | 1167 | } |
1175 | } | 1168 | } |
1176 | 1169 | ||
1177 | public T RequestModuleInterface<T>() | 1170 | public T RequestModuleInterface<T>() |
1178 | { | 1171 | { |
1179 | if (ModuleInterfaces.ContainsKey(typeof(T))) | 1172 | if (ModuleInterfaces.ContainsKey(typeof (T))) |
1180 | { | 1173 | { |
1181 | return (T)ModuleInterfaces[typeof(T)]; | 1174 | return (T) ModuleInterfaces[typeof (T)]; |
1182 | } | 1175 | } |
1183 | else | 1176 | else |
1184 | { | 1177 | { |
@@ -1191,7 +1184,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1191 | m_timePhase = phase; | 1184 | m_timePhase = phase; |
1192 | } | 1185 | } |
1193 | 1186 | ||
1194 | public void SendUrlToUser(LLUUID avatarID, string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, string url) | 1187 | public void SendUrlToUser(LLUUID avatarID, string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, |
1188 | string message, string url) | ||
1195 | { | 1189 | { |
1196 | if (Avatars.ContainsKey(avatarID)) | 1190 | if (Avatars.ContainsKey(avatarID)) |
1197 | { | 1191 | { |
@@ -1201,7 +1195,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1201 | 1195 | ||
1202 | #region Alert Methods | 1196 | #region Alert Methods |
1203 | 1197 | ||
1204 | void SendPermissionAlert(LLUUID user, string reason) | 1198 | private void SendPermissionAlert(LLUUID user, string reason) |
1205 | { | 1199 | { |
1206 | SendAlertToUser(user, reason, false); | 1200 | SendAlertToUser(user, reason, false); |
1207 | } | 1201 | } |
@@ -1209,7 +1203,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1209 | 1203 | ||
1210 | public void SendGeneralAlert(string message) | 1204 | public void SendGeneralAlert(string message) |
1211 | { | 1205 | { |
1212 | foreach (ScenePresence presence in this.Avatars.Values) | 1206 | foreach (ScenePresence presence in Avatars.Values) |
1213 | { | 1207 | { |
1214 | presence.ControllingClient.SendAlertMessage(message); | 1208 | presence.ControllingClient.SendAlertMessage(message); |
1215 | } | 1209 | } |
@@ -1217,15 +1211,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
1217 | 1211 | ||
1218 | public void SendAlertToUser(LLUUID agentID, string message, bool modal) | 1212 | public void SendAlertToUser(LLUUID agentID, string message, bool modal) |
1219 | { | 1213 | { |
1220 | if (this.Avatars.ContainsKey(agentID)) | 1214 | if (Avatars.ContainsKey(agentID)) |
1221 | { | 1215 | { |
1222 | this.Avatars[agentID].ControllingClient.SendAgentAlertMessage(message, modal); | 1216 | Avatars[agentID].ControllingClient.SendAgentAlertMessage(message, modal); |
1223 | } | 1217 | } |
1224 | } | 1218 | } |
1225 | 1219 | ||
1226 | public void SendAlertToUser(string firstName, string lastName, string message, bool modal) | 1220 | public void SendAlertToUser(string firstName, string lastName, string message, bool modal) |
1227 | { | 1221 | { |
1228 | foreach (ScenePresence presence in this.Avatars.Values) | 1222 | foreach (ScenePresence presence in Avatars.Values) |
1229 | { | 1223 | { |
1230 | if ((presence.Firstname == firstName) && (presence.Lastname == lastName)) | 1224 | if ((presence.Firstname == firstName) && (presence.Lastname == lastName)) |
1231 | { | 1225 | { |
@@ -1239,13 +1233,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1239 | { | 1233 | { |
1240 | if (commandParams[0] == "general") | 1234 | if (commandParams[0] == "general") |
1241 | { | 1235 | { |
1242 | string message = this.CombineParams(commandParams, 1); | 1236 | string message = CombineParams(commandParams, 1); |
1243 | this.SendGeneralAlert(message); | 1237 | SendGeneralAlert(message); |
1244 | } | 1238 | } |
1245 | else | 1239 | else |
1246 | { | 1240 | { |
1247 | string message = this.CombineParams(commandParams, 2); | 1241 | string message = CombineParams(commandParams, 2); |
1248 | this.SendAlertToUser(commandParams[0], commandParams[1], message, false); | 1242 | SendAlertToUser(commandParams[0], commandParams[1], message, false); |
1249 | } | 1243 | } |
1250 | } | 1244 | } |
1251 | 1245 | ||
@@ -1258,36 +1252,39 @@ namespace OpenSim.Region.Environment.Scenes | |||
1258 | } | 1252 | } |
1259 | return result; | 1253 | return result; |
1260 | } | 1254 | } |
1255 | |||
1261 | #endregion | 1256 | #endregion |
1262 | 1257 | ||
1263 | public void ForceClientUpdate() | 1258 | public void ForceClientUpdate() |
1264 | { | 1259 | { |
1265 | foreach (EntityBase ent in this.Entities.Values) | 1260 | foreach (EntityBase ent in Entities.Values) |
1266 | { | 1261 | { |
1267 | if (ent is SceneObjectGroup) | 1262 | if (ent is SceneObjectGroup) |
1268 | { | 1263 | { |
1269 | ((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(); | 1264 | ((SceneObjectGroup) ent).ScheduleGroupForFullUpdate(); |
1270 | } | 1265 | } |
1271 | } | 1266 | } |
1272 | } | 1267 | } |
1273 | 1268 | ||
1274 | public void HandleEditCommand(string[] cmmdparams) | 1269 | public void HandleEditCommand(string[] cmmdparams) |
1275 | { | 1270 | { |
1276 | Console.WriteLine("Searching for Primitive: '" + cmmdparams[0] + "'"); | 1271 | Console.WriteLine("Searching for Primitive: '" + cmmdparams[0] + "'"); |
1277 | foreach (EntityBase ent in this.Entities.Values) | 1272 | foreach (EntityBase ent in Entities.Values) |
1278 | { | 1273 | { |
1279 | if (ent is SceneObjectGroup) | 1274 | if (ent is SceneObjectGroup) |
1280 | { | 1275 | { |
1281 | SceneObjectPart part = ((SceneObjectGroup)ent).GetChildPart(((SceneObjectGroup)ent).UUID); | 1276 | SceneObjectPart part = ((SceneObjectGroup) ent).GetChildPart(((SceneObjectGroup) ent).UUID); |
1282 | if (part != null) | 1277 | if (part != null) |
1283 | { | 1278 | { |
1284 | if (part.Name == cmmdparams[0]) | 1279 | if (part.Name == cmmdparams[0]) |
1285 | { | 1280 | { |
1286 | part.Resize( new LLVector3(Convert.ToSingle(cmmdparams[1]), Convert.ToSingle(cmmdparams[2]), Convert.ToSingle(cmmdparams[3]))); | 1281 | part.Resize( |
1287 | 1282 | new LLVector3(Convert.ToSingle(cmmdparams[1]), Convert.ToSingle(cmmdparams[2]), | |
1288 | Console.WriteLine("Edited scale of Primitive: " + part.Name); | 1283 | Convert.ToSingle(cmmdparams[3]))); |
1289 | } | 1284 | |
1290 | } | 1285 | Console.WriteLine("Edited scale of Primitive: " + part.Name); |
1286 | } | ||
1287 | } | ||
1291 | } | 1288 | } |
1292 | } | 1289 | } |
1293 | } | 1290 | } |
@@ -1298,7 +1295,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1298 | { | 1295 | { |
1299 | case "users": | 1296 | case "users": |
1300 | MainLog.Instance.Error("Current Region: " + RegionInfo.RegionName); | 1297 | MainLog.Instance.Error("Current Region: " + RegionInfo.RegionName); |
1301 | MainLog.Instance.Error(String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16}{5,-16}{6,-16}", "Firstname", "Lastname", "Agent ID", "Session ID", "Circuit", "IP", "World")); | 1298 | MainLog.Instance.Error( |
1299 | String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16}{5,-16}{6,-16}", "Firstname", "Lastname", | ||
1300 | "Agent ID", "Session ID", "Circuit", "IP", "World")); | ||
1302 | 1301 | ||
1303 | foreach (EntityBase entity in Entities.Values) | 1302 | foreach (EntityBase entity in Entities.Values) |
1304 | { | 1303 | { |
@@ -1321,8 +1320,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1321 | } | 1320 | } |
1322 | break; | 1321 | break; |
1323 | case "modules": | 1322 | case "modules": |
1324 | MainLog.Instance.Error("The currently loaded modules in " + this.RegionInfo.RegionName + " are:"); | 1323 | MainLog.Instance.Error("The currently loaded modules in " + RegionInfo.RegionName + " are:"); |
1325 | foreach (OpenSim.Region.Environment.Interfaces.IRegionModule module in this.Modules.Values) | 1324 | foreach (IRegionModule module in Modules.Values) |
1326 | { | 1325 | { |
1327 | if (!module.IsSharedModule()) | 1326 | if (!module.IsSharedModule()) |
1328 | { | 1327 | { |
@@ -1337,19 +1336,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
1337 | { | 1336 | { |
1338 | if (m_httpRequestModule != null) | 1337 | if (m_httpRequestModule != null) |
1339 | { | 1338 | { |
1340 | return m_httpRequestModule.MakeHttpRequest(url, type, body); | 1339 | return m_httpRequestModule.MakeHttpRequest(url, type, body); |
1341 | } | 1340 | } |
1342 | return LLUUID.Zero; | 1341 | return LLUUID.Zero; |
1343 | } | 1342 | } |
1344 | 1343 | ||
1345 | #region Script Engine | 1344 | #region Script Engine |
1346 | private List<OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface> ScriptEngines = new List<OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface>(); | 1345 | |
1347 | public void AddScriptEngine(OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine, LogBase m_logger) | 1346 | private List<ScriptEngineInterface> ScriptEngines = new List<ScriptEngineInterface>(); |
1347 | |||
1348 | public void AddScriptEngine(ScriptEngineInterface ScriptEngine, LogBase m_logger) | ||
1348 | { | 1349 | { |
1349 | ScriptEngines.Add(ScriptEngine); | 1350 | ScriptEngines.Add(ScriptEngine); |
1350 | 1351 | ||
1351 | ScriptEngine.InitializeEngine(this, m_logger); | 1352 | ScriptEngine.InitializeEngine(this, m_logger); |
1352 | } | 1353 | } |
1354 | |||
1353 | #endregion | 1355 | #endregion |
1354 | 1356 | ||
1355 | public LLUUID ConvertLocalIDToFullID(uint localID) | 1357 | public LLUUID ConvertLocalIDToFullID(uint localID) |
@@ -1359,10 +1361,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1359 | { | 1361 | { |
1360 | if (ent is SceneObjectGroup) | 1362 | if (ent is SceneObjectGroup) |
1361 | { | 1363 | { |
1362 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 1364 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
1363 | if (hasPrim != false) | 1365 | if (hasPrim != false) |
1364 | { | 1366 | { |
1365 | return ((SceneObjectGroup)ent).GetPartsFullID(localID); | 1367 | return ((SceneObjectGroup) ent).GetPartsFullID(localID); |
1366 | } | 1368 | } |
1367 | } | 1369 | } |
1368 | } | 1370 | } |
@@ -1376,10 +1378,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1376 | { | 1378 | { |
1377 | if (ent is SceneObjectGroup) | 1379 | if (ent is SceneObjectGroup) |
1378 | { | 1380 | { |
1379 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 1381 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(localID); |
1380 | if (hasPrim != false) | 1382 | if (hasPrim != false) |
1381 | { | 1383 | { |
1382 | return ((SceneObjectGroup)ent).GetChildPart(localID); | 1384 | return ((SceneObjectGroup) ent).GetChildPart(localID); |
1383 | } | 1385 | } |
1384 | } | 1386 | } |
1385 | } | 1387 | } |
@@ -1393,14 +1395,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
1393 | { | 1395 | { |
1394 | if (ent is SceneObjectGroup) | 1396 | if (ent is SceneObjectGroup) |
1395 | { | 1397 | { |
1396 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(fullID); | 1398 | hasPrim = ((SceneObjectGroup) ent).HasChildPrim(fullID); |
1397 | if (hasPrim != false) | 1399 | if (hasPrim != false) |
1398 | { | 1400 | { |
1399 | return ((SceneObjectGroup)ent).GetChildPart(fullID); | 1401 | return ((SceneObjectGroup) ent).GetChildPart(fullID); |
1400 | } | 1402 | } |
1401 | } | 1403 | } |
1402 | } | 1404 | } |
1403 | return null; | 1405 | return null; |
1404 | } | 1406 | } |
1405 | } | 1407 | } |
1406 | } | 1408 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneBase.cs b/OpenSim/Region/Environment/Scenes/SceneBase.cs index c01157d..7b2e17f 100644 --- a/OpenSim/Region/Environment/Scenes/SceneBase.cs +++ b/OpenSim/Region/Environment/Scenes/SceneBase.cs | |||
@@ -27,15 +27,12 @@ | |||
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Reflection; | ||
31 | using libsecondlife; | 30 | using libsecondlife; |
31 | using OpenSim.Framework.Communications.Caches; | ||
32 | using OpenSim.Framework.Console; | 32 | using OpenSim.Framework.Console; |
33 | using OpenSim.Framework.Interfaces; | 33 | using OpenSim.Framework.Interfaces; |
34 | using OpenSim.Framework.Types; | 34 | using OpenSim.Framework.Types; |
35 | using OpenSim.Framework.Communications.Caches; | ||
36 | using OpenSim.Region.Terrain; | 35 | using OpenSim.Region.Terrain; |
37 | using OpenSim.Framework; | ||
38 | using OpenSim.Region.Environment.Interfaces; | ||
39 | 36 | ||
40 | namespace OpenSim.Region.Environment.Scenes | 37 | namespace OpenSim.Region.Environment.Scenes |
41 | { | 38 | { |
@@ -67,6 +64,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
67 | protected AssetCache assetCache; | 64 | protected AssetCache assetCache; |
68 | 65 | ||
69 | #region Update Methods | 66 | #region Update Methods |
67 | |||
70 | /// <summary> | 68 | /// <summary> |
71 | /// Normally called once every frame/tick to let the world preform anything required (like running the physics simulation) | 69 | /// Normally called once every frame/tick to let the world preform anything required (like running the physics simulation) |
72 | /// </summary> | 70 | /// </summary> |
@@ -104,6 +102,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
104 | #endregion | 102 | #endregion |
105 | 103 | ||
106 | #region Add/Remove Agent/Avatar | 104 | #region Add/Remove Agent/Avatar |
105 | |||
107 | /// <summary> | 106 | /// <summary> |
108 | /// | 107 | /// |
109 | /// </summary> | 108 | /// </summary> |
@@ -126,7 +125,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
126 | /// <returns></returns> | 125 | /// <returns></returns> |
127 | public virtual RegionInfo RegionInfo | 126 | public virtual RegionInfo RegionInfo |
128 | { | 127 | { |
129 | get { return this.m_regInfo; } | 128 | get { return m_regInfo; } |
130 | } | 129 | } |
131 | 130 | ||
132 | public object SyncRoot | 131 | public object SyncRoot |
@@ -140,6 +139,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
140 | } | 139 | } |
141 | 140 | ||
142 | #region Shutdown | 141 | #region Shutdown |
142 | |||
143 | /// <summary> | 143 | /// <summary> |
144 | /// Tidy before shutdown | 144 | /// Tidy before shutdown |
145 | /// </summary> | 145 | /// </summary> |
@@ -147,7 +147,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
147 | { | 147 | { |
148 | try | 148 | try |
149 | { | 149 | { |
150 | this.EventManager.TriggerShutdown(); | 150 | EventManager.TriggerShutdown(); |
151 | } | 151 | } |
152 | catch (Exception e) | 152 | catch (Exception e) |
153 | { | 153 | { |
@@ -156,7 +156,5 @@ namespace OpenSim.Region.Environment.Scenes | |||
156 | } | 156 | } |
157 | 157 | ||
158 | #endregion | 158 | #endregion |
159 | |||
160 | |||
161 | } | 159 | } |
162 | } | 160 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneEvents.cs b/OpenSim/Region/Environment/Scenes/SceneEvents.cs index a86a1bc..a5d8667 100644 --- a/OpenSim/Region/Environment/Scenes/SceneEvents.cs +++ b/OpenSim/Region/Environment/Scenes/SceneEvents.cs | |||
@@ -1,5 +1,6 @@ | |||
1 | using libsecondlife; | 1 | using libsecondlife; |
2 | using OpenSim.Framework.Interfaces; | 2 | using OpenSim.Framework.Interfaces; |
3 | using OpenSim.Region.Environment.Interfaces; | ||
3 | 4 | ||
4 | namespace OpenSim.Region.Environment.Scenes | 5 | namespace OpenSim.Region.Environment.Scenes |
5 | { | 6 | { |
@@ -9,41 +10,54 @@ namespace OpenSim.Region.Environment.Scenes | |||
9 | public class EventManager | 10 | public class EventManager |
10 | { | 11 | { |
11 | public delegate void OnFrameDelegate(); | 12 | public delegate void OnFrameDelegate(); |
13 | |||
12 | public event OnFrameDelegate OnFrame; | 14 | public event OnFrameDelegate OnFrame; |
13 | 15 | ||
14 | public delegate void OnBackupDelegate(Interfaces.IRegionDataStore datastore); | 16 | public delegate void OnBackupDelegate(IRegionDataStore datastore); |
17 | |||
15 | public event OnBackupDelegate OnBackup; | 18 | public event OnBackupDelegate OnBackup; |
16 | 19 | ||
17 | public delegate void OnNewClientDelegate(IClientAPI client); | 20 | public delegate void OnNewClientDelegate(IClientAPI client); |
21 | |||
18 | public event OnNewClientDelegate OnNewClient; | 22 | public event OnNewClientDelegate OnNewClient; |
19 | 23 | ||
20 | public delegate void OnNewPresenceDelegate(ScenePresence presence); | 24 | public delegate void OnNewPresenceDelegate(ScenePresence presence); |
25 | |||
21 | public event OnNewPresenceDelegate OnNewPresence; | 26 | public event OnNewPresenceDelegate OnNewPresence; |
22 | 27 | ||
23 | public delegate void OnRemovePresenceDelegate(LLUUID uuid); | 28 | public delegate void OnRemovePresenceDelegate(LLUUID uuid); |
29 | |||
24 | public event OnRemovePresenceDelegate OnRemovePresence; | 30 | public event OnRemovePresenceDelegate OnRemovePresence; |
25 | 31 | ||
26 | public delegate void OnParcelPrimCountUpdateDelegate(); | 32 | public delegate void OnParcelPrimCountUpdateDelegate(); |
33 | |||
27 | public event OnParcelPrimCountUpdateDelegate OnParcelPrimCountUpdate; | 34 | public event OnParcelPrimCountUpdateDelegate OnParcelPrimCountUpdate; |
28 | 35 | ||
29 | public delegate void OnParcelPrimCountAddDelegate(SceneObjectGroup obj); | 36 | public delegate void OnParcelPrimCountAddDelegate(SceneObjectGroup obj); |
37 | |||
30 | public event OnParcelPrimCountAddDelegate OnParcelPrimCountAdd; | 38 | public event OnParcelPrimCountAddDelegate OnParcelPrimCountAdd; |
31 | 39 | ||
32 | public delegate void OnScriptConsoleDelegate(string[] args); | 40 | public delegate void OnScriptConsoleDelegate(string[] args); |
41 | |||
33 | public event OnScriptConsoleDelegate OnScriptConsole; | 42 | public event OnScriptConsoleDelegate OnScriptConsole; |
34 | 43 | ||
35 | public delegate void OnShutdownDelegate(); | 44 | public delegate void OnShutdownDelegate(); |
45 | |||
36 | public event OnShutdownDelegate OnShutdown; | 46 | public event OnShutdownDelegate OnShutdown; |
37 | 47 | ||
38 | public delegate void ObjectGrabDelegate(uint localID, LLVector3 offsetPos, IClientAPI remoteClient); | 48 | public delegate void ObjectGrabDelegate(uint localID, LLVector3 offsetPos, IClientAPI remoteClient); |
49 | |||
39 | public delegate void OnPermissionErrorDelegate(LLUUID user, string reason); | 50 | public delegate void OnPermissionErrorDelegate(LLUUID user, string reason); |
51 | |||
40 | public event ObjectGrabDelegate OnObjectGrab; | 52 | public event ObjectGrabDelegate OnObjectGrab; |
41 | public event OnPermissionErrorDelegate OnPermissionError; | 53 | public event OnPermissionErrorDelegate OnPermissionError; |
42 | 54 | ||
43 | public delegate void NewRezScript(uint localID, LLUUID itemID, string script); | 55 | public delegate void NewRezScript(uint localID, LLUUID itemID, string script); |
56 | |||
44 | public event NewRezScript OnRezScript; | 57 | public event NewRezScript OnRezScript; |
45 | 58 | ||
46 | public delegate void RemoveScript(uint localID, LLUUID itemID); | 59 | public delegate void RemoveScript(uint localID, LLUUID itemID); |
60 | |||
47 | public event RemoveScript OnRemoveScript; | 61 | public event RemoveScript OnRemoveScript; |
48 | 62 | ||
49 | public void TriggerPermissionError(LLUUID user, string reason) | 63 | public void TriggerPermissionError(LLUUID user, string reason) |
@@ -86,7 +100,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
86 | } | 100 | } |
87 | } | 101 | } |
88 | 102 | ||
89 | public void TriggerOnBackup(Interfaces.IRegionDataStore dstore) | 103 | public void TriggerOnBackup(IRegionDataStore dstore) |
90 | { | 104 | { |
91 | if (OnBackup != null) | 105 | if (OnBackup != null) |
92 | { | 106 | { |
@@ -101,6 +115,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
101 | OnParcelPrimCountUpdate(); | 115 | OnParcelPrimCountUpdate(); |
102 | } | 116 | } |
103 | } | 117 | } |
118 | |||
104 | public void TriggerParcelPrimCountAdd(SceneObjectGroup obj) | 119 | public void TriggerParcelPrimCountAdd(SceneObjectGroup obj) |
105 | { | 120 | { |
106 | if (OnParcelPrimCountAdd != null) | 121 | if (OnParcelPrimCountAdd != null) |
@@ -137,4 +152,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
137 | } | 152 | } |
138 | } | 153 | } |
139 | } | 154 | } |
140 | } | 155 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs index 5655e72..effd4b2 100644 --- a/OpenSim/Region/Environment/Scenes/SceneManager.cs +++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs | |||
@@ -1,20 +1,18 @@ | |||
1 | using System.Collections.Generic; | 1 | using System; |
2 | using System; | 2 | using System.Collections.Generic; |
3 | using OpenSim.Framework.Console; | 3 | using OpenSim.Framework.Console; |
4 | using OpenSim.Framework.Types; | 4 | using OpenSim.Framework.Types; |
5 | 5 | ||
6 | namespace OpenSim.Region.Environment.Scenes | 6 | namespace OpenSim.Region.Environment.Scenes |
7 | { | 7 | { |
8 | public class SceneManager | 8 | public class SceneManager |
9 | { | 9 | { |
10 | private readonly List<Scene> m_localScenes; | 10 | private readonly List<Scene> m_localScenes; |
11 | private Scene m_currentScene = null; | 11 | private Scene m_currentScene = null; |
12 | |||
12 | public Scene CurrentScene | 13 | public Scene CurrentScene |
13 | { | 14 | { |
14 | get | 15 | get { return m_currentScene; } |
15 | { | ||
16 | return m_currentScene; | ||
17 | } | ||
18 | } | 16 | } |
19 | 17 | ||
20 | private Scene CurrentOrFirstScene | 18 | private Scene CurrentOrFirstScene |
@@ -83,18 +81,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
83 | 81 | ||
84 | public void SendCommandToScripts(string[] cmdparams) | 82 | public void SendCommandToScripts(string[] cmdparams) |
85 | { | 83 | { |
86 | ForEach(delegate(Scene scene) | 84 | ForEach(delegate(Scene scene) { scene.SendCommandToScripts(cmdparams); }); |
87 | { | ||
88 | scene.SendCommandToScripts(cmdparams); | ||
89 | }); | ||
90 | } | 85 | } |
91 | 86 | ||
92 | public void BypassPermissions(bool bypassPermissions) | 87 | public void BypassPermissions(bool bypassPermissions) |
93 | { | 88 | { |
94 | ForEach(delegate(Scene scene) | 89 | ForEach(delegate(Scene scene) { scene.PermissionsMngr.BypassPermissions = bypassPermissions; }); |
95 | { | ||
96 | scene.PermissionsMngr.BypassPermissions = bypassPermissions; | ||
97 | }); | ||
98 | } | 90 | } |
99 | 91 | ||
100 | private void ForEach(Action<Scene> func) | 92 | private void ForEach(Action<Scene> func) |
@@ -111,18 +103,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
111 | 103 | ||
112 | public void Backup() | 104 | public void Backup() |
113 | { | 105 | { |
114 | ForEach(delegate(Scene scene) | 106 | ForEach(delegate(Scene scene) { scene.Backup(); }); |
115 | { | ||
116 | scene.Backup(); | ||
117 | }); | ||
118 | } | 107 | } |
119 | 108 | ||
120 | public void HandleAlertCommand(string[] cmdparams) | 109 | public void HandleAlertCommand(string[] cmdparams) |
121 | { | 110 | { |
122 | ForEach(delegate(Scene scene) | 111 | ForEach(delegate(Scene scene) { scene.HandleAlertCommand(cmdparams); }); |
123 | { | ||
124 | scene.HandleAlertCommand(cmdparams); | ||
125 | }); | ||
126 | } | 112 | } |
127 | 113 | ||
128 | public bool TrySetCurrentRegion(string regionName) | 114 | public bool TrySetCurrentRegion(string regionName) |
@@ -161,8 +147,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
161 | if (!scenePrescence.childAgent) | 147 | if (!scenePrescence.childAgent) |
162 | { | 148 | { |
163 | log.Error(String.Format("Packet debug for {0} {1} set to {2}", | 149 | log.Error(String.Format("Packet debug for {0} {1} set to {2}", |
164 | scenePrescence.Firstname, scenePrescence.Lastname, | 150 | scenePrescence.Firstname, scenePrescence.Lastname, |
165 | newDebug)); | 151 | newDebug)); |
166 | 152 | ||
167 | scenePrescence.ControllingClient.SetDebug(newDebug); | 153 | scenePrescence.ControllingClient.SetDebug(newDebug); |
168 | } | 154 | } |
@@ -219,18 +205,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
219 | 205 | ||
220 | public void ForceClientUpdate() | 206 | public void ForceClientUpdate() |
221 | { | 207 | { |
222 | ForEach(delegate(Scene scene) | 208 | ForEach(delegate(Scene scene) { scene.ForceClientUpdate(); }); |
223 | { | ||
224 | scene.ForceClientUpdate(); | ||
225 | }); | ||
226 | } | 209 | } |
227 | 210 | ||
228 | public void HandleEditCommand(string[] cmdparams) | 211 | public void HandleEditCommand(string[] cmdparams) |
229 | { | 212 | { |
230 | ForEach(delegate(Scene scene) | 213 | ForEach(delegate(Scene scene) { scene.HandleEditCommand(cmdparams); }); |
231 | { | ||
232 | scene.HandleEditCommand(cmdparams); | ||
233 | }); | ||
234 | } | 214 | } |
235 | } | 215 | } |
236 | } | 216 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 99f1900..3182204 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -1,17 +1,16 @@ | |||
1 | using System; | ||
1 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.IO; | ||
2 | using System.Text; | 4 | using System.Text; |
3 | using System.Xml; | 5 | using System.Xml; |
4 | using System.Xml.Serialization; | ||
5 | using System.IO; | ||
6 | using System; | ||
7 | using Axiom.Math; | 6 | using Axiom.Math; |
8 | using libsecondlife; | 7 | using libsecondlife; |
9 | using libsecondlife.Packets; | 8 | using libsecondlife.Packets; |
9 | using OpenSim.Framework.Data; | ||
10 | using OpenSim.Framework.Interfaces; | 10 | using OpenSim.Framework.Interfaces; |
11 | using OpenSim.Framework.Types; | 11 | using OpenSim.Framework.Types; |
12 | using OpenSim.Region.Physics.Manager; | ||
13 | using OpenSim.Framework.Data; | ||
14 | using OpenSim.Region.Environment.Interfaces; | 12 | using OpenSim.Region.Environment.Interfaces; |
13 | using OpenSim.Region.Physics.Manager; | ||
15 | 14 | ||
16 | namespace OpenSim.Region.Environment.Scenes | 15 | namespace OpenSim.Region.Environment.Scenes |
17 | { | 16 | { |
@@ -31,6 +30,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
31 | public bool HasChanged = false; | 30 | public bool HasChanged = false; |
32 | 31 | ||
33 | #region Properties | 32 | #region Properties |
33 | |||
34 | /// <summary> | 34 | /// <summary> |
35 | /// | 35 | /// |
36 | /// </summary> | 36 | /// </summary> |
@@ -54,13 +54,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
54 | 54 | ||
55 | public Dictionary<LLUUID, SceneObjectPart> Children | 55 | public Dictionary<LLUUID, SceneObjectPart> Children |
56 | { | 56 | { |
57 | get { return this.m_parts; } | 57 | get { return m_parts; } |
58 | set { m_parts = value; } | 58 | set { m_parts = value; } |
59 | } | 59 | } |
60 | 60 | ||
61 | public SceneObjectPart RootPart | 61 | public SceneObjectPart RootPart |
62 | { | 62 | { |
63 | get { return this.m_rootPart; } | 63 | get { return m_rootPart; } |
64 | set { m_rootPart = value; } | 64 | set { m_rootPart = value; } |
65 | } | 65 | } |
66 | 66 | ||
@@ -70,9 +70,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
70 | set | 70 | set |
71 | { | 71 | { |
72 | m_regionHandle = value; | 72 | m_regionHandle = value; |
73 | lock (this.m_parts) | 73 | lock (m_parts) |
74 | { | 74 | { |
75 | foreach (SceneObjectPart part in this.m_parts.Values) | 75 | foreach (SceneObjectPart part in m_parts.Values) |
76 | { | 76 | { |
77 | part.RegionHandle = m_regionHandle; | 77 | part.RegionHandle = m_regionHandle; |
78 | } | 78 | } |
@@ -104,16 +104,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
104 | val.Y = 0.4f; | 104 | val.Y = 0.4f; |
105 | } | 105 | } |
106 | 106 | ||
107 | lock (this.m_parts) | 107 | lock (m_parts) |
108 | { | 108 | { |
109 | foreach (SceneObjectPart part in this.m_parts.Values) | 109 | foreach (SceneObjectPart part in m_parts.Values) |
110 | { | 110 | { |
111 | part.GroupPosition = val; | 111 | part.GroupPosition = val; |
112 | } | 112 | } |
113 | } | 113 | } |
114 | if (m_rootPart.PhysActor != null) | 114 | if (m_rootPart.PhysActor != null) |
115 | { | 115 | { |
116 | m_rootPart.PhysActor.Position = new PhysicsVector(m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y, m_rootPart.GroupPosition.Z); | 116 | m_rootPart.PhysActor.Position = |
117 | new PhysicsVector(m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y, | ||
118 | m_rootPart.GroupPosition.Z); | ||
117 | } | 119 | } |
118 | } | 120 | } |
119 | } | 121 | } |
@@ -152,10 +154,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
152 | 154 | ||
153 | protected virtual bool InSceneBackup | 155 | protected virtual bool InSceneBackup |
154 | { | 156 | { |
155 | get | 157 | get { return true; } |
156 | { | ||
157 | return true; | ||
158 | } | ||
159 | } | 158 | } |
160 | 159 | ||
161 | public bool IsSelected | 160 | public bool IsSelected |
@@ -170,19 +169,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
170 | get | 169 | get |
171 | { | 170 | { |
172 | if (m_scene != null) | 171 | if (m_scene != null) |
173 | { return m_scene.RegionInfo.SimUUID; } | 172 | { |
173 | return m_scene.RegionInfo.SimUUID; | ||
174 | } | ||
174 | return LLUUID.Zero; | 175 | return LLUUID.Zero; |
175 | } | 176 | } |
176 | } | 177 | } |
178 | |||
177 | #endregion | 179 | #endregion |
178 | 180 | ||
179 | #region Constructors | 181 | #region Constructors |
182 | |||
180 | /// <summary> | 183 | /// <summary> |
181 | /// | 184 | /// |
182 | /// </summary> | 185 | /// </summary> |
183 | public SceneObjectGroup() | 186 | public SceneObjectGroup() |
184 | { | 187 | { |
185 | |||
186 | } | 188 | } |
187 | 189 | ||
188 | /// <summary> | 190 | /// <summary> |
@@ -198,7 +200,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
198 | reader.Read(); | 200 | reader.Read(); |
199 | reader.ReadStartElement("SceneObjectGroup"); | 201 | reader.ReadStartElement("SceneObjectGroup"); |
200 | reader.ReadStartElement("RootPart"); | 202 | reader.ReadStartElement("RootPart"); |
201 | this.m_rootPart = SceneObjectPart.FromXml(reader); | 203 | m_rootPart = SceneObjectPart.FromXml(reader); |
202 | reader.ReadEndElement(); | 204 | reader.ReadEndElement(); |
203 | 205 | ||
204 | while (reader.Read()) | 206 | while (reader.Read()) |
@@ -211,7 +213,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
211 | reader.Read(); | 213 | reader.Read(); |
212 | SceneObjectPart Part = SceneObjectPart.FromXml(reader); | 214 | SceneObjectPart Part = SceneObjectPart.FromXml(reader); |
213 | Part.LocalID = m_scene.PrimIDAllocate(); | 215 | Part.LocalID = m_scene.PrimIDAllocate(); |
214 | this.AddPart(Part); | 216 | AddPart(Part); |
215 | Part.RegionHandle = m_regionHandle; | 217 | Part.RegionHandle = m_regionHandle; |
216 | } | 218 | } |
217 | break; | 219 | break; |
@@ -221,23 +223,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
221 | } | 223 | } |
222 | reader.Close(); | 224 | reader.Close(); |
223 | sr.Close(); | 225 | sr.Close(); |
224 | this.m_rootPart.SetParent(this); | 226 | m_rootPart.SetParent(this); |
225 | this.m_parts.Add(m_rootPart.UUID, m_rootPart); | 227 | m_parts.Add(m_rootPart.UUID, m_rootPart); |
226 | this.m_rootPart.LocalID = m_scene.PrimIDAllocate(); | 228 | m_rootPart.LocalID = m_scene.PrimIDAllocate(); |
227 | this.m_rootPart.ParentID = 0; | 229 | m_rootPart.ParentID = 0; |
228 | this.m_rootPart.RegionHandle = m_regionHandle; | 230 | m_rootPart.RegionHandle = m_regionHandle; |
229 | this.UpdateParentIDs(); | 231 | UpdateParentIDs(); |
230 | 232 | ||
231 | AttachToBackup(); | 233 | AttachToBackup(); |
232 | 234 | ||
233 | this.ScheduleGroupForFullUpdate(); | 235 | ScheduleGroupForFullUpdate(); |
234 | } | 236 | } |
235 | 237 | ||
236 | private void AttachToBackup() | 238 | private void AttachToBackup() |
237 | { | 239 | { |
238 | if (InSceneBackup) | 240 | if (InSceneBackup) |
239 | { | 241 | { |
240 | m_scene.EventManager.OnBackup += this.ProcessBackup; | 242 | m_scene.EventManager.OnBackup += ProcessBackup; |
241 | } | 243 | } |
242 | } | 244 | } |
243 | 245 | ||
@@ -246,25 +248,27 @@ namespace OpenSim.Region.Environment.Scenes | |||
246 | /// </summary> | 248 | /// </summary> |
247 | public SceneObjectGroup(byte[] data) | 249 | public SceneObjectGroup(byte[] data) |
248 | { | 250 | { |
249 | |||
250 | } | 251 | } |
251 | 252 | ||
252 | /// <summary> | 253 | /// <summary> |
253 | /// | 254 | /// |
254 | /// </summary> | 255 | /// </summary> |
255 | public SceneObjectGroup(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos, PrimitiveBaseShape shape) | 256 | public SceneObjectGroup(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos, |
257 | PrimitiveBaseShape shape) | ||
256 | { | 258 | { |
257 | m_regionHandle = regionHandle; | 259 | m_regionHandle = regionHandle; |
258 | m_scene = scene; | 260 | m_scene = scene; |
259 | 261 | ||
260 | // this.Pos = pos; | 262 | // this.Pos = pos; |
261 | LLVector3 rootOffset = new LLVector3(0, 0, 0); | 263 | LLVector3 rootOffset = new LLVector3(0, 0, 0); |
262 | SceneObjectPart newPart = new SceneObjectPart(m_regionHandle, this, ownerID, localID, shape, pos, rootOffset); | 264 | SceneObjectPart newPart = |
263 | this.m_parts.Add(newPart.UUID, newPart); | 265 | new SceneObjectPart(m_regionHandle, this, ownerID, localID, shape, pos, rootOffset); |
264 | this.SetPartAsRoot(newPart); | 266 | m_parts.Add(newPart.UUID, newPart); |
267 | SetPartAsRoot(newPart); | ||
265 | 268 | ||
266 | AttachToBackup(); | 269 | AttachToBackup(); |
267 | } | 270 | } |
271 | |||
268 | #endregion | 272 | #endregion |
269 | 273 | ||
270 | public string ToXmlString() | 274 | public string ToXmlString() |
@@ -276,9 +280,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
276 | m_rootPart.ToXml(writer); | 280 | m_rootPart.ToXml(writer); |
277 | writer.WriteEndElement(); | 281 | writer.WriteEndElement(); |
278 | writer.WriteStartElement(String.Empty, "OtherParts", String.Empty); | 282 | writer.WriteStartElement(String.Empty, "OtherParts", String.Empty); |
279 | foreach (SceneObjectPart part in this.m_parts.Values) | 283 | foreach (SceneObjectPart part in m_parts.Values) |
280 | { | 284 | { |
281 | if (part.UUID != this.m_rootPart.UUID) | 285 | if (part.UUID != m_rootPart.UUID) |
282 | { | 286 | { |
283 | writer.WriteStartElement(String.Empty, "Part", String.Empty); | 287 | writer.WriteStartElement(String.Empty, "Part", String.Empty); |
284 | part.ToXml(writer); | 288 | part.ToXml(writer); |
@@ -292,35 +296,36 @@ namespace OpenSim.Region.Environment.Scenes | |||
292 | } | 296 | } |
293 | 297 | ||
294 | #region Copying | 298 | #region Copying |
299 | |||
295 | /// <summary> | 300 | /// <summary> |
296 | /// | 301 | /// |
297 | /// </summary> | 302 | /// </summary> |
298 | /// <returns></returns> | 303 | /// <returns></returns> |
299 | public new SceneObjectGroup Copy() | 304 | public new SceneObjectGroup Copy() |
300 | { | 305 | { |
301 | SceneObjectGroup dupe = (SceneObjectGroup)this.MemberwiseClone(); | 306 | SceneObjectGroup dupe = (SceneObjectGroup) MemberwiseClone(); |
302 | dupe.m_parts = new Dictionary<LLUUID, SceneObjectPart>(); | 307 | dupe.m_parts = new Dictionary<LLUUID, SceneObjectPart>(); |
303 | dupe.m_parts.Clear(); | 308 | dupe.m_parts.Clear(); |
304 | dupe.AbsolutePosition = new LLVector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); | 309 | dupe.AbsolutePosition = new LLVector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); |
305 | dupe.m_scene = m_scene; | 310 | dupe.m_scene = m_scene; |
306 | dupe.m_regionHandle = this.m_regionHandle; | 311 | dupe.m_regionHandle = m_regionHandle; |
307 | dupe.CopyRootPart(this.m_rootPart); | 312 | dupe.CopyRootPart(m_rootPart); |
308 | 313 | ||
309 | /// may need to create a new Physics actor. | 314 | /// may need to create a new Physics actor. |
310 | if (dupe.RootPart.PhysActor != null) | 315 | if (dupe.RootPart.PhysActor != null) |
311 | { | 316 | { |
312 | dupe.RootPart.PhysActor = m_scene.phyScene.AddPrim( | 317 | dupe.RootPart.PhysActor = m_scene.phyScene.AddPrim( |
313 | new PhysicsVector(dupe.RootPart.AbsolutePosition.X, dupe.RootPart.AbsolutePosition.Y, dupe.RootPart.AbsolutePosition.Z), | 318 | new PhysicsVector(dupe.RootPart.AbsolutePosition.X, dupe.RootPart.AbsolutePosition.Y, |
314 | new PhysicsVector(dupe.RootPart.Scale.X, dupe.RootPart.Scale.Y, dupe.RootPart.Scale.Z), | 319 | dupe.RootPart.AbsolutePosition.Z), |
315 | new Axiom.Math.Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, | 320 | new PhysicsVector(dupe.RootPart.Scale.X, dupe.RootPart.Scale.Y, dupe.RootPart.Scale.Z), |
316 | dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z)); | 321 | new Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, |
317 | 322 | dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z)); | |
318 | } | 323 | } |
319 | 324 | ||
320 | List<SceneObjectPart> partList = new List<SceneObjectPart>(this.m_parts.Values); | 325 | List<SceneObjectPart> partList = new List<SceneObjectPart>(m_parts.Values); |
321 | foreach (SceneObjectPart part in partList) | 326 | foreach (SceneObjectPart part in partList) |
322 | { | 327 | { |
323 | if (part.UUID != this.m_rootPart.UUID) | 328 | if (part.UUID != m_rootPart.UUID) |
324 | { | 329 | { |
325 | dupe.CopyPart(part); | 330 | dupe.CopyPart(part); |
326 | } | 331 | } |
@@ -328,7 +333,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
328 | dupe.UpdateParentIDs(); | 333 | dupe.UpdateParentIDs(); |
329 | 334 | ||
330 | dupe.AttachToBackup(); | 335 | dupe.AttachToBackup(); |
331 | 336 | ||
332 | return dupe; | 337 | return dupe; |
333 | } | 338 | } |
334 | 339 | ||
@@ -340,8 +345,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
340 | { | 345 | { |
341 | SceneObjectPart newPart = part.Copy(m_scene.PrimIDAllocate()); | 346 | SceneObjectPart newPart = part.Copy(m_scene.PrimIDAllocate()); |
342 | newPart.SetParent(this); | 347 | newPart.SetParent(this); |
343 | this.m_parts.Add(newPart.UUID, newPart); | 348 | m_parts.Add(newPart.UUID, newPart); |
344 | this.SetPartAsRoot(newPart); | 349 | SetPartAsRoot(newPart); |
345 | } | 350 | } |
346 | 351 | ||
347 | /// <summary> | 352 | /// <summary> |
@@ -352,18 +357,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
352 | { | 357 | { |
353 | SceneObjectPart newPart = part.Copy(m_scene.PrimIDAllocate()); | 358 | SceneObjectPart newPart = part.Copy(m_scene.PrimIDAllocate()); |
354 | newPart.SetParent(this); | 359 | newPart.SetParent(this); |
355 | this.m_parts.Add(newPart.UUID, newPart); | 360 | m_parts.Add(newPart.UUID, newPart); |
356 | this.SetPartAsNonRoot(newPart); | 361 | SetPartAsNonRoot(newPart); |
357 | } | 362 | } |
363 | |||
358 | #endregion | 364 | #endregion |
359 | 365 | ||
360 | #region Scheduling | 366 | #region Scheduling |
367 | |||
361 | /// <summary> | 368 | /// <summary> |
362 | /// | 369 | /// |
363 | /// </summary> | 370 | /// </summary> |
364 | public override void Update() | 371 | public override void Update() |
365 | { | 372 | { |
366 | foreach (SceneObjectPart part in this.m_parts.Values) | 373 | foreach (SceneObjectPart part in m_parts.Values) |
367 | { | 374 | { |
368 | part.SendScheduledUpdates(); | 375 | part.SendScheduledUpdates(); |
369 | } | 376 | } |
@@ -371,7 +378,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
371 | 378 | ||
372 | public void ScheduleFullUpdateToAvatar(ScenePresence presence) | 379 | public void ScheduleFullUpdateToAvatar(ScenePresence presence) |
373 | { | 380 | { |
374 | foreach (SceneObjectPart part in this.m_parts.Values) | 381 | foreach (SceneObjectPart part in m_parts.Values) |
375 | { | 382 | { |
376 | part.AddFullUpdateToAvatar(presence); | 383 | part.AddFullUpdateToAvatar(presence); |
377 | } | 384 | } |
@@ -379,7 +386,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
379 | 386 | ||
380 | public void ScheduleTerseUpdateToAvatar(ScenePresence presence) | 387 | public void ScheduleTerseUpdateToAvatar(ScenePresence presence) |
381 | { | 388 | { |
382 | foreach (SceneObjectPart part in this.m_parts.Values) | 389 | foreach (SceneObjectPart part in m_parts.Values) |
383 | { | 390 | { |
384 | part.AddTerseUpdateToAvatar(presence); | 391 | part.AddTerseUpdateToAvatar(presence); |
385 | } | 392 | } |
@@ -391,7 +398,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
391 | public void ScheduleGroupForFullUpdate() | 398 | public void ScheduleGroupForFullUpdate() |
392 | { | 399 | { |
393 | HasChanged = true; | 400 | HasChanged = true; |
394 | foreach (SceneObjectPart part in this.m_parts.Values) | 401 | foreach (SceneObjectPart part in m_parts.Values) |
395 | { | 402 | { |
396 | part.ScheduleFullUpdate(); | 403 | part.ScheduleFullUpdate(); |
397 | } | 404 | } |
@@ -403,7 +410,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
403 | public void ScheduleGroupForTerseUpdate() | 410 | public void ScheduleGroupForTerseUpdate() |
404 | { | 411 | { |
405 | HasChanged = true; | 412 | HasChanged = true; |
406 | foreach (SceneObjectPart part in this.m_parts.Values) | 413 | foreach (SceneObjectPart part in m_parts.Values) |
407 | { | 414 | { |
408 | part.ScheduleTerseUpdate(); | 415 | part.ScheduleTerseUpdate(); |
409 | } | 416 | } |
@@ -415,7 +422,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
415 | public void SendGroupFullUpdate() | 422 | public void SendGroupFullUpdate() |
416 | { | 423 | { |
417 | HasChanged = true; | 424 | HasChanged = true; |
418 | foreach (SceneObjectPart part in this.m_parts.Values) | 425 | foreach (SceneObjectPart part in m_parts.Values) |
419 | { | 426 | { |
420 | part.SendFullUpdateToAllClients(); | 427 | part.SendFullUpdateToAllClients(); |
421 | } | 428 | } |
@@ -427,7 +434,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
427 | public void SendGroupTerseUpdate() | 434 | public void SendGroupTerseUpdate() |
428 | { | 435 | { |
429 | HasChanged = true; | 436 | HasChanged = true; |
430 | foreach (SceneObjectPart part in this.m_parts.Values) | 437 | foreach (SceneObjectPart part in m_parts.Values) |
431 | { | 438 | { |
432 | part.SendTerseUpdateToAllClients(); | 439 | part.SendTerseUpdateToAllClients(); |
433 | } | 440 | } |
@@ -436,6 +443,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
436 | #endregion | 443 | #endregion |
437 | 444 | ||
438 | #region SceneGroupPart Methods | 445 | #region SceneGroupPart Methods |
446 | |||
439 | /// <summary> | 447 | /// <summary> |
440 | /// | 448 | /// |
441 | /// </summary> | 449 | /// </summary> |
@@ -444,9 +452,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
444 | public SceneObjectPart GetChildPart(LLUUID primID) | 452 | public SceneObjectPart GetChildPart(LLUUID primID) |
445 | { | 453 | { |
446 | SceneObjectPart childPart = null; | 454 | SceneObjectPart childPart = null; |
447 | if (this.m_parts.ContainsKey(primID)) | 455 | if (m_parts.ContainsKey(primID)) |
448 | { | 456 | { |
449 | childPart = this.m_parts[primID]; | 457 | childPart = m_parts[primID]; |
450 | } | 458 | } |
451 | return childPart; | 459 | return childPart; |
452 | } | 460 | } |
@@ -458,7 +466,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
458 | /// <returns></returns> | 466 | /// <returns></returns> |
459 | public SceneObjectPart GetChildPart(uint localID) | 467 | public SceneObjectPart GetChildPart(uint localID) |
460 | { | 468 | { |
461 | foreach (SceneObjectPart part in this.m_parts.Values) | 469 | foreach (SceneObjectPart part in m_parts.Values) |
462 | { | 470 | { |
463 | if (part.LocalID == localID) | 471 | if (part.LocalID == localID) |
464 | { | 472 | { |
@@ -477,9 +485,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
477 | public bool HasChildPrim(LLUUID primID) | 485 | public bool HasChildPrim(LLUUID primID) |
478 | { | 486 | { |
479 | SceneObjectPart childPart = null; | 487 | SceneObjectPart childPart = null; |
480 | if (this.m_parts.ContainsKey(primID)) | 488 | if (m_parts.ContainsKey(primID)) |
481 | { | 489 | { |
482 | childPart = this.m_parts[primID]; | 490 | childPart = m_parts[primID]; |
483 | return true; | 491 | return true; |
484 | } | 492 | } |
485 | return false; | 493 | return false; |
@@ -493,7 +501,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
493 | /// <returns></returns> | 501 | /// <returns></returns> |
494 | public bool HasChildPrim(uint localID) | 502 | public bool HasChildPrim(uint localID) |
495 | { | 503 | { |
496 | foreach (SceneObjectPart part in this.m_parts.Values) | 504 | foreach (SceneObjectPart part in m_parts.Values) |
497 | { | 505 | { |
498 | if (part.LocalID == localID) | 506 | if (part.LocalID == localID) |
499 | { | 507 | { |
@@ -502,9 +510,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
502 | } | 510 | } |
503 | return false; | 511 | return false; |
504 | } | 512 | } |
513 | |||
505 | #endregion | 514 | #endregion |
506 | 515 | ||
507 | #region Packet Handlers | 516 | #region Packet Handlers |
517 | |||
508 | /// <summary> | 518 | /// <summary> |
509 | /// | 519 | /// |
510 | /// </summary> | 520 | /// </summary> |
@@ -512,21 +522,28 @@ namespace OpenSim.Region.Environment.Scenes | |||
512 | public void LinkToGroup(SceneObjectGroup objectGroup) | 522 | public void LinkToGroup(SceneObjectGroup objectGroup) |
513 | { | 523 | { |
514 | SceneObjectPart linkPart = objectGroup.m_rootPart; | 524 | SceneObjectPart linkPart = objectGroup.m_rootPart; |
515 | Axiom.Math.Vector3 oldGroupPosition = new Vector3(linkPart.GroupPosition.X, linkPart.GroupPosition.Y, linkPart.GroupPosition.Z); | 525 | Vector3 oldGroupPosition = |
516 | Axiom.Math.Quaternion oldRootRotation = new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, linkPart.RotationOffset.Y, linkPart.RotationOffset.Z); | 526 | new Vector3(linkPart.GroupPosition.X, linkPart.GroupPosition.Y, linkPart.GroupPosition.Z); |
527 | Quaternion oldRootRotation = | ||
528 | new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, linkPart.RotationOffset.Y, | ||
529 | linkPart.RotationOffset.Z); | ||
517 | 530 | ||
518 | linkPart.OffsetPosition = linkPart.GroupPosition - this.AbsolutePosition; | 531 | linkPart.OffsetPosition = linkPart.GroupPosition - AbsolutePosition; |
519 | linkPart.GroupPosition = this.AbsolutePosition; | 532 | linkPart.GroupPosition = AbsolutePosition; |
520 | 533 | ||
521 | Vector3 axPos = new Vector3(linkPart.OffsetPosition.X, linkPart.OffsetPosition.Y, linkPart.OffsetPosition.Z); | 534 | Vector3 axPos = new Vector3(linkPart.OffsetPosition.X, linkPart.OffsetPosition.Y, linkPart.OffsetPosition.Z); |
522 | Quaternion parentRot = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); | 535 | Quaternion parentRot = |
523 | axPos = parentRot.Inverse() * axPos; | 536 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, |
537 | m_rootPart.RotationOffset.Z); | ||
538 | axPos = parentRot.Inverse()*axPos; | ||
524 | linkPart.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); | 539 | linkPart.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); |
525 | Quaternion oldRot = new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, linkPart.RotationOffset.Y, linkPart.RotationOffset.Z); | 540 | Quaternion oldRot = |
526 | Quaternion newRot = parentRot.Inverse() * oldRot; | 541 | new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, linkPart.RotationOffset.Y, |
542 | linkPart.RotationOffset.Z); | ||
543 | Quaternion newRot = parentRot.Inverse()*oldRot; | ||
527 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); | 544 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); |
528 | linkPart.ParentID = this.m_rootPart.LocalID; | 545 | linkPart.ParentID = m_rootPart.LocalID; |
529 | this.m_parts.Add(linkPart.UUID, linkPart); | 546 | m_parts.Add(linkPart.UUID, linkPart); |
530 | linkPart.SetParent(this); | 547 | linkPart.SetParent(this); |
531 | 548 | ||
532 | if (linkPart.PhysActor != null) | 549 | if (linkPart.PhysActor != null) |
@@ -540,7 +557,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
540 | { | 557 | { |
541 | if (part.UUID != objectGroup.m_rootPart.UUID) | 558 | if (part.UUID != objectGroup.m_rootPart.UUID) |
542 | { | 559 | { |
543 | this.LinkNonRootPart(part, oldGroupPosition, oldRootRotation); | 560 | LinkNonRootPart(part, oldGroupPosition, oldRootRotation); |
544 | } | 561 | } |
545 | } | 562 | } |
546 | 563 | ||
@@ -549,7 +566,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
549 | m_scene.DeleteEntity(objectGroup.UUID); | 566 | m_scene.DeleteEntity(objectGroup.UUID); |
550 | 567 | ||
551 | objectGroup.DeleteParts(); | 568 | objectGroup.DeleteParts(); |
552 | this.ScheduleGroupForFullUpdate(); | 569 | ScheduleGroupForFullUpdate(); |
553 | } | 570 | } |
554 | 571 | ||
555 | private void DetachFromBackup(SceneObjectGroup objectGroup) | 572 | private void DetachFromBackup(SceneObjectGroup objectGroup) |
@@ -561,26 +578,31 @@ namespace OpenSim.Region.Environment.Scenes | |||
561 | private void LinkNonRootPart(SceneObjectPart part, Vector3 oldGroupPosition, Quaternion oldGroupRotation) | 578 | private void LinkNonRootPart(SceneObjectPart part, Vector3 oldGroupPosition, Quaternion oldGroupRotation) |
562 | { | 579 | { |
563 | part.SetParent(this); | 580 | part.SetParent(this); |
564 | part.ParentID = this.m_rootPart.LocalID; | 581 | part.ParentID = m_rootPart.LocalID; |
565 | this.m_parts.Add(part.UUID, part); | 582 | m_parts.Add(part.UUID, part); |
566 | 583 | ||
567 | Vector3 axiomOldPos = new Vector3(part.OffsetPosition.X, part.OffsetPosition.Y, part.OffsetPosition.Z); | 584 | Vector3 axiomOldPos = new Vector3(part.OffsetPosition.X, part.OffsetPosition.Y, part.OffsetPosition.Z); |
568 | axiomOldPos = oldGroupRotation * axiomOldPos; | 585 | axiomOldPos = oldGroupRotation*axiomOldPos; |
569 | axiomOldPos += oldGroupPosition; | 586 | axiomOldPos += oldGroupPosition; |
570 | LLVector3 oldAbsolutePosition = new LLVector3(axiomOldPos.x, axiomOldPos.y, axiomOldPos.z); | 587 | LLVector3 oldAbsolutePosition = new LLVector3(axiomOldPos.x, axiomOldPos.y, axiomOldPos.z); |
571 | part.OffsetPosition = oldAbsolutePosition - this.AbsolutePosition; | 588 | part.OffsetPosition = oldAbsolutePosition - AbsolutePosition; |
572 | 589 | ||
573 | Quaternion axiomRootRotation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | 590 | Quaternion axiomRootRotation = |
591 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, | ||
592 | m_rootPart.RotationOffset.Z); | ||
574 | 593 | ||
575 | Vector3 axiomPos = new Vector3(part.OffsetPosition.X, part.OffsetPosition.Y, part.OffsetPosition.Z); | 594 | Vector3 axiomPos = new Vector3(part.OffsetPosition.X, part.OffsetPosition.Y, part.OffsetPosition.Z); |
576 | axiomPos = axiomRootRotation.Inverse() * axiomPos; | 595 | axiomPos = axiomRootRotation.Inverse()*axiomPos; |
577 | part.OffsetPosition = new LLVector3(axiomPos.x, axiomPos.y, axiomPos.z); | 596 | part.OffsetPosition = new LLVector3(axiomPos.x, axiomPos.y, axiomPos.z); |
578 | 597 | ||
579 | Quaternion axiomPartRotation = new Quaternion(part.RotationOffset.W, part.RotationOffset.X, part.RotationOffset.Y, part.RotationOffset.Z); | 598 | Quaternion axiomPartRotation = |
599 | new Quaternion(part.RotationOffset.W, part.RotationOffset.X, part.RotationOffset.Y, | ||
600 | part.RotationOffset.Z); | ||
580 | 601 | ||
581 | axiomPartRotation = oldGroupRotation * axiomPartRotation; | 602 | axiomPartRotation = oldGroupRotation*axiomPartRotation; |
582 | axiomPartRotation = axiomRootRotation.Inverse() * axiomPartRotation; | 603 | axiomPartRotation = axiomRootRotation.Inverse()*axiomPartRotation; |
583 | part.RotationOffset = new LLQuaternion(axiomPartRotation.x, axiomPartRotation.y, axiomPartRotation.z, axiomPartRotation.w); | 604 | part.RotationOffset = |
605 | new LLQuaternion(axiomPartRotation.x, axiomPartRotation.y, axiomPartRotation.z, axiomPartRotation.w); | ||
584 | } | 606 | } |
585 | 607 | ||
586 | /// <summary> | 608 | /// <summary> |
@@ -591,8 +613,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
591 | /// <param name="remoteClient"></param> | 613 | /// <param name="remoteClient"></param> |
592 | public void GrabMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) | 614 | public void GrabMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) |
593 | { | 615 | { |
594 | this.AbsolutePosition = pos; | 616 | AbsolutePosition = pos; |
595 | this.m_rootPart.SendTerseUpdateToAllClients(); | 617 | m_rootPart.SendTerseUpdateToAllClients(); |
596 | } | 618 | } |
597 | 619 | ||
598 | /// <summary> | 620 | /// <summary> |
@@ -605,25 +627,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
605 | proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; | 627 | proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; |
606 | proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); | 628 | proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); |
607 | proper.ObjectData[0].ItemID = LLUUID.Zero; | 629 | proper.ObjectData[0].ItemID = LLUUID.Zero; |
608 | proper.ObjectData[0].CreationDate = (ulong)this.m_rootPart.CreationDate; | 630 | proper.ObjectData[0].CreationDate = (ulong) m_rootPart.CreationDate; |
609 | proper.ObjectData[0].CreatorID = this.m_rootPart.CreatorID; | 631 | proper.ObjectData[0].CreatorID = m_rootPart.CreatorID; |
610 | proper.ObjectData[0].FolderID = LLUUID.Zero; | 632 | proper.ObjectData[0].FolderID = LLUUID.Zero; |
611 | proper.ObjectData[0].FromTaskID = LLUUID.Zero; | 633 | proper.ObjectData[0].FromTaskID = LLUUID.Zero; |
612 | proper.ObjectData[0].GroupID = LLUUID.Zero; | 634 | proper.ObjectData[0].GroupID = LLUUID.Zero; |
613 | proper.ObjectData[0].InventorySerial = (short)this.m_rootPart.InventorySerial; | 635 | proper.ObjectData[0].InventorySerial = (short) m_rootPart.InventorySerial; |
614 | proper.ObjectData[0].LastOwnerID = this.m_rootPart.LastOwnerID; | 636 | proper.ObjectData[0].LastOwnerID = m_rootPart.LastOwnerID; |
615 | proper.ObjectData[0].ObjectID = this.UUID; | 637 | proper.ObjectData[0].ObjectID = UUID; |
616 | proper.ObjectData[0].OwnerID = this.m_rootPart.OwnerID; | 638 | proper.ObjectData[0].OwnerID = m_rootPart.OwnerID; |
617 | proper.ObjectData[0].TouchName = enc.GetBytes(this.m_rootPart.TouchName + "\0"); | 639 | proper.ObjectData[0].TouchName = enc.GetBytes(m_rootPart.TouchName + "\0"); |
618 | proper.ObjectData[0].TextureID = new byte[0]; | 640 | proper.ObjectData[0].TextureID = new byte[0]; |
619 | proper.ObjectData[0].SitName = enc.GetBytes(this.m_rootPart.SitName + "\0"); | 641 | proper.ObjectData[0].SitName = enc.GetBytes(m_rootPart.SitName + "\0"); |
620 | proper.ObjectData[0].Name = enc.GetBytes(this.m_rootPart.Name + "\0"); | 642 | proper.ObjectData[0].Name = enc.GetBytes(m_rootPart.Name + "\0"); |
621 | proper.ObjectData[0].Description = enc.GetBytes(this.m_rootPart.Description + "\0"); | 643 | proper.ObjectData[0].Description = enc.GetBytes(m_rootPart.Description + "\0"); |
622 | proper.ObjectData[0].OwnerMask = this.m_rootPart.OwnerMask; | 644 | proper.ObjectData[0].OwnerMask = m_rootPart.OwnerMask; |
623 | proper.ObjectData[0].NextOwnerMask = this.m_rootPart.NextOwnerMask; | 645 | proper.ObjectData[0].NextOwnerMask = m_rootPart.NextOwnerMask; |
624 | proper.ObjectData[0].GroupMask = this.m_rootPart.GroupMask; | 646 | proper.ObjectData[0].GroupMask = m_rootPart.GroupMask; |
625 | proper.ObjectData[0].EveryoneMask = this.m_rootPart.EveryoneMask; | 647 | proper.ObjectData[0].EveryoneMask = m_rootPart.EveryoneMask; |
626 | proper.ObjectData[0].BaseMask = this.m_rootPart.BaseMask; | 648 | proper.ObjectData[0].BaseMask = m_rootPart.BaseMask; |
627 | 649 | ||
628 | client.OutPacket(proper); | 650 | client.OutPacket(proper); |
629 | } | 651 | } |
@@ -635,7 +657,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
635 | public void SetPartName(string name, uint localID) | 657 | public void SetPartName(string name, uint localID) |
636 | { | 658 | { |
637 | name = name.Remove(name.Length - 1, 1); | 659 | name = name.Remove(name.Length - 1, 1); |
638 | SceneObjectPart part = this.GetChildPart(localID); | 660 | SceneObjectPart part = GetChildPart(localID); |
639 | if (part != null) | 661 | if (part != null) |
640 | { | 662 | { |
641 | part.Name = name; | 663 | part.Name = name; |
@@ -644,7 +666,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
644 | 666 | ||
645 | public void SetPartDescription(string des, uint localID) | 667 | public void SetPartDescription(string des, uint localID) |
646 | { | 668 | { |
647 | SceneObjectPart part = this.GetChildPart(localID); | 669 | SceneObjectPart part = GetChildPart(localID); |
648 | if (part != null) | 670 | if (part != null) |
649 | { | 671 | { |
650 | part.Description = des; | 672 | part.Description = des; |
@@ -653,7 +675,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
653 | 675 | ||
654 | public void SetPartText(string text, uint localID) | 676 | public void SetPartText(string text, uint localID) |
655 | { | 677 | { |
656 | SceneObjectPart part = this.GetChildPart(localID); | 678 | SceneObjectPart part = GetChildPart(localID); |
657 | if (part != null) | 679 | if (part != null) |
658 | { | 680 | { |
659 | part.Text = text; | 681 | part.Text = text; |
@@ -662,7 +684,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
662 | 684 | ||
663 | public void SetPartText(string text, LLUUID partID) | 685 | public void SetPartText(string text, LLUUID partID) |
664 | { | 686 | { |
665 | SceneObjectPart part = this.GetChildPart(partID); | 687 | SceneObjectPart part = GetChildPart(partID); |
666 | if (part != null) | 688 | if (part != null) |
667 | { | 689 | { |
668 | part.Text = text; | 690 | part.Text = text; |
@@ -671,7 +693,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
671 | 693 | ||
672 | public string GetPartName(uint localID) | 694 | public string GetPartName(uint localID) |
673 | { | 695 | { |
674 | SceneObjectPart part = this.GetChildPart(localID); | 696 | SceneObjectPart part = GetChildPart(localID); |
675 | if (part != null) | 697 | if (part != null) |
676 | { | 698 | { |
677 | return part.Name; | 699 | return part.Name; |
@@ -681,7 +703,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
681 | 703 | ||
682 | public string GetPartDescription(uint localID) | 704 | public string GetPartDescription(uint localID) |
683 | { | 705 | { |
684 | SceneObjectPart part = this.GetChildPart(localID); | 706 | SceneObjectPart part = GetChildPart(localID); |
685 | if (part != null) | 707 | if (part != null) |
686 | { | 708 | { |
687 | return part.Description; | 709 | return part.Description; |
@@ -696,7 +718,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
696 | /// <param name="localID"></param> | 718 | /// <param name="localID"></param> |
697 | public bool GetPartInventoryFileName(IClientAPI remoteClient, uint localID) | 719 | public bool GetPartInventoryFileName(IClientAPI remoteClient, uint localID) |
698 | { | 720 | { |
699 | SceneObjectPart part = this.GetChildPart(localID); | 721 | SceneObjectPart part = GetChildPart(localID); |
700 | if (part != null) | 722 | if (part != null) |
701 | { | 723 | { |
702 | return part.GetInventoryFileName(remoteClient, localID); | 724 | return part.GetInventoryFileName(remoteClient, localID); |
@@ -706,7 +728,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
706 | 728 | ||
707 | public string RequestInventoryFile(uint localID, IXfer xferManager) | 729 | public string RequestInventoryFile(uint localID, IXfer xferManager) |
708 | { | 730 | { |
709 | SceneObjectPart part = this.GetChildPart(localID); | 731 | SceneObjectPart part = GetChildPart(localID); |
710 | if (part != null) | 732 | if (part != null) |
711 | { | 733 | { |
712 | part.RequestInventoryFile(xferManager); | 734 | part.RequestInventoryFile(xferManager); |
@@ -716,7 +738,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
716 | 738 | ||
717 | public bool AddInventoryItem(IClientAPI remoteClient, uint localID, InventoryItemBase item) | 739 | public bool AddInventoryItem(IClientAPI remoteClient, uint localID, InventoryItemBase item) |
718 | { | 740 | { |
719 | SceneObjectPart part = this.GetChildPart(localID); | 741 | SceneObjectPart part = GetChildPart(localID); |
720 | if (part != null) | 742 | if (part != null) |
721 | { | 743 | { |
722 | SceneObjectPart.TaskInventoryItem taskItem = new SceneObjectPart.TaskInventoryItem(); | 744 | SceneObjectPart.TaskInventoryItem taskItem = new SceneObjectPart.TaskInventoryItem(); |
@@ -732,14 +754,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
732 | return true; | 754 | return true; |
733 | } | 755 | } |
734 | return false; | 756 | return false; |
735 | |||
736 | } | 757 | } |
737 | 758 | ||
738 | public bool AddInventoryItem(IClientAPI remoteClient, uint localID, InventoryItemBase item, LLUUID copyItemID) | 759 | public bool AddInventoryItem(IClientAPI remoteClient, uint localID, InventoryItemBase item, LLUUID copyItemID) |
739 | { | 760 | { |
740 | if (copyItemID != LLUUID.Zero) | 761 | if (copyItemID != LLUUID.Zero) |
741 | { | 762 | { |
742 | SceneObjectPart part = this.GetChildPart(localID); | 763 | SceneObjectPart part = GetChildPart(localID); |
743 | if (part != null) | 764 | if (part != null) |
744 | { | 765 | { |
745 | SceneObjectPart.TaskInventoryItem taskItem = new SceneObjectPart.TaskInventoryItem(); | 766 | SceneObjectPart.TaskInventoryItem taskItem = new SceneObjectPart.TaskInventoryItem(); |
@@ -764,7 +785,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
764 | 785 | ||
765 | public int RemoveInventoryItem(IClientAPI remoteClient, uint localID, LLUUID itemID) | 786 | public int RemoveInventoryItem(IClientAPI remoteClient, uint localID, LLUUID itemID) |
766 | { | 787 | { |
767 | SceneObjectPart part = this.GetChildPart(localID); | 788 | SceneObjectPart part = GetChildPart(localID); |
768 | if (part != null) | 789 | if (part != null) |
769 | { | 790 | { |
770 | return part.RemoveInventoryItem(remoteClient, localID, itemID); | 791 | return part.RemoveInventoryItem(remoteClient, localID, itemID); |
@@ -781,7 +802,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
781 | /// <param name="data"></param> | 802 | /// <param name="data"></param> |
782 | public void UpdateExtraParam(uint localID, ushort type, bool inUse, byte[] data) | 803 | public void UpdateExtraParam(uint localID, ushort type, bool inUse, byte[] data) |
783 | { | 804 | { |
784 | SceneObjectPart part = this.GetChildPart(localID); | 805 | SceneObjectPart part = GetChildPart(localID); |
785 | if (part != null) | 806 | if (part != null) |
786 | { | 807 | { |
787 | part.UpdateExtraParam(type, inUse, data); | 808 | part.UpdateExtraParam(type, inUse, data); |
@@ -795,30 +816,34 @@ namespace OpenSim.Region.Environment.Scenes | |||
795 | /// <param name="textureEntry"></param> | 816 | /// <param name="textureEntry"></param> |
796 | public void UpdateTextureEntry(uint localID, byte[] textureEntry) | 817 | public void UpdateTextureEntry(uint localID, byte[] textureEntry) |
797 | { | 818 | { |
798 | SceneObjectPart part = this.GetChildPart(localID); | 819 | SceneObjectPart part = GetChildPart(localID); |
799 | if (part != null) | 820 | if (part != null) |
800 | { | 821 | { |
801 | part.UpdateTextureEntry(textureEntry); | 822 | part.UpdateTextureEntry(textureEntry); |
802 | } | 823 | } |
803 | } | 824 | } |
825 | |||
804 | #endregion | 826 | #endregion |
805 | 827 | ||
806 | #region Shape | 828 | #region Shape |
829 | |||
807 | /// <summary> | 830 | /// <summary> |
808 | /// | 831 | /// |
809 | /// </summary> | 832 | /// </summary> |
810 | /// <param name="shapeBlock"></param> | 833 | /// <param name="shapeBlock"></param> |
811 | public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock, uint localID) | 834 | public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock, uint localID) |
812 | { | 835 | { |
813 | SceneObjectPart part = this.GetChildPart(localID); | 836 | SceneObjectPart part = GetChildPart(localID); |
814 | if (part != null) | 837 | if (part != null) |
815 | { | 838 | { |
816 | part.UpdateShape(shapeBlock); | 839 | part.UpdateShape(shapeBlock); |
817 | } | 840 | } |
818 | } | 841 | } |
842 | |||
819 | #endregion | 843 | #endregion |
820 | 844 | ||
821 | #region Resize | 845 | #region Resize |
846 | |||
822 | /// <summary> | 847 | /// <summary> |
823 | /// | 848 | /// |
824 | /// </summary> | 849 | /// </summary> |
@@ -826,30 +851,33 @@ namespace OpenSim.Region.Environment.Scenes | |||
826 | /// <param name="localID"></param> | 851 | /// <param name="localID"></param> |
827 | public void Resize(LLVector3 scale, uint localID) | 852 | public void Resize(LLVector3 scale, uint localID) |
828 | { | 853 | { |
829 | SceneObjectPart part = this.GetChildPart(localID); | 854 | SceneObjectPart part = GetChildPart(localID); |
830 | if (part != null) | 855 | if (part != null) |
831 | { | 856 | { |
832 | part.Resize(scale); | 857 | part.Resize(scale); |
833 | if (part.UUID == this.m_rootPart.UUID) | 858 | if (part.UUID == m_rootPart.UUID) |
834 | { | 859 | { |
835 | if (m_rootPart.PhysActor != null) | 860 | if (m_rootPart.PhysActor != null) |
836 | { | 861 | { |
837 | m_rootPart.PhysActor.Size = new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z); | 862 | m_rootPart.PhysActor.Size = |
863 | new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z); | ||
838 | } | 864 | } |
839 | } | 865 | } |
840 | } | 866 | } |
841 | } | 867 | } |
868 | |||
842 | #endregion | 869 | #endregion |
843 | 870 | ||
844 | #region Position | 871 | #region Position |
872 | |||
845 | /// <summary> | 873 | /// <summary> |
846 | /// | 874 | /// |
847 | /// </summary> | 875 | /// </summary> |
848 | /// <param name="pos"></param> | 876 | /// <param name="pos"></param> |
849 | public void UpdateGroupPosition(LLVector3 pos) | 877 | public void UpdateGroupPosition(LLVector3 pos) |
850 | { | 878 | { |
851 | this.AbsolutePosition = pos; | 879 | AbsolutePosition = pos; |
852 | this.ScheduleGroupForTerseUpdate(); | 880 | ScheduleGroupForTerseUpdate(); |
853 | } | 881 | } |
854 | 882 | ||
855 | /// <summary> | 883 | /// <summary> |
@@ -859,12 +887,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
859 | /// <param name="localID"></param> | 887 | /// <param name="localID"></param> |
860 | public void UpdateSinglePosition(LLVector3 pos, uint localID) | 888 | public void UpdateSinglePosition(LLVector3 pos, uint localID) |
861 | { | 889 | { |
862 | SceneObjectPart part = this.GetChildPart(localID); | 890 | SceneObjectPart part = GetChildPart(localID); |
863 | if (part != null) | 891 | if (part != null) |
864 | { | 892 | { |
865 | if (part.UUID == this.m_rootPart.UUID) | 893 | if (part.UUID == m_rootPart.UUID) |
866 | { | 894 | { |
867 | this.UpdateRootPosition(pos); | 895 | UpdateRootPosition(pos); |
868 | } | 896 | } |
869 | else | 897 | else |
870 | { | 898 | { |
@@ -880,40 +908,49 @@ namespace OpenSim.Region.Environment.Scenes | |||
880 | private void UpdateRootPosition(LLVector3 pos) | 908 | private void UpdateRootPosition(LLVector3 pos) |
881 | { | 909 | { |
882 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); | 910 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); |
883 | LLVector3 oldPos = new LLVector3(this.AbsolutePosition.X + this.m_rootPart.OffsetPosition.X, this.AbsolutePosition.Y + this.m_rootPart.OffsetPosition.Y, this.AbsolutePosition.Z + this.m_rootPart.OffsetPosition.Z); | 911 | LLVector3 oldPos = |
912 | new LLVector3(AbsolutePosition.X + m_rootPart.OffsetPosition.X, | ||
913 | AbsolutePosition.Y + m_rootPart.OffsetPosition.Y, | ||
914 | AbsolutePosition.Z + m_rootPart.OffsetPosition.Z); | ||
884 | LLVector3 diff = oldPos - newPos; | 915 | LLVector3 diff = oldPos - newPos; |
885 | Axiom.Math.Vector3 axDiff = new Vector3(diff.X, diff.Y, diff.Z); | 916 | Vector3 axDiff = new Vector3(diff.X, diff.Y, diff.Z); |
886 | Axiom.Math.Quaternion partRotation = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); | 917 | Quaternion partRotation = |
887 | axDiff = partRotation.Inverse() * axDiff; | 918 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, |
919 | m_rootPart.RotationOffset.Z); | ||
920 | axDiff = partRotation.Inverse()*axDiff; | ||
888 | diff.X = axDiff.x; | 921 | diff.X = axDiff.x; |
889 | diff.Y = axDiff.y; | 922 | diff.Y = axDiff.y; |
890 | diff.Z = axDiff.z; | 923 | diff.Z = axDiff.z; |
891 | 924 | ||
892 | foreach (SceneObjectPart obPart in this.m_parts.Values) | 925 | foreach (SceneObjectPart obPart in m_parts.Values) |
893 | { | 926 | { |
894 | if (obPart.UUID != this.m_rootPart.UUID) | 927 | if (obPart.UUID != m_rootPart.UUID) |
895 | { | 928 | { |
896 | obPart.OffsetPosition = obPart.OffsetPosition + diff; | 929 | obPart.OffsetPosition = obPart.OffsetPosition + diff; |
897 | } | 930 | } |
898 | } | 931 | } |
899 | this.AbsolutePosition = newPos; | 932 | AbsolutePosition = newPos; |
900 | this.ScheduleGroupForTerseUpdate(); | 933 | ScheduleGroupForTerseUpdate(); |
901 | } | 934 | } |
935 | |||
902 | #endregion | 936 | #endregion |
903 | 937 | ||
904 | #region Rotation | 938 | #region Rotation |
939 | |||
905 | /// <summary> | 940 | /// <summary> |
906 | /// | 941 | /// |
907 | /// </summary> | 942 | /// </summary> |
908 | /// <param name="rot"></param> | 943 | /// <param name="rot"></param> |
909 | public void UpdateGroupRotation(LLQuaternion rot) | 944 | public void UpdateGroupRotation(LLQuaternion rot) |
910 | { | 945 | { |
911 | this.m_rootPart.UpdateRotation(rot); | 946 | m_rootPart.UpdateRotation(rot); |
912 | if (m_rootPart.PhysActor != null) | 947 | if (m_rootPart.PhysActor != null) |
913 | { | 948 | { |
914 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | 949 | m_rootPart.PhysActor.Orientation = |
950 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, | ||
951 | m_rootPart.RotationOffset.Z); | ||
915 | } | 952 | } |
916 | this.ScheduleGroupForTerseUpdate(); | 953 | ScheduleGroupForTerseUpdate(); |
917 | } | 954 | } |
918 | 955 | ||
919 | /// <summary> | 956 | /// <summary> |
@@ -923,13 +960,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
923 | /// <param name="rot"></param> | 960 | /// <param name="rot"></param> |
924 | public void UpdateGroupRotation(LLVector3 pos, LLQuaternion rot) | 961 | public void UpdateGroupRotation(LLVector3 pos, LLQuaternion rot) |
925 | { | 962 | { |
926 | this.m_rootPart.UpdateRotation(rot); | 963 | m_rootPart.UpdateRotation(rot); |
927 | if (m_rootPart.PhysActor != null) | 964 | if (m_rootPart.PhysActor != null) |
928 | { | 965 | { |
929 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | 966 | m_rootPart.PhysActor.Orientation = |
967 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, | ||
968 | m_rootPart.RotationOffset.Z); | ||
930 | } | 969 | } |
931 | this.AbsolutePosition = pos; | 970 | AbsolutePosition = pos; |
932 | this.ScheduleGroupForTerseUpdate(); | 971 | ScheduleGroupForTerseUpdate(); |
933 | } | 972 | } |
934 | 973 | ||
935 | /// <summary> | 974 | /// <summary> |
@@ -939,12 +978,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
939 | /// <param name="localID"></param> | 978 | /// <param name="localID"></param> |
940 | public void UpdateSingleRotation(LLQuaternion rot, uint localID) | 979 | public void UpdateSingleRotation(LLQuaternion rot, uint localID) |
941 | { | 980 | { |
942 | SceneObjectPart part = this.GetChildPart(localID); | 981 | SceneObjectPart part = GetChildPart(localID); |
943 | if (part != null) | 982 | if (part != null) |
944 | { | 983 | { |
945 | if (part.UUID == this.m_rootPart.UUID) | 984 | if (part.UUID == m_rootPart.UUID) |
946 | { | 985 | { |
947 | this.UpdateRootRotation(rot); | 986 | UpdateRootRotation(rot); |
948 | } | 987 | } |
949 | else | 988 | else |
950 | { | 989 | { |
@@ -959,40 +998,48 @@ namespace OpenSim.Region.Environment.Scenes | |||
959 | /// <param name="rot"></param> | 998 | /// <param name="rot"></param> |
960 | private void UpdateRootRotation(LLQuaternion rot) | 999 | private void UpdateRootRotation(LLQuaternion rot) |
961 | { | 1000 | { |
962 | Axiom.Math.Quaternion axRot = new Quaternion(rot.W, rot.X, rot.Y, rot.Z); | 1001 | Quaternion axRot = new Quaternion(rot.W, rot.X, rot.Y, rot.Z); |
963 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); | 1002 | Quaternion oldParentRot = |
1003 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, | ||
1004 | m_rootPart.RotationOffset.Z); | ||
964 | 1005 | ||
965 | this.m_rootPart.UpdateRotation(rot); | 1006 | m_rootPart.UpdateRotation(rot); |
966 | if (m_rootPart.PhysActor != null) | 1007 | if (m_rootPart.PhysActor != null) |
967 | { | 1008 | { |
968 | m_rootPart.PhysActor.Orientation = new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z); | 1009 | m_rootPart.PhysActor.Orientation = |
1010 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, | ||
1011 | m_rootPart.RotationOffset.Z); | ||
969 | } | 1012 | } |
970 | 1013 | ||
971 | foreach (SceneObjectPart prim in this.m_parts.Values) | 1014 | foreach (SceneObjectPart prim in m_parts.Values) |
972 | { | 1015 | { |
973 | if (prim.UUID != this.m_rootPart.UUID) | 1016 | if (prim.UUID != m_rootPart.UUID) |
974 | { | 1017 | { |
975 | Vector3 axPos = new Vector3(prim.OffsetPosition.X, prim.OffsetPosition.Y, prim.OffsetPosition.Z); | 1018 | Vector3 axPos = new Vector3(prim.OffsetPosition.X, prim.OffsetPosition.Y, prim.OffsetPosition.Z); |
976 | axPos = oldParentRot * axPos; | 1019 | axPos = oldParentRot*axPos; |
977 | axPos = axRot.Inverse() * axPos; | 1020 | axPos = axRot.Inverse()*axPos; |
978 | prim.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); | 1021 | prim.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); |
979 | Axiom.Math.Quaternion primsRot = new Quaternion(prim.RotationOffset.W, prim.RotationOffset.X, prim.RotationOffset.Y, prim.RotationOffset.Z); | 1022 | Quaternion primsRot = |
980 | Axiom.Math.Quaternion newRot = oldParentRot * primsRot; | 1023 | new Quaternion(prim.RotationOffset.W, prim.RotationOffset.X, prim.RotationOffset.Y, |
981 | newRot = axRot.Inverse() * newRot; | 1024 | prim.RotationOffset.Z); |
1025 | Quaternion newRot = oldParentRot*primsRot; | ||
1026 | newRot = axRot.Inverse()*newRot; | ||
982 | prim.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); | 1027 | prim.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); |
983 | prim.ScheduleTerseUpdate(); | 1028 | prim.ScheduleTerseUpdate(); |
984 | } | 1029 | } |
985 | } | 1030 | } |
986 | this.m_rootPart.ScheduleTerseUpdate(); | 1031 | m_rootPart.ScheduleTerseUpdate(); |
987 | } | 1032 | } |
1033 | |||
988 | #endregion | 1034 | #endregion |
1035 | |||
989 | /// <summary> | 1036 | /// <summary> |
990 | /// | 1037 | /// |
991 | /// </summary> | 1038 | /// </summary> |
992 | /// <param name="part"></param> | 1039 | /// <param name="part"></param> |
993 | private void SetPartAsRoot(SceneObjectPart part) | 1040 | private void SetPartAsRoot(SceneObjectPart part) |
994 | { | 1041 | { |
995 | this.m_rootPart = part; | 1042 | m_rootPart = part; |
996 | } | 1043 | } |
997 | 1044 | ||
998 | /// <summary> | 1045 | /// <summary> |
@@ -1001,7 +1048,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1001 | /// <param name="part"></param> | 1048 | /// <param name="part"></param> |
1002 | private void SetPartAsNonRoot(SceneObjectPart part) | 1049 | private void SetPartAsNonRoot(SceneObjectPart part) |
1003 | { | 1050 | { |
1004 | part.ParentID = this.m_rootPart.LocalID; | 1051 | part.ParentID = m_rootPart.LocalID; |
1005 | } | 1052 | } |
1006 | 1053 | ||
1007 | /// <summary> | 1054 | /// <summary> |
@@ -1014,6 +1061,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1014 | } | 1061 | } |
1015 | 1062 | ||
1016 | #region Events | 1063 | #region Events |
1064 | |||
1017 | /// <summary> | 1065 | /// <summary> |
1018 | /// | 1066 | /// |
1019 | /// </summary> | 1067 | /// </summary> |
@@ -1021,7 +1069,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1021 | { | 1069 | { |
1022 | if (OnPrimCountTainted != null) | 1070 | if (OnPrimCountTainted != null) |
1023 | { | 1071 | { |
1024 | this.OnPrimCountTainted(); | 1072 | OnPrimCountTainted(); |
1025 | } | 1073 | } |
1026 | } | 1074 | } |
1027 | 1075 | ||
@@ -1029,7 +1077,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1029 | /// Processes backup | 1077 | /// Processes backup |
1030 | /// </summary> | 1078 | /// </summary> |
1031 | /// <param name="datastore"></param> | 1079 | /// <param name="datastore"></param> |
1032 | public void ProcessBackup(OpenSim.Region.Environment.Interfaces.IRegionDataStore datastore) | 1080 | public void ProcessBackup(IRegionDataStore datastore) |
1033 | { | 1081 | { |
1034 | if (HasChanged) | 1082 | if (HasChanged) |
1035 | { | 1083 | { |
@@ -1037,16 +1085,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
1037 | HasChanged = false; | 1085 | HasChanged = false; |
1038 | } | 1086 | } |
1039 | } | 1087 | } |
1088 | |||
1040 | #endregion | 1089 | #endregion |
1041 | 1090 | ||
1042 | #region Client Updating | 1091 | #region Client Updating |
1092 | |||
1043 | public void SendFullUpdateToClient(IClientAPI remoteClient) | 1093 | public void SendFullUpdateToClient(IClientAPI remoteClient) |
1044 | { | 1094 | { |
1045 | lock (this.m_parts) | 1095 | lock (m_parts) |
1046 | { | 1096 | { |
1047 | foreach (SceneObjectPart part in this.m_parts.Values) | 1097 | foreach (SceneObjectPart part in m_parts.Values) |
1048 | { | 1098 | { |
1049 | this.SendPartFullUpdate(remoteClient, part); | 1099 | SendPartFullUpdate(remoteClient, part); |
1050 | } | 1100 | } |
1051 | } | 1101 | } |
1052 | } | 1102 | } |
@@ -1084,6 +1134,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1084 | part.SendTerseUpdateToClient(remoteClient); | 1134 | part.SendTerseUpdateToClient(remoteClient); |
1085 | } | 1135 | } |
1086 | } | 1136 | } |
1137 | |||
1087 | #endregion | 1138 | #endregion |
1088 | 1139 | ||
1089 | public override void UpdateMovement() | 1140 | public override void UpdateMovement() |
@@ -1114,7 +1165,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1114 | public void AddPart(SceneObjectPart part) | 1165 | public void AddPart(SceneObjectPart part) |
1115 | { | 1166 | { |
1116 | part.SetParent(this); | 1167 | part.SetParent(this); |
1117 | this.m_parts.Add(part.UUID, part); | 1168 | m_parts.Add(part.UUID, part); |
1118 | } | 1169 | } |
1119 | 1170 | ||
1120 | /// <summary> | 1171 | /// <summary> |
@@ -1122,18 +1173,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
1122 | /// </summary> | 1173 | /// </summary> |
1123 | public void UpdateParentIDs() | 1174 | public void UpdateParentIDs() |
1124 | { | 1175 | { |
1125 | foreach (SceneObjectPart part in this.m_parts.Values) | 1176 | foreach (SceneObjectPart part in m_parts.Values) |
1126 | { | 1177 | { |
1127 | if (part.UUID != this.m_rootPart.UUID) | 1178 | if (part.UUID != m_rootPart.UUID) |
1128 | { | 1179 | { |
1129 | part.ParentID = this.m_rootPart.LocalID; | 1180 | part.ParentID = m_rootPart.LocalID; |
1130 | } | 1181 | } |
1131 | } | 1182 | } |
1132 | } | 1183 | } |
1133 | 1184 | ||
1134 | public void RegenerateFullIDs() | 1185 | public void RegenerateFullIDs() |
1135 | { | 1186 | { |
1136 | foreach (SceneObjectPart part in this.m_parts.Values) | 1187 | foreach (SceneObjectPart part in m_parts.Values) |
1137 | { | 1188 | { |
1138 | part.UUID = LLUUID.Random(); | 1189 | part.UUID = LLUUID.Random(); |
1139 | } | 1190 | } |
@@ -1141,7 +1192,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1141 | 1192 | ||
1142 | public LLUUID GetPartsFullID(uint localID) | 1193 | public LLUUID GetPartsFullID(uint localID) |
1143 | { | 1194 | { |
1144 | SceneObjectPart part = this.GetChildPart(localID); | 1195 | SceneObjectPart part = GetChildPart(localID); |
1145 | if (part != null) | 1196 | if (part != null) |
1146 | { | 1197 | { |
1147 | return part.UUID; | 1198 | return part.UUID; |
@@ -1175,26 +1226,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
1175 | 1226 | ||
1176 | public virtual void OnGrabGroup(LLVector3 offsetPos, IClientAPI remoteClient) | 1227 | public virtual void OnGrabGroup(LLVector3 offsetPos, IClientAPI remoteClient) |
1177 | { | 1228 | { |
1178 | |||
1179 | } | 1229 | } |
1180 | 1230 | ||
1181 | public void DeleteGroup() | 1231 | public void DeleteGroup() |
1182 | { | 1232 | { |
1183 | DetachFromBackup( this ); | 1233 | DetachFromBackup(this); |
1184 | foreach (SceneObjectPart part in this.m_parts.Values) | 1234 | foreach (SceneObjectPart part in m_parts.Values) |
1185 | { | 1235 | { |
1186 | List<ScenePresence> avatars = this.RequestSceneAvatars(); | 1236 | List<ScenePresence> avatars = RequestSceneAvatars(); |
1187 | for (int i = 0; i < avatars.Count; i++) | 1237 | for (int i = 0; i < avatars.Count; i++) |
1188 | { | 1238 | { |
1189 | avatars[i].ControllingClient.SendKillObject(this.m_regionHandle, part.LocalID); | 1239 | avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalID); |
1190 | } | 1240 | } |
1191 | } | 1241 | } |
1192 | } | 1242 | } |
1193 | 1243 | ||
1194 | public void DeleteParts() | 1244 | public void DeleteParts() |
1195 | { | 1245 | { |
1196 | this.m_rootPart = null; | 1246 | m_rootPart = null; |
1197 | this.m_parts.Clear(); | 1247 | m_parts.Clear(); |
1198 | } | 1248 | } |
1199 | 1249 | ||
1200 | public override void SetText(string text, Vector3 color, double alpha) | 1250 | public override void SetText(string text, Vector3 color, double alpha) |
@@ -1202,4 +1252,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
1202 | Text = text; | 1252 | Text = text; |
1203 | } | 1253 | } |
1204 | } | 1254 | } |
1205 | } | 1255 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index abb69f4..deacd18 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -1,23 +1,19 @@ | |||
1 | using System; | ||
1 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
2 | using System.Text; | ||
3 | using System.Xml; | 3 | using System.Xml; |
4 | using System.Xml.Serialization; | 4 | using System.Xml.Serialization; |
5 | using System.IO; | ||
6 | using System; | ||
7 | using Axiom.Math; | 5 | using Axiom.Math; |
8 | using libsecondlife; | 6 | using libsecondlife; |
9 | using libsecondlife.Packets; | 7 | using libsecondlife.Packets; |
10 | using OpenSim.Framework.Interfaces; | 8 | using OpenSim.Framework.Interfaces; |
11 | using OpenSim.Framework.Types; | 9 | using OpenSim.Framework.Types; |
12 | using OpenSim.Framework.Utilities; | 10 | using OpenSim.Framework.Utilities; |
11 | using OpenSim.Region.Environment.Interfaces; | ||
13 | using OpenSim.Region.Environment.Scenes.Scripting; | 12 | using OpenSim.Region.Environment.Scenes.Scripting; |
14 | using OpenSim.Framework; | ||
15 | using OpenSim.Region.Physics.Manager; | 13 | using OpenSim.Region.Physics.Manager; |
16 | using OpenSim.Region.Environment.Interfaces; | ||
17 | 14 | ||
18 | namespace OpenSim.Region.Environment.Scenes | 15 | namespace OpenSim.Region.Environment.Scenes |
19 | { | 16 | { |
20 | |||
21 | public class SceneObjectPart : IScriptHost | 17 | public class SceneObjectPart : IScriptHost |
22 | { | 18 | { |
23 | private const uint FULL_MASK_PERMISSIONS = 2147483647; | 19 | private const uint FULL_MASK_PERMISSIONS = 2147483647; |
@@ -25,8 +21,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
25 | private string m_inventoryFileName = ""; | 21 | private string m_inventoryFileName = ""; |
26 | private LLUUID m_folderID = LLUUID.Zero; | 22 | private LLUUID m_folderID = LLUUID.Zero; |
27 | 23 | ||
28 | [XmlIgnore] | 24 | [XmlIgnore] public PhysicsActor PhysActor = null; |
29 | public PhysicsActor PhysActor = null; | ||
30 | 25 | ||
31 | protected Dictionary<LLUUID, TaskInventoryItem> TaskInventory = new Dictionary<LLUUID, TaskInventoryItem>(); | 26 | protected Dictionary<LLUUID, TaskInventoryItem> TaskInventory = new Dictionary<LLUUID, TaskInventoryItem>(); |
32 | 27 | ||
@@ -57,19 +52,25 @@ namespace OpenSim.Region.Environment.Scenes | |||
57 | #region Properties | 52 | #region Properties |
58 | 53 | ||
59 | public LLUUID CreatorID; | 54 | public LLUUID CreatorID; |
60 | public LLUUID ObjectCreator { get { return CreatorID; } } | 55 | |
56 | public LLUUID ObjectCreator | ||
57 | { | ||
58 | get { return CreatorID; } | ||
59 | } | ||
61 | 60 | ||
62 | /// <summary> | 61 | /// <summary> |
63 | /// Serial count for inventory file , used to tell if inventory has changed | 62 | /// Serial count for inventory file , used to tell if inventory has changed |
64 | /// no need for this to be part of Database backup | 63 | /// no need for this to be part of Database backup |
65 | /// </summary> | 64 | /// </summary> |
66 | protected uint m_inventorySerial = 0; | 65 | protected uint m_inventorySerial = 0; |
66 | |||
67 | public uint InventorySerial | 67 | public uint InventorySerial |
68 | { | 68 | { |
69 | get { return m_inventorySerial; } | 69 | get { return m_inventorySerial; } |
70 | } | 70 | } |
71 | 71 | ||
72 | protected LLUUID m_uuid; | 72 | protected LLUUID m_uuid; |
73 | |||
73 | public LLUUID UUID | 74 | public LLUUID UUID |
74 | { | 75 | { |
75 | get { return m_uuid; } | 76 | get { return m_uuid; } |
@@ -77,6 +78,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
77 | } | 78 | } |
78 | 79 | ||
79 | protected uint m_localID; | 80 | protected uint m_localID; |
81 | |||
80 | public uint LocalID | 82 | public uint LocalID |
81 | { | 83 | { |
82 | get { return m_localID; } | 84 | get { return m_localID; } |
@@ -84,6 +86,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
84 | } | 86 | } |
85 | 87 | ||
86 | protected string m_name; | 88 | protected string m_name; |
89 | |||
87 | public virtual string Name | 90 | public virtual string Name |
88 | { | 91 | { |
89 | get { return m_name; } | 92 | get { return m_name; } |
@@ -91,20 +94,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
91 | } | 94 | } |
92 | 95 | ||
93 | protected LLObject.ObjectFlags m_flags; | 96 | protected LLObject.ObjectFlags m_flags; |
97 | |||
94 | public uint ObjectFlags | 98 | public uint ObjectFlags |
95 | { | 99 | { |
96 | get { return (uint)m_flags; } | 100 | get { return (uint) m_flags; } |
97 | set { m_flags = (LLObject.ObjectFlags)value; } | 101 | set { m_flags = (LLObject.ObjectFlags) value; } |
98 | } | 102 | } |
99 | 103 | ||
100 | protected LLObject.MaterialType m_material; | 104 | protected LLObject.MaterialType m_material; |
105 | |||
101 | public byte Material | 106 | public byte Material |
102 | { | 107 | { |
103 | get { return (byte)m_material; } | 108 | get { return (byte) m_material; } |
104 | set { m_material = (LLObject.MaterialType)value; } | 109 | set { m_material = (LLObject.MaterialType) value; } |
105 | } | 110 | } |
106 | 111 | ||
107 | protected ulong m_regionHandle; | 112 | protected ulong m_regionHandle; |
113 | |||
108 | public ulong RegionHandle | 114 | public ulong RegionHandle |
109 | { | 115 | { |
110 | get { return m_regionHandle; } | 116 | get { return m_regionHandle; } |
@@ -113,6 +119,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
113 | 119 | ||
114 | //unkown if this will be kept, added as a way of removing the group position from the group class | 120 | //unkown if this will be kept, added as a way of removing the group position from the group class |
115 | protected LLVector3 m_groupPosition; | 121 | protected LLVector3 m_groupPosition; |
122 | |||
116 | public LLVector3 GroupPosition | 123 | public LLVector3 GroupPosition |
117 | { | 124 | { |
118 | get { return m_groupPosition; } | 125 | get { return m_groupPosition; } |
@@ -120,6 +127,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
120 | } | 127 | } |
121 | 128 | ||
122 | protected LLVector3 m_offsetPosition; | 129 | protected LLVector3 m_offsetPosition; |
130 | |||
123 | public LLVector3 OffsetPosition | 131 | public LLVector3 OffsetPosition |
124 | { | 132 | { |
125 | get { return m_offsetPosition; } | 133 | get { return m_offsetPosition; } |
@@ -132,6 +140,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
132 | } | 140 | } |
133 | 141 | ||
134 | protected LLQuaternion m_rotationOffset; | 142 | protected LLQuaternion m_rotationOffset; |
143 | |||
135 | public LLQuaternion RotationOffset | 144 | public LLQuaternion RotationOffset |
136 | { | 145 | { |
137 | get { return m_rotationOffset; } | 146 | get { return m_rotationOffset; } |
@@ -139,6 +148,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
139 | } | 148 | } |
140 | 149 | ||
141 | protected LLVector3 m_velocity; | 150 | protected LLVector3 m_velocity; |
151 | |||
142 | /// <summary></summary> | 152 | /// <summary></summary> |
143 | public LLVector3 Velocity | 153 | public LLVector3 Velocity |
144 | { | 154 | { |
@@ -147,6 +157,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
147 | } | 157 | } |
148 | 158 | ||
149 | protected LLVector3 m_angularVelocity; | 159 | protected LLVector3 m_angularVelocity; |
160 | |||
150 | /// <summary></summary> | 161 | /// <summary></summary> |
151 | public LLVector3 AngularVelocity | 162 | public LLVector3 AngularVelocity |
152 | { | 163 | { |
@@ -155,6 +166,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
155 | } | 166 | } |
156 | 167 | ||
157 | protected LLVector3 m_acceleration; | 168 | protected LLVector3 m_acceleration; |
169 | |||
158 | /// <summary></summary> | 170 | /// <summary></summary> |
159 | public LLVector3 Acceleration | 171 | public LLVector3 Acceleration |
160 | { | 172 | { |
@@ -163,13 +175,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
163 | } | 175 | } |
164 | 176 | ||
165 | private string m_description = ""; | 177 | private string m_description = ""; |
178 | |||
166 | public string Description | 179 | public string Description |
167 | { | 180 | { |
168 | get { return this.m_description; } | 181 | get { return m_description; } |
169 | set { this.m_description = value; } | 182 | set { m_description = value; } |
170 | } | 183 | } |
171 | 184 | ||
172 | private string m_text = ""; | 185 | private string m_text = ""; |
186 | |||
173 | public string Text | 187 | public string Text |
174 | { | 188 | { |
175 | get { return m_text; } | 189 | get { return m_text; } |
@@ -181,6 +195,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
181 | } | 195 | } |
182 | 196 | ||
183 | private string m_sitName = ""; | 197 | private string m_sitName = ""; |
198 | |||
184 | public string SitName | 199 | public string SitName |
185 | { | 200 | { |
186 | get { return m_sitName; } | 201 | get { return m_sitName; } |
@@ -188,6 +203,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
188 | } | 203 | } |
189 | 204 | ||
190 | private string m_touchName = ""; | 205 | private string m_touchName = ""; |
206 | |||
191 | public string TouchName | 207 | public string TouchName |
192 | { | 208 | { |
193 | get { return m_touchName; } | 209 | get { return m_touchName; } |
@@ -195,17 +211,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
195 | } | 211 | } |
196 | 212 | ||
197 | protected PrimitiveBaseShape m_shape; | 213 | protected PrimitiveBaseShape m_shape; |
214 | |||
198 | public PrimitiveBaseShape Shape | 215 | public PrimitiveBaseShape Shape |
199 | { | 216 | { |
200 | get { return this.m_shape; } | 217 | get { return m_shape; } |
201 | set { m_shape = value; } | 218 | set { m_shape = value; } |
202 | } | 219 | } |
203 | 220 | ||
204 | public LLVector3 Scale | 221 | public LLVector3 Scale |
205 | { | 222 | { |
206 | set { this.m_shape.Scale = value; } | 223 | set { m_shape.Scale = value; } |
207 | get { return this.m_shape.Scale; } | 224 | get { return m_shape.Scale; } |
208 | } | 225 | } |
226 | |||
209 | #endregion | 227 | #endregion |
210 | 228 | ||
211 | public LLUUID ObjectOwner | 229 | public LLUUID ObjectOwner |
@@ -215,16 +233,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
215 | 233 | ||
216 | public SceneObjectGroup ParentGroup | 234 | public SceneObjectGroup ParentGroup |
217 | { | 235 | { |
218 | get { return m_parentGroup; } | 236 | get { return m_parentGroup; } |
219 | } | 237 | } |
220 | 238 | ||
221 | #region Constructors | 239 | #region Constructors |
240 | |||
222 | /// <summary> | 241 | /// <summary> |
223 | /// | 242 | /// |
224 | /// </summary> | 243 | /// </summary> |
225 | public SceneObjectPart() | 244 | public SceneObjectPart() |
226 | { | 245 | { |
227 | |||
228 | } | 246 | } |
229 | 247 | ||
230 | /// <summary> | 248 | /// <summary> |
@@ -236,43 +254,44 @@ namespace OpenSim.Region.Environment.Scenes | |||
236 | /// <param name="localID"></param> | 254 | /// <param name="localID"></param> |
237 | /// <param name="shape"></param> | 255 | /// <param name="shape"></param> |
238 | /// <param name="position"></param> | 256 | /// <param name="position"></param> |
239 | public SceneObjectPart(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, PrimitiveBaseShape shape, LLVector3 groupPosition, LLVector3 offsetPosition) | 257 | public SceneObjectPart(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, |
240 | { | 258 | PrimitiveBaseShape shape, LLVector3 groupPosition, LLVector3 offsetPosition) |
241 | this.m_name = "Primitive"; | 259 | { |
242 | this.m_regionHandle = regionHandle; | 260 | m_name = "Primitive"; |
243 | this.m_parentGroup = parent; | 261 | m_regionHandle = regionHandle; |
244 | 262 | m_parentGroup = parent; | |
245 | this.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; | 263 | |
246 | this.OwnerID = ownerID; | 264 | CreationDate = (Int32) (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; |
247 | this.CreatorID = this.OwnerID; | 265 | OwnerID = ownerID; |
248 | this.LastOwnerID = LLUUID.Zero; | 266 | CreatorID = OwnerID; |
249 | this.UUID = LLUUID.Random(); | 267 | LastOwnerID = LLUUID.Zero; |
250 | this.LocalID = (uint)(localID); | 268 | UUID = LLUUID.Random(); |
251 | this.Shape = shape; | 269 | LocalID = (uint) (localID); |
252 | 270 | Shape = shape; | |
253 | this.GroupPosition = groupPosition; | 271 | |
254 | this.OffsetPosition = offsetPosition; | 272 | GroupPosition = groupPosition; |
255 | this.RotationOffset = LLQuaternion.Identity; | 273 | OffsetPosition = offsetPosition; |
256 | this.Velocity = new LLVector3(0, 0, 0); | 274 | RotationOffset = LLQuaternion.Identity; |
257 | this.AngularVelocity = new LLVector3(0, 0, 0); | 275 | Velocity = new LLVector3(0, 0, 0); |
258 | this.Acceleration = new LLVector3(0, 0, 0); | 276 | AngularVelocity = new LLVector3(0, 0, 0); |
259 | 277 | Acceleration = new LLVector3(0, 0, 0); | |
278 | |||
260 | m_inventoryFileName = "taskinventory" + LLUUID.Random().ToString(); | 279 | m_inventoryFileName = "taskinventory" + LLUUID.Random().ToString(); |
261 | m_folderID = LLUUID.Random(); | 280 | m_folderID = LLUUID.Random(); |
262 | 281 | ||
263 | m_flags = 0; | 282 | m_flags = 0; |
264 | m_flags |= LLObject.ObjectFlags.ObjectModify | | 283 | m_flags |= LLObject.ObjectFlags.ObjectModify | |
265 | LLObject.ObjectFlags.ObjectCopy | | 284 | LLObject.ObjectFlags.ObjectCopy | |
266 | LLObject.ObjectFlags.ObjectYouOwner | | 285 | LLObject.ObjectFlags.ObjectYouOwner | |
267 | LLObject.ObjectFlags.Touch | | 286 | LLObject.ObjectFlags.Touch | |
268 | LLObject.ObjectFlags.ObjectMove | | 287 | LLObject.ObjectFlags.ObjectMove | |
269 | LLObject.ObjectFlags.AllowInventoryDrop | | 288 | LLObject.ObjectFlags.AllowInventoryDrop | |
270 | LLObject.ObjectFlags.ObjectTransfer | | 289 | LLObject.ObjectFlags.ObjectTransfer | |
271 | LLObject.ObjectFlags.ObjectOwnerModify; | 290 | LLObject.ObjectFlags.ObjectOwnerModify; |
272 | 291 | ||
273 | ScheduleFullUpdate(); | 292 | ScheduleFullUpdate(); |
274 | } | 293 | } |
275 | 294 | ||
276 | /// <summary> | 295 | /// <summary> |
277 | /// Re/create a SceneObjectPart (prim) | 296 | /// Re/create a SceneObjectPart (prim) |
278 | /// currently not used, and maybe won't be | 297 | /// currently not used, and maybe won't be |
@@ -283,23 +302,26 @@ namespace OpenSim.Region.Environment.Scenes | |||
283 | /// <param name="localID"></param> | 302 | /// <param name="localID"></param> |
284 | /// <param name="shape"></param> | 303 | /// <param name="shape"></param> |
285 | /// <param name="position"></param> | 304 | /// <param name="position"></param> |
286 | public SceneObjectPart(ulong regionHandle, SceneObjectGroup parent, int creationDate, LLUUID ownerID, LLUUID creatorID, LLUUID lastOwnerID, uint localID, PrimitiveBaseShape shape, LLVector3 position, LLQuaternion rotation, uint flags) | 305 | public SceneObjectPart(ulong regionHandle, SceneObjectGroup parent, int creationDate, LLUUID ownerID, |
306 | LLUUID creatorID, LLUUID lastOwnerID, uint localID, PrimitiveBaseShape shape, | ||
307 | LLVector3 position, LLQuaternion rotation, uint flags) | ||
287 | { | 308 | { |
288 | this.m_regionHandle = regionHandle; | 309 | m_regionHandle = regionHandle; |
289 | this.m_parentGroup = parent; | 310 | m_parentGroup = parent; |
290 | 311 | ||
291 | this.CreationDate = creationDate; | 312 | CreationDate = creationDate; |
292 | this.OwnerID = ownerID; | 313 | OwnerID = ownerID; |
293 | this.CreatorID = creatorID; | 314 | CreatorID = creatorID; |
294 | this.LastOwnerID = lastOwnerID; | 315 | LastOwnerID = lastOwnerID; |
295 | this.UUID = LLUUID.Random(); | 316 | UUID = LLUUID.Random(); |
296 | this.LocalID = (uint)(localID); | 317 | LocalID = (uint) (localID); |
297 | this.Shape = shape; | 318 | Shape = shape; |
298 | 319 | ||
299 | this.OffsetPosition = position; | 320 | OffsetPosition = position; |
300 | this.RotationOffset = rotation; | 321 | RotationOffset = rotation; |
301 | this.ObjectFlags = flags; | 322 | ObjectFlags = flags; |
302 | } | 323 | } |
324 | |||
303 | #endregion | 325 | #endregion |
304 | 326 | ||
305 | /// <summary> | 327 | /// <summary> |
@@ -309,8 +331,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
309 | /// <returns></returns> | 331 | /// <returns></returns> |
310 | public static SceneObjectPart FromXml(XmlReader xmlReader) | 332 | public static SceneObjectPart FromXml(XmlReader xmlReader) |
311 | { | 333 | { |
312 | XmlSerializer serializer = new XmlSerializer(typeof(SceneObjectPart)); | 334 | XmlSerializer serializer = new XmlSerializer(typeof (SceneObjectPart)); |
313 | return (SceneObjectPart)serializer.Deserialize(xmlReader); | 335 | return (SceneObjectPart) serializer.Deserialize(xmlReader); |
314 | } | 336 | } |
315 | 337 | ||
316 | /// <summary> | 338 | /// <summary> |
@@ -319,7 +341,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
319 | /// <param name="xmlWriter"></param> | 341 | /// <param name="xmlWriter"></param> |
320 | public void ToXml(XmlWriter xmlWriter) | 342 | public void ToXml(XmlWriter xmlWriter) |
321 | { | 343 | { |
322 | XmlSerializer serializer = new XmlSerializer(typeof(SceneObjectPart)); | 344 | XmlSerializer serializer = new XmlSerializer(typeof (SceneObjectPart)); |
323 | serializer.Serialize(xmlWriter, this); | 345 | serializer.Serialize(xmlWriter, this); |
324 | } | 346 | } |
325 | 347 | ||
@@ -329,7 +351,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
329 | public void SetParent(SceneObjectGroup parent) | 351 | public void SetParent(SceneObjectGroup parent) |
330 | { | 352 | { |
331 | m_parentGroup = parent; | 353 | m_parentGroup = parent; |
332 | |||
333 | } | 354 | } |
334 | 355 | ||
335 | public LLUUID GetRootPartUUID() | 356 | public LLUUID GetRootPartUUID() |
@@ -342,34 +363,38 @@ namespace OpenSim.Region.Environment.Scenes | |||
342 | } | 363 | } |
343 | 364 | ||
344 | #region Copying | 365 | #region Copying |
366 | |||
345 | /// <summary> | 367 | /// <summary> |
346 | /// | 368 | /// |
347 | /// </summary> | 369 | /// </summary> |
348 | /// <returns></returns> | 370 | /// <returns></returns> |
349 | public SceneObjectPart Copy(uint localID) | 371 | public SceneObjectPart Copy(uint localID) |
350 | { | 372 | { |
351 | SceneObjectPart dupe = (SceneObjectPart)this.MemberwiseClone(); | 373 | SceneObjectPart dupe = (SceneObjectPart) MemberwiseClone(); |
352 | dupe.m_shape = m_shape.Copy(); | 374 | dupe.m_shape = m_shape.Copy(); |
353 | dupe.m_regionHandle = m_regionHandle; | 375 | dupe.m_regionHandle = m_regionHandle; |
354 | dupe.UUID = LLUUID.Random(); | 376 | dupe.UUID = LLUUID.Random(); |
355 | dupe.LocalID = localID; | 377 | dupe.LocalID = localID; |
356 | dupe.GroupPosition = new LLVector3(GroupPosition.X, GroupPosition.Y, GroupPosition.Z); | 378 | dupe.GroupPosition = new LLVector3(GroupPosition.X, GroupPosition.Y, GroupPosition.Z); |
357 | dupe.OffsetPosition = new LLVector3(OffsetPosition.X, OffsetPosition.Y, OffsetPosition.Z); | 379 | dupe.OffsetPosition = new LLVector3(OffsetPosition.X, OffsetPosition.Y, OffsetPosition.Z); |
358 | dupe.RotationOffset = new LLQuaternion(RotationOffset.X, RotationOffset.Y, RotationOffset.Z, RotationOffset.W); | 380 | dupe.RotationOffset = |
381 | new LLQuaternion(RotationOffset.X, RotationOffset.Y, RotationOffset.Z, RotationOffset.W); | ||
359 | dupe.Velocity = new LLVector3(0, 0, 0); | 382 | dupe.Velocity = new LLVector3(0, 0, 0); |
360 | dupe.Acceleration = new LLVector3(0, 0, 0); | 383 | dupe.Acceleration = new LLVector3(0, 0, 0); |
361 | dupe.AngularVelocity = new LLVector3(0, 0, 0); | 384 | dupe.AngularVelocity = new LLVector3(0, 0, 0); |
362 | dupe.ObjectFlags = this.ObjectFlags; | 385 | dupe.ObjectFlags = ObjectFlags; |
363 | 386 | ||
364 | byte[] extraP = new byte[this.Shape.ExtraParams.Length]; | 387 | byte[] extraP = new byte[Shape.ExtraParams.Length]; |
365 | Array.Copy(this.Shape.ExtraParams, extraP, extraP.Length); | 388 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); |
366 | dupe.Shape.ExtraParams = extraP; | 389 | dupe.Shape.ExtraParams = extraP; |
367 | 390 | ||
368 | return dupe; | 391 | return dupe; |
369 | } | 392 | } |
393 | |||
370 | #endregion | 394 | #endregion |
371 | 395 | ||
372 | #region Update Scheduling | 396 | #region Update Scheduling |
397 | |||
373 | /// <summary> | 398 | /// <summary> |
374 | /// | 399 | /// |
375 | /// </summary> | 400 | /// </summary> |
@@ -387,7 +412,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
387 | { | 412 | { |
388 | m_parentGroup.HasChanged = true; | 413 | m_parentGroup.HasChanged = true; |
389 | } | 414 | } |
390 | this.TimeStampFull =(uint) Util.UnixTimeSinceEpoch(); | 415 | TimeStampFull = (uint) Util.UnixTimeSinceEpoch(); |
391 | m_updateFlag = 2; | 416 | m_updateFlag = 2; |
392 | } | 417 | } |
393 | 418 | ||
@@ -402,7 +427,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
402 | { | 427 | { |
403 | m_parentGroup.HasChanged = true; | 428 | m_parentGroup.HasChanged = true; |
404 | } | 429 | } |
405 | this.TimeStampTerse = (uint)Util.UnixTimeSinceEpoch(); | 430 | TimeStampTerse = (uint) Util.UnixTimeSinceEpoch(); |
406 | m_updateFlag = 1; | 431 | m_updateFlag = 1; |
407 | } | 432 | } |
408 | } | 433 | } |
@@ -426,56 +451,60 @@ namespace OpenSim.Region.Environment.Scenes | |||
426 | } | 451 | } |
427 | } | 452 | } |
428 | } | 453 | } |
454 | |||
429 | #endregion | 455 | #endregion |
430 | 456 | ||
431 | #region Shape | 457 | #region Shape |
458 | |||
432 | /// <summary> | 459 | /// <summary> |
433 | /// | 460 | /// |
434 | /// </summary> | 461 | /// </summary> |
435 | /// <param name="shapeBlock"></param> | 462 | /// <param name="shapeBlock"></param> |
436 | public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock) | 463 | public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock) |
437 | { | 464 | { |
438 | this.m_shape.PathBegin = shapeBlock.PathBegin; | 465 | m_shape.PathBegin = shapeBlock.PathBegin; |
439 | this.m_shape.PathEnd = shapeBlock.PathEnd; | 466 | m_shape.PathEnd = shapeBlock.PathEnd; |
440 | this.m_shape.PathScaleX = shapeBlock.PathScaleX; | 467 | m_shape.PathScaleX = shapeBlock.PathScaleX; |
441 | this.m_shape.PathScaleY = shapeBlock.PathScaleY; | 468 | m_shape.PathScaleY = shapeBlock.PathScaleY; |
442 | this.m_shape.PathShearX = shapeBlock.PathShearX; | 469 | m_shape.PathShearX = shapeBlock.PathShearX; |
443 | this.m_shape.PathShearY = shapeBlock.PathShearY; | 470 | m_shape.PathShearY = shapeBlock.PathShearY; |
444 | this.m_shape.PathSkew = shapeBlock.PathSkew; | 471 | m_shape.PathSkew = shapeBlock.PathSkew; |
445 | this.m_shape.ProfileBegin = shapeBlock.ProfileBegin; | 472 | m_shape.ProfileBegin = shapeBlock.ProfileBegin; |
446 | this.m_shape.ProfileEnd = shapeBlock.ProfileEnd; | 473 | m_shape.ProfileEnd = shapeBlock.ProfileEnd; |
447 | this.m_shape.PathCurve = shapeBlock.PathCurve; | 474 | m_shape.PathCurve = shapeBlock.PathCurve; |
448 | this.m_shape.ProfileCurve = shapeBlock.ProfileCurve; | 475 | m_shape.ProfileCurve = shapeBlock.ProfileCurve; |
449 | this.m_shape.ProfileHollow = shapeBlock.ProfileHollow; | 476 | m_shape.ProfileHollow = shapeBlock.ProfileHollow; |
450 | this.m_shape.PathRadiusOffset = shapeBlock.PathRadiusOffset; | 477 | m_shape.PathRadiusOffset = shapeBlock.PathRadiusOffset; |
451 | this.m_shape.PathRevolutions = shapeBlock.PathRevolutions; | 478 | m_shape.PathRevolutions = shapeBlock.PathRevolutions; |
452 | this.m_shape.PathTaperX = shapeBlock.PathTaperX; | 479 | m_shape.PathTaperX = shapeBlock.PathTaperX; |
453 | this.m_shape.PathTaperY = shapeBlock.PathTaperY; | 480 | m_shape.PathTaperY = shapeBlock.PathTaperY; |
454 | this.m_shape.PathTwist = shapeBlock.PathTwist; | 481 | m_shape.PathTwist = shapeBlock.PathTwist; |
455 | this.m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; | 482 | m_shape.PathTwistBegin = shapeBlock.PathTwistBegin; |
456 | ScheduleFullUpdate(); | 483 | ScheduleFullUpdate(); |
457 | } | 484 | } |
485 | |||
458 | #endregion | 486 | #endregion |
459 | 487 | ||
460 | #region Inventory | 488 | #region Inventory |
489 | |||
461 | public void AddInventoryItem(TaskInventoryItem item) | 490 | public void AddInventoryItem(TaskInventoryItem item) |
462 | { | 491 | { |
463 | item.parent_id = m_folderID; | 492 | item.parent_id = m_folderID; |
464 | item.creation_date = 1000; | 493 | item.creation_date = 1000; |
465 | item.ParentPartID = this.UUID; | 494 | item.ParentPartID = UUID; |
466 | this.TaskInventory.Add(item.item_id, item); | 495 | TaskInventory.Add(item.item_id, item); |
467 | this.m_inventorySerial++; | 496 | m_inventorySerial++; |
468 | } | 497 | } |
469 | 498 | ||
470 | public int RemoveInventoryItem(IClientAPI remoteClient, uint localID, LLUUID itemID) | 499 | public int RemoveInventoryItem(IClientAPI remoteClient, uint localID, LLUUID itemID) |
471 | { | 500 | { |
472 | if (localID == this.LocalID) | 501 | if (localID == LocalID) |
473 | { | 502 | { |
474 | if (this.TaskInventory.ContainsKey(itemID)) | 503 | if (TaskInventory.ContainsKey(itemID)) |
475 | { | 504 | { |
476 | string type = TaskInventory[itemID].inv_type; | 505 | string type = TaskInventory[itemID].inv_type; |
477 | this.TaskInventory.Remove(itemID); | 506 | TaskInventory.Remove(itemID); |
478 | this.m_inventorySerial++; | 507 | m_inventorySerial++; |
479 | if (type == "lsltext") | 508 | if (type == "lsltext") |
480 | { | 509 | { |
481 | return 10; | 510 | return 10; |
@@ -496,16 +525,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
496 | /// <param name="localID"></param> | 525 | /// <param name="localID"></param> |
497 | public bool GetInventoryFileName(IClientAPI client, uint localID) | 526 | public bool GetInventoryFileName(IClientAPI client, uint localID) |
498 | { | 527 | { |
499 | if (localID == this.m_localID) | 528 | if (localID == m_localID) |
500 | { | 529 | { |
501 | if (this.m_inventorySerial > 0) | 530 | if (m_inventorySerial > 0) |
502 | { | 531 | { |
503 | client.SendTaskInventory(this.m_uuid, (short)m_inventorySerial, Helpers.StringToField(m_inventoryFileName)); | 532 | client.SendTaskInventory(m_uuid, (short) m_inventorySerial, |
533 | Helpers.StringToField(m_inventoryFileName)); | ||
504 | return true; | 534 | return true; |
505 | } | 535 | } |
506 | else | 536 | else |
507 | { | 537 | { |
508 | client.SendTaskInventory(this.m_uuid, 0, new byte[0]); | 538 | client.SendTaskInventory(m_uuid, 0, new byte[0]); |
509 | return false; | 539 | return false; |
510 | } | 540 | } |
511 | } | 541 | } |
@@ -515,8 +545,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
515 | public string RequestInventoryFile(IXfer xferManager) | 545 | public string RequestInventoryFile(IXfer xferManager) |
516 | { | 546 | { |
517 | byte[] fileData = new byte[0]; | 547 | byte[] fileData = new byte[0]; |
518 | InventoryStringBuilder invString = new InventoryStringBuilder(m_folderID, this.UUID); | 548 | InventoryStringBuilder invString = new InventoryStringBuilder(m_folderID, UUID); |
519 | foreach (TaskInventoryItem item in this.TaskInventory.Values) | 549 | foreach (TaskInventoryItem item in TaskInventory.Values) |
520 | { | 550 | { |
521 | invString.AddItemStart(); | 551 | invString.AddItemStart(); |
522 | invString.AddNameValueLine("item_id", item.item_id.ToStringHyphenated()); | 552 | invString.AddNameValueLine("item_id", item.item_id.ToStringHyphenated()); |
@@ -550,49 +580,56 @@ namespace OpenSim.Region.Environment.Scenes | |||
550 | } | 580 | } |
551 | return ""; | 581 | return ""; |
552 | } | 582 | } |
583 | |||
553 | #endregion | 584 | #endregion |
554 | 585 | ||
555 | #region ExtraParams | 586 | #region ExtraParams |
587 | |||
556 | public void UpdateExtraParam(ushort type, bool inUse, byte[] data) | 588 | public void UpdateExtraParam(ushort type, bool inUse, byte[] data) |
557 | { | 589 | { |
558 | this.m_shape.ExtraParams = new byte[data.Length + 7]; | 590 | m_shape.ExtraParams = new byte[data.Length + 7]; |
559 | int i = 0; | 591 | int i = 0; |
560 | uint length = (uint)data.Length; | 592 | uint length = (uint) data.Length; |
561 | this.m_shape.ExtraParams[i++] = 1; | 593 | m_shape.ExtraParams[i++] = 1; |
562 | this.m_shape.ExtraParams[i++] = (byte)(type % 256); | 594 | m_shape.ExtraParams[i++] = (byte) (type%256); |
563 | this.m_shape.ExtraParams[i++] = (byte)((type >> 8) % 256); | 595 | m_shape.ExtraParams[i++] = (byte) ((type >> 8)%256); |
564 | 596 | ||
565 | this.m_shape.ExtraParams[i++] = (byte)(length % 256); | 597 | m_shape.ExtraParams[i++] = (byte) (length%256); |
566 | this.m_shape.ExtraParams[i++] = (byte)((length >> 8) % 256); | 598 | m_shape.ExtraParams[i++] = (byte) ((length >> 8)%256); |
567 | this.m_shape.ExtraParams[i++] = (byte)((length >> 16) % 256); | 599 | m_shape.ExtraParams[i++] = (byte) ((length >> 16)%256); |
568 | this.m_shape.ExtraParams[i++] = (byte)((length >> 24) % 256); | 600 | m_shape.ExtraParams[i++] = (byte) ((length >> 24)%256); |
569 | Array.Copy(data, 0, this.m_shape.ExtraParams, i, data.Length); | 601 | Array.Copy(data, 0, m_shape.ExtraParams, i, data.Length); |
570 | |||
571 | this.ScheduleFullUpdate(); | ||
572 | 602 | ||
603 | ScheduleFullUpdate(); | ||
573 | } | 604 | } |
605 | |||
574 | #endregion | 606 | #endregion |
575 | 607 | ||
576 | #region Texture | 608 | #region Texture |
609 | |||
577 | /// <summary> | 610 | /// <summary> |
578 | /// | 611 | /// |
579 | /// </summary> | 612 | /// </summary> |
580 | /// <param name="textureEntry"></param> | 613 | /// <param name="textureEntry"></param> |
581 | public void UpdateTextureEntry(byte[] textureEntry) | 614 | public void UpdateTextureEntry(byte[] textureEntry) |
582 | { | 615 | { |
583 | this.m_shape.TextureEntry = textureEntry; | 616 | m_shape.TextureEntry = textureEntry; |
584 | ScheduleFullUpdate(); | 617 | ScheduleFullUpdate(); |
585 | } | 618 | } |
619 | |||
586 | #endregion | 620 | #endregion |
587 | 621 | ||
588 | #region ParticleSystem | 622 | #region ParticleSystem |
589 | public void AddNewParticleSystem(libsecondlife.Primitive.ParticleSystem pSystem) | 623 | |
624 | public void AddNewParticleSystem(Primitive.ParticleSystem pSystem) | ||
590 | { | 625 | { |
591 | this.m_particleSystem = pSystem.GetBytes(); | 626 | m_particleSystem = pSystem.GetBytes(); |
592 | } | 627 | } |
628 | |||
593 | #endregion | 629 | #endregion |
594 | 630 | ||
595 | #region Position | 631 | #region Position |
632 | |||
596 | /// <summary> | 633 | /// <summary> |
597 | /// | 634 | /// |
598 | /// </summary> | 635 | /// </summary> |
@@ -600,46 +637,52 @@ namespace OpenSim.Region.Environment.Scenes | |||
600 | public void UpdateOffSet(LLVector3 pos) | 637 | public void UpdateOffSet(LLVector3 pos) |
601 | { | 638 | { |
602 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); | 639 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); |
603 | this.OffsetPosition = newPos; | 640 | OffsetPosition = newPos; |
604 | ScheduleTerseUpdate(); | 641 | ScheduleTerseUpdate(); |
605 | } | 642 | } |
606 | 643 | ||
607 | public void UpdateGroupPosition(LLVector3 pos) | 644 | public void UpdateGroupPosition(LLVector3 pos) |
608 | { | 645 | { |
609 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); | 646 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); |
610 | this.GroupPosition = newPos; | 647 | GroupPosition = newPos; |
611 | ScheduleTerseUpdate(); | 648 | ScheduleTerseUpdate(); |
612 | } | 649 | } |
650 | |||
613 | #endregion | 651 | #endregion |
614 | 652 | ||
615 | #region rotation | 653 | #region rotation |
654 | |||
616 | public void UpdateRotation(LLQuaternion rot) | 655 | public void UpdateRotation(LLQuaternion rot) |
617 | { | 656 | { |
618 | this.RotationOffset = new LLQuaternion(rot.X, rot.Y, rot.Z, rot.W); | 657 | RotationOffset = new LLQuaternion(rot.X, rot.Y, rot.Z, rot.W); |
619 | ScheduleTerseUpdate(); | 658 | ScheduleTerseUpdate(); |
620 | } | 659 | } |
660 | |||
621 | #endregion | 661 | #endregion |
622 | 662 | ||
623 | #region Resizing/Scale | 663 | #region Resizing/Scale |
664 | |||
624 | /// <summary> | 665 | /// <summary> |
625 | /// | 666 | /// |
626 | /// </summary> | 667 | /// </summary> |
627 | /// <param name="scale"></param> | 668 | /// <param name="scale"></param> |
628 | public void Resize(LLVector3 scale) | 669 | public void Resize(LLVector3 scale) |
629 | { | 670 | { |
630 | this.m_shape.Scale = scale; | 671 | m_shape.Scale = scale; |
631 | ScheduleFullUpdate(); | 672 | ScheduleFullUpdate(); |
632 | } | 673 | } |
674 | |||
633 | #endregion | 675 | #endregion |
634 | 676 | ||
635 | #region Client Update Methods | 677 | #region Client Update Methods |
678 | |||
636 | public void AddFullUpdateToAllAvatars() | 679 | public void AddFullUpdateToAllAvatars() |
637 | { | 680 | { |
638 | List<ScenePresence> avatars = this.m_parentGroup.RequestSceneAvatars(); | 681 | List<ScenePresence> avatars = m_parentGroup.RequestSceneAvatars(); |
639 | for (int i = 0; i < avatars.Count; i++) | 682 | for (int i = 0; i < avatars.Count; i++) |
640 | { | 683 | { |
641 | avatars[i].AddFullPart(this); | 684 | avatars[i].AddFullPart(this); |
642 | // avatars[i].QueuePartForUpdate(this); | 685 | // avatars[i].QueuePartForUpdate(this); |
643 | } | 686 | } |
644 | } | 687 | } |
645 | 688 | ||
@@ -654,7 +697,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
654 | /// </summary> | 697 | /// </summary> |
655 | public void SendFullUpdateToAllClients() | 698 | public void SendFullUpdateToAllClients() |
656 | { | 699 | { |
657 | List<ScenePresence> avatars = this.m_parentGroup.RequestSceneAvatars(); | 700 | List<ScenePresence> avatars = m_parentGroup.RequestSceneAvatars(); |
658 | for (int i = 0; i < avatars.Count; i++) | 701 | for (int i = 0; i < avatars.Count; i++) |
659 | { | 702 | { |
660 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this); | 703 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this); |
@@ -691,26 +734,26 @@ namespace OpenSim.Region.Environment.Scenes | |||
691 | LLQuaternion lRot; | 734 | LLQuaternion lRot; |
692 | lRot = RotationOffset; | 735 | lRot = RotationOffset; |
693 | 736 | ||
694 | remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, this.ObjectFlags, m_uuid, OwnerID, | 737 | remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, ObjectFlags, m_uuid, |
695 | m_text, ParentID, this.m_particleSystem, lRot); | 738 | OwnerID, |
739 | m_text, ParentID, m_particleSystem, lRot); | ||
696 | } | 740 | } |
697 | 741 | ||
698 | /// Terse updates | 742 | /// Terse updates |
699 | |||
700 | public void AddTerseUpdateToAllAvatars() | 743 | public void AddTerseUpdateToAllAvatars() |
701 | { | 744 | { |
702 | List<ScenePresence> avatars = this.m_parentGroup.RequestSceneAvatars(); | 745 | List<ScenePresence> avatars = m_parentGroup.RequestSceneAvatars(); |
703 | for (int i = 0; i < avatars.Count; i++) | 746 | for (int i = 0; i < avatars.Count; i++) |
704 | { | 747 | { |
705 | avatars[i].AddTersePart(this); | 748 | avatars[i].AddTersePart(this); |
706 | // avatars[i].QueuePartForUpdate(this); | 749 | // avatars[i].QueuePartForUpdate(this); |
707 | } | 750 | } |
708 | } | 751 | } |
709 | 752 | ||
710 | public void AddTerseUpdateToAvatar(ScenePresence presence) | 753 | public void AddTerseUpdateToAvatar(ScenePresence presence) |
711 | { | 754 | { |
712 | presence.AddTersePart(this); | 755 | presence.AddTersePart(this); |
713 | // presence.QueuePartForUpdate(this); | 756 | // presence.QueuePartForUpdate(this); |
714 | } | 757 | } |
715 | 758 | ||
716 | /// <summary> | 759 | /// <summary> |
@@ -718,7 +761,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
718 | /// </summary> | 761 | /// </summary> |
719 | public void SendTerseUpdateToAllClients() | 762 | public void SendTerseUpdateToAllClients() |
720 | { | 763 | { |
721 | List<ScenePresence> avatars = this.m_parentGroup.RequestSceneAvatars(); | 764 | List<ScenePresence> avatars = m_parentGroup.RequestSceneAvatars(); |
722 | for (int i = 0; i < avatars.Count; i++) | 765 | for (int i = 0; i < avatars.Count; i++) |
723 | { | 766 | { |
724 | m_parentGroup.SendPartTerseUpdate(avatars[i].ControllingClient, this); | 767 | m_parentGroup.SendPartTerseUpdate(avatars[i].ControllingClient, this); |
@@ -741,8 +784,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
741 | public void SendTerseUpdateToClient(IClientAPI remoteClient) | 784 | public void SendTerseUpdateToClient(IClientAPI remoteClient) |
742 | { | 785 | { |
743 | LLVector3 lPos; | 786 | LLVector3 lPos; |
744 | lPos = this.OffsetPosition; | 787 | lPos = OffsetPosition; |
745 | LLQuaternion mRot = this.RotationOffset; | 788 | LLQuaternion mRot = RotationOffset; |
746 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot); | 789 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot); |
747 | } | 790 | } |
748 | 791 | ||
@@ -753,9 +796,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
753 | /// <param name="lPos"></param> | 796 | /// <param name="lPos"></param> |
754 | public void SendTerseUpdateToClient(IClientAPI remoteClient, LLVector3 lPos) | 797 | public void SendTerseUpdateToClient(IClientAPI remoteClient, LLVector3 lPos) |
755 | { | 798 | { |
756 | LLQuaternion mRot = this.RotationOffset; | 799 | LLQuaternion mRot = RotationOffset; |
757 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot); | 800 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot); |
758 | } | 801 | } |
802 | |||
759 | #endregion | 803 | #endregion |
760 | 804 | ||
761 | public virtual void UpdateMovement() | 805 | public virtual void UpdateMovement() |
@@ -778,11 +822,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
778 | public InventoryStringBuilder(LLUUID folderID, LLUUID parentID) | 822 | public InventoryStringBuilder(LLUUID folderID, LLUUID parentID) |
779 | { | 823 | { |
780 | BuildString += "\tinv_object\t0\n\t{\n"; | 824 | BuildString += "\tinv_object\t0\n\t{\n"; |
781 | this.AddNameValueLine("obj_id", folderID.ToStringHyphenated()); | 825 | AddNameValueLine("obj_id", folderID.ToStringHyphenated()); |
782 | this.AddNameValueLine("parent_id", parentID.ToStringHyphenated()); | 826 | AddNameValueLine("parent_id", parentID.ToStringHyphenated()); |
783 | this.AddNameValueLine("type", "category"); | 827 | AddNameValueLine("type", "category"); |
784 | this.AddNameValueLine("name", "Contents"); | 828 | AddNameValueLine("name", "Contents"); |
785 | this.AddSectionEnd(); | 829 | AddSectionEnd(); |
786 | } | 830 | } |
787 | 831 | ||
788 | public void AddItemStart() | 832 | public void AddItemStart() |
@@ -831,7 +875,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
831 | "", | 875 | "", |
832 | "", | 876 | "", |
833 | "", | 877 | "", |
834 | "", | 878 | "", |
835 | "", | 879 | "", |
836 | "lsltext", | 880 | "lsltext", |
837 | "" | 881 | "" |
@@ -865,5 +909,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
865 | } | 909 | } |
866 | } | 910 | } |
867 | } | 911 | } |
868 | } | 912 | } \ No newline at end of file |
869 | |||
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs index 8c8cebe..e8f29c8 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.Animations.cs | |||
@@ -35,7 +35,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
35 | { | 35 | { |
36 | public class AvatarAnimations | 36 | public class AvatarAnimations |
37 | { | 37 | { |
38 | |||
39 | public Dictionary<string, LLUUID> AnimsLLUUID = new Dictionary<string, LLUUID>(); | 38 | public Dictionary<string, LLUUID> AnimsLLUUID = new Dictionary<string, LLUUID>(); |
40 | public Dictionary<LLUUID, string> AnimsNames = new Dictionary<LLUUID, string>(); | 39 | public Dictionary<LLUUID, string> AnimsNames = new Dictionary<LLUUID, string>(); |
41 | 40 | ||
@@ -52,12 +51,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
52 | doc.Load(reader); | 51 | doc.Load(reader); |
53 | foreach (XmlNode nod in doc.DocumentElement.ChildNodes) | 52 | foreach (XmlNode nod in doc.DocumentElement.ChildNodes) |
54 | { | 53 | { |
55 | |||
56 | if (nod.Attributes["name"] != null) | 54 | if (nod.Attributes["name"] != null) |
57 | { | 55 | { |
58 | AnimsLLUUID.Add(nod.Attributes["name"].Value, nod.InnerText); | 56 | AnimsLLUUID.Add(nod.Attributes["name"].Value, nod.InnerText); |
59 | } | 57 | } |
60 | |||
61 | } | 58 | } |
62 | 59 | ||
63 | reader.Close(); | 60 | reader.Close(); |
@@ -71,4 +68,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
71 | } | 68 | } |
72 | } | 69 | } |
73 | } | 70 | } |
74 | } | 71 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.Body.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.Body.cs index efe613f..605e8a1 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.Body.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.Body.cs | |||
@@ -37,7 +37,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
37 | { | 37 | { |
38 | public Avatar() | 38 | public Avatar() |
39 | { | 39 | { |
40 | |||
41 | } | 40 | } |
42 | 41 | ||
43 | public void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation) | 42 | public void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation) |
@@ -61,7 +60,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
61 | { | 60 | { |
62 | public ChildAgent() | 61 | public ChildAgent() |
63 | { | 62 | { |
64 | |||
65 | } | 63 | } |
66 | 64 | ||
67 | public void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation) | 65 | public void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation) |
@@ -81,5 +79,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
81 | } | 79 | } |
82 | } | 80 | } |
83 | } | 81 | } |
84 | 82 | } \ No newline at end of file | |
85 | } | ||
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 6d51fbc..64c6eaa 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -27,7 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.IO; | ||
31 | using Axiom.Math; | 30 | using Axiom.Math; |
32 | using libsecondlife; | 31 | using libsecondlife; |
33 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
@@ -72,7 +71,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
72 | private IScenePresenceBody m_body; | 71 | private IScenePresenceBody m_body; |
73 | 72 | ||
74 | private Vector3[] Dir_Vectors = new Vector3[6]; | 73 | private Vector3[] Dir_Vectors = new Vector3[6]; |
75 | private libsecondlife.LLVector3 lastPhysPos = new libsecondlife.LLVector3(); | 74 | private LLVector3 lastPhysPos = new LLVector3(); |
75 | |||
76 | private enum Dir_ControlFlags | 76 | private enum Dir_ControlFlags |
77 | { | 77 | { |
78 | DIR_CONTROL_FLAG_FOWARD = MainAvatar.ControlFlags.AGENT_CONTROL_AT_POS, | 78 | DIR_CONTROL_FLAG_FOWARD = MainAvatar.ControlFlags.AGENT_CONTROL_AT_POS, |
@@ -82,48 +82,39 @@ namespace OpenSim.Region.Environment.Scenes | |||
82 | DIR_CONTROL_FLAG_UP = MainAvatar.ControlFlags.AGENT_CONTROL_UP_POS, | 82 | DIR_CONTROL_FLAG_UP = MainAvatar.ControlFlags.AGENT_CONTROL_UP_POS, |
83 | DIR_CONTROL_FLAG_DOWN = MainAvatar.ControlFlags.AGENT_CONTROL_UP_NEG | 83 | DIR_CONTROL_FLAG_DOWN = MainAvatar.ControlFlags.AGENT_CONTROL_UP_NEG |
84 | } | 84 | } |
85 | |||
85 | /// <summary> | 86 | /// <summary> |
86 | /// Position at which a significant movement was made | 87 | /// Position at which a significant movement was made |
87 | /// </summary> | 88 | /// </summary> |
88 | private LLVector3 posLastSignificantMove = new LLVector3(); | 89 | private LLVector3 posLastSignificantMove = new LLVector3(); |
89 | 90 | ||
90 | public delegate void SignificantClientMovement(IClientAPI remote_client); | 91 | public delegate void SignificantClientMovement(IClientAPI remote_client); |
92 | |||
91 | public event SignificantClientMovement OnSignificantClientMovement; | 93 | public event SignificantClientMovement OnSignificantClientMovement; |
92 | 94 | ||
93 | //public List<SceneObjectGroup> InterestList = new List<SceneObjectGroup>(); | 95 | //public List<SceneObjectGroup> InterestList = new List<SceneObjectGroup>(); |
94 | 96 | ||
95 | // private Queue<SceneObjectGroup> m_fullGroupUpdates = new Queue<SceneObjectGroup>(); | 97 | // private Queue<SceneObjectGroup> m_fullGroupUpdates = new Queue<SceneObjectGroup>(); |
96 | // private Queue<SceneObjectGroup> m_terseGroupUpdates = new Queue<SceneObjectGroup>(); | 98 | // private Queue<SceneObjectGroup> m_terseGroupUpdates = new Queue<SceneObjectGroup>(); |
97 | 99 | ||
98 | private Queue<SceneObjectPart> m_fullPartUpdates = new Queue<SceneObjectPart>(); | 100 | private Queue<SceneObjectPart> m_fullPartUpdates = new Queue<SceneObjectPart>(); |
99 | private Queue<SceneObjectPart> m_tersePartUpdates = new Queue<SceneObjectPart>(); | 101 | private Queue<SceneObjectPart> m_tersePartUpdates = new Queue<SceneObjectPart>(); |
100 | 102 | ||
101 | #region Properties | 103 | #region Properties |
104 | |||
102 | /// <summary> | 105 | /// <summary> |
103 | /// | 106 | /// |
104 | /// </summary> | 107 | /// </summary> |
105 | public PhysicsActor PhysActor | 108 | public PhysicsActor PhysActor |
106 | { | 109 | { |
107 | set | 110 | set { _physActor = value; } |
108 | { | 111 | get { return _physActor; } |
109 | this._physActor = value; | ||
110 | } | ||
111 | get | ||
112 | { | ||
113 | return _physActor; | ||
114 | } | ||
115 | } | 112 | } |
116 | 113 | ||
117 | public bool Updated | 114 | public bool Updated |
118 | { | 115 | { |
119 | set | 116 | set { updateflag = value; } |
120 | { | 117 | get { return updateflag; } |
121 | this.updateflag = value; | ||
122 | } | ||
123 | get | ||
124 | { | ||
125 | return this.updateflag; | ||
126 | } | ||
127 | } | 118 | } |
128 | 119 | ||
129 | public ulong RegionHandle | 120 | public ulong RegionHandle |
@@ -132,12 +123,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
132 | } | 123 | } |
133 | 124 | ||
134 | private string m_firstname; | 125 | private string m_firstname; |
126 | |||
135 | public string Firstname | 127 | public string Firstname |
136 | { | 128 | { |
137 | get { return m_firstname; } | 129 | get { return m_firstname; } |
138 | } | 130 | } |
139 | 131 | ||
140 | private string m_lastname; | 132 | private string m_lastname; |
133 | |||
141 | public string Lastname | 134 | public string Lastname |
142 | { | 135 | { |
143 | get { return m_lastname; } | 136 | get { return m_lastname; } |
@@ -146,6 +139,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
146 | #endregion | 139 | #endregion |
147 | 140 | ||
148 | #region Constructor(s) | 141 | #region Constructor(s) |
142 | |||
149 | /// <summary> | 143 | /// <summary> |
150 | /// | 144 | /// |
151 | /// </summary> | 145 | /// </summary> |
@@ -155,19 +149,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
155 | /// <param name="regionDat"></param> | 149 | /// <param name="regionDat"></param> |
156 | public ScenePresence(IClientAPI theClient, Scene world, RegionInfo reginfo) | 150 | public ScenePresence(IClientAPI theClient, Scene world, RegionInfo reginfo) |
157 | { | 151 | { |
158 | |||
159 | m_scene = world; | 152 | m_scene = world; |
160 | this.m_uuid = theClient.AgentId; | 153 | m_uuid = theClient.AgentId; |
161 | 154 | ||
162 | m_regionInfo = reginfo; | 155 | m_regionInfo = reginfo; |
163 | m_regionHandle = reginfo.RegionHandle; | 156 | m_regionHandle = reginfo.RegionHandle; |
164 | MainLog.Instance.Verbose("Avatar.cs "); | 157 | MainLog.Instance.Verbose("Avatar.cs "); |
165 | ControllingClient = theClient; | 158 | ControllingClient = theClient; |
166 | this.m_firstname = ControllingClient.FirstName; | 159 | m_firstname = ControllingClient.FirstName; |
167 | this.m_lastname = ControllingClient.LastName; | 160 | m_lastname = ControllingClient.LastName; |
168 | m_localId = m_scene.NextLocalId; | 161 | m_localId = m_scene.NextLocalId; |
169 | AbsolutePosition = ControllingClient.StartPos; | 162 | AbsolutePosition = ControllingClient.StartPos; |
170 | 163 | ||
171 | visualParams = new byte[218]; | 164 | visualParams = new byte[218]; |
172 | for (int i = 0; i < 218; i++) | 165 | for (int i = 0; i < 218; i++) |
173 | { | 166 | { |
@@ -175,37 +168,37 @@ namespace OpenSim.Region.Environment.Scenes | |||
175 | } | 168 | } |
176 | 169 | ||
177 | Wearables = AvatarWearable.DefaultWearables; | 170 | Wearables = AvatarWearable.DefaultWearables; |
178 | Animations = new ScenePresence.AvatarAnimations(); | 171 | Animations = new AvatarAnimations(); |
179 | Animations.LoadAnims(); | 172 | Animations.LoadAnims(); |
180 | 173 | ||
181 | //register for events | 174 | //register for events |
182 | ControllingClient.OnRequestWearables += this.SendOurAppearance; | 175 | ControllingClient.OnRequestWearables += SendOurAppearance; |
183 | ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance); | 176 | ControllingClient.OnSetAppearance += new SetAppearance(SetAppearance); |
184 | ControllingClient.OnCompleteMovementToRegion += this.CompleteMovement; | 177 | ControllingClient.OnCompleteMovementToRegion += CompleteMovement; |
185 | ControllingClient.OnCompleteMovementToRegion += this.SendInitialData; | 178 | ControllingClient.OnCompleteMovementToRegion += SendInitialData; |
186 | ControllingClient.OnAgentUpdate += this.HandleAgentUpdate; | 179 | ControllingClient.OnAgentUpdate += HandleAgentUpdate; |
187 | // ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack); | 180 | // ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack); |
188 | // ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange); | 181 | // ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange); |
189 | //ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement); | 182 | //ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement); |
190 | 183 | ||
191 | Dir_Vectors[0] = new Vector3(1, 0, 0); //FOWARD | 184 | Dir_Vectors[0] = new Vector3(1, 0, 0); //FOWARD |
192 | Dir_Vectors[1] = new Vector3(-1, 0, 0); //BACK | 185 | Dir_Vectors[1] = new Vector3(-1, 0, 0); //BACK |
193 | Dir_Vectors[2] = new Vector3(0, 1, 0); //LEFT | 186 | Dir_Vectors[2] = new Vector3(0, 1, 0); //LEFT |
194 | Dir_Vectors[3] = new Vector3(0, -1, 0); //RIGHT | 187 | Dir_Vectors[3] = new Vector3(0, -1, 0); //RIGHT |
195 | Dir_Vectors[4] = new Vector3(0, 0, 1); //UP | 188 | Dir_Vectors[4] = new Vector3(0, 0, 1); //UP |
196 | Dir_Vectors[5] = new Vector3(0, 0, -1); //DOWN | 189 | Dir_Vectors[5] = new Vector3(0, 0, -1); //DOWN |
197 | 190 | ||
198 | this.m_textureEntry = new LLObject.TextureEntry(DefaultTexture, 0, DefaultTexture.Length); | 191 | m_textureEntry = new LLObject.TextureEntry(DefaultTexture, 0, DefaultTexture.Length); |
199 | 192 | ||
200 | //temporary until we move some code into the body classes | 193 | //temporary until we move some code into the body classes |
201 | this.m_body = new ChildAgent(); | 194 | m_body = new ChildAgent(); |
202 | 195 | ||
203 | if (newAvatar) | 196 | if (newAvatar) |
204 | { | 197 | { |
205 | //do we need to use newAvatar? not sure so have added this to kill the compile warning | 198 | //do we need to use newAvatar? not sure so have added this to kill the compile warning |
206 | } | 199 | } |
207 | |||
208 | } | 200 | } |
201 | |||
209 | #endregion | 202 | #endregion |
210 | 203 | ||
211 | public void AddTersePart(SceneObjectPart part) | 204 | public void AddTersePart(SceneObjectPart part) |
@@ -228,10 +221,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
228 | while (terse) | 221 | while (terse) |
229 | { | 222 | { |
230 | SceneObjectPart part = m_tersePartUpdates.Dequeue(); | 223 | SceneObjectPart part = m_tersePartUpdates.Dequeue(); |
231 | part.SendTerseUpdate(this.ControllingClient); | 224 | part.SendTerseUpdate(ControllingClient); |
232 | terseCount++; | 225 | terseCount++; |
233 | 226 | ||
234 | if ((m_tersePartUpdates.Count < 1) |(terseCount > 30)) | 227 | if ((m_tersePartUpdates.Count < 1) | (terseCount > 30)) |
235 | { | 228 | { |
236 | terse = false; | 229 | terse = false; |
237 | } | 230 | } |
@@ -245,31 +238,30 @@ namespace OpenSim.Region.Environment.Scenes | |||
245 | while (full) | 238 | while (full) |
246 | { | 239 | { |
247 | SceneObjectPart part = m_fullPartUpdates.Dequeue(); | 240 | SceneObjectPart part = m_fullPartUpdates.Dequeue(); |
248 | part.SendFullUpdate(this.ControllingClient); | 241 | part.SendFullUpdate(ControllingClient); |
249 | fullCount++; | 242 | fullCount++; |
250 | if ((m_fullPartUpdates.Count < 1) | (fullCount > 40)) | 243 | if ((m_fullPartUpdates.Count < 1) | (fullCount > 40)) |
251 | { | 244 | { |
252 | full = false; | 245 | full = false; |
253 | } | 246 | } |
254 | |||
255 | } | 247 | } |
256 | } | 248 | } |
257 | } | 249 | } |
258 | 250 | ||
259 | #region Status Methods | 251 | #region Status Methods |
252 | |||
260 | /// <summary> | 253 | /// <summary> |
261 | /// Not Used, most likely can be deleted | 254 | /// Not Used, most likely can be deleted |
262 | /// </summary> | 255 | /// </summary> |
263 | /// <param name="status"></param> | 256 | /// <param name="status"></param> |
264 | public void ChildStatusChange(bool status) | 257 | public void ChildStatusChange(bool status) |
265 | { | 258 | { |
266 | this.childAgent = status; | 259 | childAgent = status; |
267 | 260 | ||
268 | if (this.childAgent == true) | 261 | if (childAgent == true) |
269 | { | 262 | { |
270 | this.Velocity = new LLVector3(0, 0, 0); | 263 | Velocity = new LLVector3(0, 0, 0); |
271 | this.AbsolutePosition = new LLVector3(128, 128, 70); | 264 | AbsolutePosition = new LLVector3(128, 128, 70); |
272 | |||
273 | } | 265 | } |
274 | } | 266 | } |
275 | 267 | ||
@@ -280,17 +272,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
280 | public void MakeAvatar(LLVector3 pos, bool isFlying) | 272 | public void MakeAvatar(LLVector3 pos, bool isFlying) |
281 | { | 273 | { |
282 | //this.childAvatar = false; | 274 | //this.childAvatar = false; |
283 | this.AbsolutePosition = pos; | 275 | AbsolutePosition = pos; |
284 | this._physActor.Flying = isFlying; | 276 | _physActor.Flying = isFlying; |
285 | this.newAvatar = true; | 277 | newAvatar = true; |
286 | this.childAgent = false; | 278 | childAgent = false; |
287 | this.m_scene.SendAllSceneObjectsToClient(this); | 279 | m_scene.SendAllSceneObjectsToClient(this); |
288 | } | 280 | } |
289 | 281 | ||
290 | protected void MakeChildAgent() | 282 | protected void MakeChildAgent() |
291 | { | 283 | { |
292 | this.Velocity = new LLVector3(0, 0, 0); | 284 | Velocity = new LLVector3(0, 0, 0); |
293 | this.childAgent = true; | 285 | childAgent = true; |
294 | //this.Pos = new LLVector3(128, 128, 70); | 286 | //this.Pos = new LLVector3(128, 128, 70); |
295 | } | 287 | } |
296 | 288 | ||
@@ -300,8 +292,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
300 | /// <param name="pos"></param> | 292 | /// <param name="pos"></param> |
301 | public void Teleport(LLVector3 pos) | 293 | public void Teleport(LLVector3 pos) |
302 | { | 294 | { |
303 | this.AbsolutePosition = pos; | 295 | AbsolutePosition = pos; |
304 | this.SendTerseUpdateToALLClients(); | 296 | SendTerseUpdateToALLClients(); |
305 | } | 297 | } |
306 | 298 | ||
307 | /// <summary> | 299 | /// <summary> |
@@ -309,11 +301,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
309 | /// </summary> | 301 | /// </summary> |
310 | public void StopMovement() | 302 | public void StopMovement() |
311 | { | 303 | { |
312 | |||
313 | } | 304 | } |
305 | |||
314 | #endregion | 306 | #endregion |
315 | 307 | ||
316 | #region Event Handlers | 308 | #region Event Handlers |
309 | |||
317 | /// <summary> | 310 | /// <summary> |
318 | /// | 311 | /// |
319 | /// </summary> | 312 | /// </summary> |
@@ -322,14 +315,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
322 | public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam) | 315 | public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam) |
323 | { | 316 | { |
324 | LLObject.TextureEntry textureEnt = new LLObject.TextureEntry(texture, 0, texture.Length); | 317 | LLObject.TextureEntry textureEnt = new LLObject.TextureEntry(texture, 0, texture.Length); |
325 | this.m_textureEntry = textureEnt; | 318 | m_textureEntry = textureEnt; |
326 | 319 | ||
327 | for (int i = 0; i < visualParam.Length; i++) | 320 | for (int i = 0; i < visualParam.Length; i++) |
328 | { | 321 | { |
329 | this.visualParams[i] = visualParam[i].ParamValue; | 322 | visualParams[i] = visualParam[i].ParamValue; |
330 | } | 323 | } |
331 | 324 | ||
332 | this.SendArrearanceToAllOtherAgents(); | 325 | SendArrearanceToAllOtherAgents(); |
333 | } | 326 | } |
334 | 327 | ||
335 | /// <summary> | 328 | /// <summary> |
@@ -337,16 +330,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
337 | /// </summary> | 330 | /// </summary> |
338 | public void CompleteMovement() | 331 | public void CompleteMovement() |
339 | { | 332 | { |
340 | LLVector3 look = this.Velocity; | 333 | LLVector3 look = Velocity; |
341 | if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) | 334 | if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) |
342 | { | 335 | { |
343 | look = new LLVector3(0.99f, 0.042f, 0); | 336 | look = new LLVector3(0.99f, 0.042f, 0); |
344 | } | 337 | } |
345 | this.ControllingClient.MoveAgentIntoRegion(m_regionInfo, AbsolutePosition, look); | 338 | ControllingClient.MoveAgentIntoRegion(m_regionInfo, AbsolutePosition, look); |
346 | if (this.childAgent) | 339 | if (childAgent) |
347 | { | 340 | { |
348 | this.childAgent = false; | 341 | childAgent = false; |
349 | 342 | ||
350 | //this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient); | 343 | //this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient); |
351 | } | 344 | } |
352 | } | 345 | } |
@@ -363,47 +356,45 @@ namespace OpenSim.Region.Environment.Scenes | |||
363 | bool DCFlagKeyPressed = false; | 356 | bool DCFlagKeyPressed = false; |
364 | Vector3 agent_control_v3 = new Vector3(0, 0, 0); | 357 | Vector3 agent_control_v3 = new Vector3(0, 0, 0); |
365 | Quaternion q = new Quaternion(bodyRotation.W, bodyRotation.X, bodyRotation.Y, bodyRotation.Z); | 358 | Quaternion q = new Quaternion(bodyRotation.W, bodyRotation.X, bodyRotation.Y, bodyRotation.Z); |
366 | bool oldflying = this.PhysActor.Flying; | 359 | bool oldflying = PhysActor.Flying; |
367 | this.PhysActor.Flying = ((flags & (uint)MainAvatar.ControlFlags.AGENT_CONTROL_FLY) != 0); | 360 | PhysActor.Flying = ((flags & (uint) MainAvatar.ControlFlags.AGENT_CONTROL_FLY) != 0); |
368 | if (this.PhysActor.Flying != oldflying) | 361 | if (PhysActor.Flying != oldflying) |
369 | { | 362 | { |
370 | update_movementflag = true; | 363 | update_movementflag = true; |
371 | } | 364 | } |
372 | 365 | ||
373 | if (q != this.bodyRot) | 366 | if (q != bodyRot) |
374 | { | 367 | { |
375 | this.bodyRot = q; | 368 | bodyRot = q; |
376 | update_rotation = true; | 369 | update_rotation = true; |
377 | } | 370 | } |
378 | foreach (Dir_ControlFlags DCF in Enum.GetValues(typeof(Dir_ControlFlags))) | 371 | foreach (Dir_ControlFlags DCF in Enum.GetValues(typeof (Dir_ControlFlags))) |
379 | { | 372 | { |
380 | if ((flags & (uint)DCF) != 0) | 373 | if ((flags & (uint) DCF) != 0) |
381 | { | 374 | { |
382 | DCFlagKeyPressed = true; | 375 | DCFlagKeyPressed = true; |
383 | agent_control_v3 += Dir_Vectors[i]; | 376 | agent_control_v3 += Dir_Vectors[i]; |
384 | if ((movementflag & (uint)DCF) == 0) | 377 | if ((movementflag & (uint) DCF) == 0) |
385 | { | 378 | { |
386 | movementflag += (byte)(uint)DCF; | 379 | movementflag += (byte) (uint) DCF; |
387 | update_movementflag = true; | 380 | update_movementflag = true; |
388 | } | 381 | } |
389 | } | 382 | } |
390 | else | 383 | else |
391 | { | 384 | { |
392 | if ((movementflag & (uint)DCF) != 0) | 385 | if ((movementflag & (uint) DCF) != 0) |
393 | { | 386 | { |
394 | movementflag -= (byte)(uint)DCF; | 387 | movementflag -= (byte) (uint) DCF; |
395 | update_movementflag = true; | 388 | update_movementflag = true; |
396 | |||
397 | } | 389 | } |
398 | } | 390 | } |
399 | i++; | 391 | i++; |
400 | } | 392 | } |
401 | if ((update_movementflag) || (update_rotation && DCFlagKeyPressed)) | 393 | if ((update_movementflag) || (update_rotation && DCFlagKeyPressed)) |
402 | { | 394 | { |
403 | this.AddNewMovement(agent_control_v3, q); | 395 | AddNewMovement(agent_control_v3, q); |
404 | } | 396 | } |
405 | UpdateMovementAnimations(update_movementflag); | 397 | UpdateMovementAnimations(update_movementflag); |
406 | |||
407 | } | 398 | } |
408 | 399 | ||
409 | protected void UpdateMovementAnimations(bool update_movementflag) | 400 | protected void UpdateMovementAnimations(bool update_movementflag) |
@@ -412,49 +403,48 @@ namespace OpenSim.Region.Environment.Scenes | |||
412 | { | 403 | { |
413 | if (movementflag != 0) | 404 | if (movementflag != 0) |
414 | { | 405 | { |
415 | if (this._physActor.Flying) | 406 | if (_physActor.Flying) |
416 | { | 407 | { |
417 | this.SendAnimPack(Animations.AnimsLLUUID["FLY"], 1); | 408 | SendAnimPack(Animations.AnimsLLUUID["FLY"], 1); |
418 | } | 409 | } |
419 | else | 410 | else |
420 | { | 411 | { |
421 | this.SendAnimPack(Animations.AnimsLLUUID["WALK"], 1); | 412 | SendAnimPack(Animations.AnimsLLUUID["WALK"], 1); |
422 | } | 413 | } |
423 | } | 414 | } |
424 | else | 415 | else |
425 | { | 416 | { |
426 | this.SendAnimPack(Animations.AnimsLLUUID["STAND"], 1); | 417 | SendAnimPack(Animations.AnimsLLUUID["STAND"], 1); |
427 | } | 418 | } |
428 | } | 419 | } |
429 | |||
430 | } | 420 | } |
431 | 421 | ||
432 | 422 | ||
433 | protected void AddNewMovement(Vector3 vec, Quaternion rotation) | 423 | protected void AddNewMovement(Vector3 vec, Quaternion rotation) |
434 | { | 424 | { |
435 | NewForce newVelocity = new NewForce(); | 425 | NewForce newVelocity = new NewForce(); |
436 | Vector3 direc = rotation * vec; | 426 | Vector3 direc = rotation*vec; |
437 | direc.Normalize(); | 427 | direc.Normalize(); |
438 | 428 | ||
439 | direc = direc * ((0.03f) * 128f); | 429 | direc = direc*((0.03f)*128f); |
440 | if (this._physActor.Flying) | 430 | if (_physActor.Flying) |
441 | direc *= 4; | 431 | direc *= 4; |
442 | 432 | ||
443 | newVelocity.X = direc.x; | 433 | newVelocity.X = direc.x; |
444 | newVelocity.Y = direc.y; | 434 | newVelocity.Y = direc.y; |
445 | newVelocity.Z = direc.z; | 435 | newVelocity.Z = direc.z; |
446 | this.forcesList.Add(newVelocity); | 436 | forcesList.Add(newVelocity); |
447 | } | 437 | } |
448 | 438 | ||
449 | #endregion | 439 | #endregion |
450 | 440 | ||
451 | #region Overridden Methods | 441 | #region Overridden Methods |
442 | |||
452 | /// <summary> | 443 | /// <summary> |
453 | /// | 444 | /// |
454 | /// </summary> | 445 | /// </summary> |
455 | public override void LandRenegerated() | 446 | public override void LandRenegerated() |
456 | { | 447 | { |
457 | |||
458 | } | 448 | } |
459 | 449 | ||
460 | /// <summary> | 450 | /// <summary> |
@@ -462,63 +452,65 @@ namespace OpenSim.Region.Environment.Scenes | |||
462 | /// </summary> | 452 | /// </summary> |
463 | public override void Update() | 453 | public override void Update() |
464 | { | 454 | { |
465 | this.SendPrimUpdates(); | 455 | SendPrimUpdates(); |
466 | 456 | ||
467 | if (this.newCoarseLocations) { | 457 | if (newCoarseLocations) |
468 | this.SendCoarseLocations(); | 458 | { |
469 | this.newCoarseLocations = false; | 459 | SendCoarseLocations(); |
460 | newCoarseLocations = false; | ||
470 | } | 461 | } |
471 | 462 | ||
472 | if (this.childAgent == false) | 463 | if (childAgent == false) |
473 | { | 464 | { |
474 | |||
475 | /// check for user movement 'forces' (ie commands to move) | 465 | /// check for user movement 'forces' (ie commands to move) |
476 | if (this.newForce) | 466 | if (newForce) |
477 | { | 467 | { |
478 | this.SendTerseUpdateToALLClients(); | 468 | SendTerseUpdateToALLClients(); |
479 | _updateCount = 0; | 469 | _updateCount = 0; |
480 | } | 470 | } |
481 | 471 | ||
482 | /// check for scripted movement (?) | 472 | /// check for scripted movement (?) |
483 | else if (movementflag != 0) | 473 | else if (movementflag != 0) |
484 | { | 474 | { |
485 | _updateCount++; | 475 | _updateCount++; |
486 | if (_updateCount > 3) | 476 | if (_updateCount > 3) |
487 | { | 477 | { |
488 | this.SendTerseUpdateToALLClients(); | 478 | SendTerseUpdateToALLClients(); |
489 | _updateCount = 0; | 479 | _updateCount = 0; |
490 | } | 480 | } |
491 | } | 481 | } |
492 | 482 | ||
493 | /// check for physics-related movement | 483 | /// check for physics-related movement |
494 | else if (this.lastPhysPos.GetDistanceTo(this.AbsolutePosition) > 0.02 ) | 484 | else if (lastPhysPos.GetDistanceTo(AbsolutePosition) > 0.02) |
495 | { | 485 | { |
496 | this.SendTerseUpdateToALLClients(); | 486 | SendTerseUpdateToALLClients(); |
497 | _updateCount = 0; | 487 | _updateCount = 0; |
498 | this.lastPhysPos = this.AbsolutePosition; | 488 | lastPhysPos = AbsolutePosition; |
499 | } | 489 | } |
500 | this.CheckForSignificantMovement(); | 490 | CheckForSignificantMovement(); |
501 | this.CheckForBorderCrossing(); | 491 | CheckForBorderCrossing(); |
502 | |||
503 | } | 492 | } |
504 | } | 493 | } |
494 | |||
505 | #endregion | 495 | #endregion |
506 | 496 | ||
507 | #region Update Client(s) | 497 | #region Update Client(s) |
498 | |||
508 | /// <summary> | 499 | /// <summary> |
509 | /// | 500 | /// |
510 | /// </summary> | 501 | /// </summary> |
511 | /// <param name="RemoteClient"></param> | 502 | /// <param name="RemoteClient"></param> |
512 | public void SendTerseUpdateToClient(IClientAPI RemoteClient) | 503 | public void SendTerseUpdateToClient(IClientAPI RemoteClient) |
513 | { | 504 | { |
514 | LLVector3 pos = this.AbsolutePosition; | 505 | LLVector3 pos = AbsolutePosition; |
515 | LLVector3 vel = this.Velocity; | 506 | LLVector3 vel = Velocity; |
516 | LLQuaternion rot; | 507 | LLQuaternion rot; |
517 | rot.X = this.bodyRot.x; | 508 | rot.X = bodyRot.x; |
518 | rot.Y = this.bodyRot.y; | 509 | rot.Y = bodyRot.y; |
519 | rot.Z = this.bodyRot.z; | 510 | rot.Z = bodyRot.z; |
520 | rot.W = this.bodyRot.w; | 511 | rot.W = bodyRot.w; |
521 | RemoteClient.SendAvatarTerseUpdate(this.m_regionHandle, 64096, this.LocalId, new LLVector3(pos.X, pos.Y, pos.Z), new LLVector3(vel.X, vel.Y, vel.Z), rot); | 512 | RemoteClient.SendAvatarTerseUpdate(m_regionHandle, 64096, LocalId, new LLVector3(pos.X, pos.Y, pos.Z), |
513 | new LLVector3(vel.X, vel.Y, vel.Z), rot); | ||
522 | } | 514 | } |
523 | 515 | ||
524 | /// <summary> | 516 | /// <summary> |
@@ -526,42 +518,44 @@ namespace OpenSim.Region.Environment.Scenes | |||
526 | /// </summary> | 518 | /// </summary> |
527 | public void SendTerseUpdateToALLClients() | 519 | public void SendTerseUpdateToALLClients() |
528 | { | 520 | { |
529 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 521 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
530 | for (int i = 0; i < avatars.Count; i++) | 522 | for (int i = 0; i < avatars.Count; i++) |
531 | { | 523 | { |
532 | this.SendTerseUpdateToClient(avatars[i].ControllingClient); | 524 | SendTerseUpdateToClient(avatars[i].ControllingClient); |
533 | } | 525 | } |
534 | } | 526 | } |
535 | 527 | ||
536 | 528 | ||
537 | public void SendCoarseLocations() | 529 | public void SendCoarseLocations() |
538 | { | 530 | { |
539 | List<LLVector3> CoarseLocations = new List<LLVector3>(); | 531 | List<LLVector3> CoarseLocations = new List<LLVector3>(); |
540 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 532 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
541 | for (int i = 0; i < avatars.Count; i++) | 533 | for (int i = 0; i < avatars.Count; i++) |
542 | { | 534 | { |
543 | if (avatars[i] != this && (!avatars[i].childAgent) ) { | 535 | if (avatars[i] != this && (!avatars[i].childAgent)) |
544 | CoarseLocations.Add(avatars[i].AbsolutePosition); | 536 | { |
545 | } | 537 | CoarseLocations.Add(avatars[i].AbsolutePosition); |
538 | } | ||
546 | } | 539 | } |
547 | this.ControllingClient.SendCoarseLocationUpdate(CoarseLocations); | 540 | ControllingClient.SendCoarseLocationUpdate(CoarseLocations); |
548 | } | 541 | } |
549 | 542 | ||
550 | public void CoarseLocationChange(ScenePresence avatar) | 543 | public void CoarseLocationChange(ScenePresence avatar) |
551 | { | 544 | { |
552 | newCoarseLocations = true; | 545 | newCoarseLocations = true; |
553 | } | 546 | } |
554 | 547 | ||
555 | private void NotifyMyCoarseLocationChange() | 548 | private void NotifyMyCoarseLocationChange() |
556 | { | 549 | { |
557 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 550 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
558 | for (int i = 0; i < avatars.Count; i++) { | 551 | for (int i = 0; i < avatars.Count; i++) |
559 | if (avatars[i] != this) { | 552 | { |
560 | avatars[i].CoarseLocationChange(this); | 553 | if (avatars[i] != this) |
561 | } | 554 | { |
555 | avatars[i].CoarseLocationChange(this); | ||
556 | } | ||
562 | } | 557 | } |
563 | 558 | } | |
564 | } | ||
565 | 559 | ||
566 | 560 | ||
567 | /// <summary> | 561 | /// <summary> |
@@ -570,16 +564,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
570 | /// <param name="remoteAvatar"></param> | 564 | /// <param name="remoteAvatar"></param> |
571 | public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar) | 565 | public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar) |
572 | { | 566 | { |
573 | remoteAvatar.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, this.m_firstname, this.m_lastname, this.m_uuid, this.LocalId, this.AbsolutePosition, this.m_textureEntry.ToBytes()); | 567 | remoteAvatar.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid, |
568 | LocalId, AbsolutePosition, m_textureEntry.ToBytes()); | ||
574 | } | 569 | } |
575 | 570 | ||
576 | public void SendFullUpdateToALLClients() | 571 | public void SendFullUpdateToALLClients() |
577 | { | 572 | { |
578 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 573 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
579 | foreach (ScenePresence avatar in this.m_scene.RequestAvatarList()) | 574 | foreach (ScenePresence avatar in m_scene.RequestAvatarList()) |
580 | { | 575 | { |
581 | this.SendFullUpdateToOtherClient(avatar); | 576 | SendFullUpdateToOtherClient(avatar); |
582 | if (avatar.LocalId != this.LocalId) | 577 | if (avatar.LocalId != LocalId) |
583 | { | 578 | { |
584 | if (!avatar.childAgent) | 579 | if (!avatar.childAgent) |
585 | { | 580 | { |
@@ -595,15 +590,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
595 | /// </summary> | 590 | /// </summary> |
596 | public void SendInitialData() | 591 | public void SendInitialData() |
597 | { | 592 | { |
598 | this.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, this.m_firstname, this.m_lastname, this.m_uuid, this.LocalId, this.AbsolutePosition, this.m_textureEntry.ToBytes()); | 593 | ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid, LocalId, |
599 | if (!this.childAgent) | 594 | AbsolutePosition, m_textureEntry.ToBytes()); |
595 | if (!childAgent) | ||
600 | { | 596 | { |
601 | this.m_scene.InformClientOfNeighbours(this.ControllingClient); | 597 | m_scene.InformClientOfNeighbours(ControllingClient); |
602 | this.newAvatar = false; | 598 | newAvatar = false; |
603 | } | 599 | } |
604 | 600 | ||
605 | this.SendFullUpdateToALLClients(); | 601 | SendFullUpdateToALLClients(); |
606 | this.SendArrearanceToAllOtherAgents(); | 602 | SendArrearanceToAllOtherAgents(); |
607 | } | 603 | } |
608 | 604 | ||
609 | /// <summary> | 605 | /// <summary> |
@@ -612,13 +608,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
612 | /// <param name="OurClient"></param> | 608 | /// <param name="OurClient"></param> |
613 | public void SendOurAppearance(IClientAPI OurClient) | 609 | public void SendOurAppearance(IClientAPI OurClient) |
614 | { | 610 | { |
615 | this.ControllingClient.SendWearables(this.Wearables); | 611 | ControllingClient.SendWearables(Wearables); |
616 | 612 | ||
617 | //this.SendFullUpdateToALLClients(); | 613 | //this.SendFullUpdateToALLClients(); |
618 | //this.SendArrearanceToAllOtherAgents(); | 614 | //this.SendArrearanceToAllOtherAgents(); |
619 | 615 | ||
620 | this.m_scene.SendAllSceneObjectsToClient(this); | 616 | m_scene.SendAllSceneObjectsToClient(this); |
621 | this.ControllingClient.SendViewerTime(this.m_scene.TimePhase); | 617 | ControllingClient.SendViewerTime(m_scene.TimePhase); |
622 | 618 | ||
623 | //Please don't remove the following code (at least not yet), just leave it commented out | 619 | //Please don't remove the following code (at least not yet), just leave it commented out |
624 | //gives the user god powers, should help with debuging things in the future | 620 | //gives the user god powers, should help with debuging things in the future |
@@ -636,10 +632,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
636 | /// </summary> | 632 | /// </summary> |
637 | public void SendArrearanceToAllOtherAgents() | 633 | public void SendArrearanceToAllOtherAgents() |
638 | { | 634 | { |
639 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 635 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
640 | foreach (ScenePresence avatar in this.m_scene.RequestAvatarList()) | 636 | foreach (ScenePresence avatar in m_scene.RequestAvatarList()) |
641 | { | 637 | { |
642 | this.SendAppearanceToOtherAgent(avatar); | 638 | SendAppearanceToOtherAgent(avatar); |
643 | } | 639 | } |
644 | } | 640 | } |
645 | 641 | ||
@@ -649,7 +645,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
649 | /// <param name="avatarInfo"></param> | 645 | /// <param name="avatarInfo"></param> |
650 | public void SendAppearanceToOtherAgent(ScenePresence avatarInfo) | 646 | public void SendAppearanceToOtherAgent(ScenePresence avatarInfo) |
651 | { | 647 | { |
652 | avatarInfo.ControllingClient.SendAppearance(this.ControllingClient.AgentId, this.visualParams, this.m_textureEntry.ToBytes()); | 648 | avatarInfo.ControllingClient.SendAppearance(ControllingClient.AgentId, visualParams, |
649 | m_textureEntry.ToBytes()); | ||
653 | } | 650 | } |
654 | 651 | ||
655 | /// <summary> | 652 | /// <summary> |
@@ -659,12 +656,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
659 | /// <param name="seq"></param> | 656 | /// <param name="seq"></param> |
660 | public void SendAnimPack(LLUUID animID, int seq) | 657 | public void SendAnimPack(LLUUID animID, int seq) |
661 | { | 658 | { |
662 | this.current_anim = animID; | 659 | current_anim = animID; |
663 | this.anim_seq = seq; | 660 | anim_seq = seq; |
664 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 661 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
665 | for (int i = 0; i < avatars.Count; i++) | 662 | for (int i = 0; i < avatars.Count; i++) |
666 | { | 663 | { |
667 | avatars[i].ControllingClient.SendAnimation(animID, seq, this.ControllingClient.AgentId); | 664 | avatars[i].ControllingClient.SendAnimation(animID, seq, ControllingClient.AgentId); |
668 | } | 665 | } |
669 | } | 666 | } |
670 | 667 | ||
@@ -673,48 +670,51 @@ namespace OpenSim.Region.Environment.Scenes | |||
673 | /// </summary> | 670 | /// </summary> |
674 | public void SendAnimPack() | 671 | public void SendAnimPack() |
675 | { | 672 | { |
676 | this.SendAnimPack(this.current_anim, this.anim_seq); | 673 | SendAnimPack(current_anim, anim_seq); |
677 | } | 674 | } |
675 | |||
678 | #endregion | 676 | #endregion |
679 | 677 | ||
680 | #region Significant Movement Method | 678 | #region Significant Movement Method |
681 | 679 | ||
682 | protected void CheckForSignificantMovement() | 680 | protected void CheckForSignificantMovement() |
683 | { | 681 | { |
684 | if (libsecondlife.Helpers.VecDist(this.AbsolutePosition, this.posLastSignificantMove) > 2.0) | 682 | if (Helpers.VecDist(AbsolutePosition, posLastSignificantMove) > 2.0) |
685 | { | 683 | { |
686 | this.posLastSignificantMove = this.AbsolutePosition; | 684 | posLastSignificantMove = AbsolutePosition; |
687 | if (OnSignificantClientMovement != null) | 685 | if (OnSignificantClientMovement != null) |
688 | { | 686 | { |
689 | OnSignificantClientMovement(this.ControllingClient); | 687 | OnSignificantClientMovement(ControllingClient); |
690 | NotifyMyCoarseLocationChange(); | 688 | NotifyMyCoarseLocationChange(); |
691 | } | 689 | } |
692 | } | 690 | } |
693 | } | 691 | } |
692 | |||
694 | #endregion | 693 | #endregion |
695 | 694 | ||
696 | #region Border Crossing Methods | 695 | #region Border Crossing Methods |
696 | |||
697 | /// <summary> | 697 | /// <summary> |
698 | /// | 698 | /// |
699 | /// </summary> | 699 | /// </summary> |
700 | protected void CheckForBorderCrossing() | 700 | protected void CheckForBorderCrossing() |
701 | { | 701 | { |
702 | LLVector3 pos2 = this.AbsolutePosition; | 702 | LLVector3 pos2 = AbsolutePosition; |
703 | LLVector3 vel = this.Velocity; | 703 | LLVector3 vel = Velocity; |
704 | 704 | ||
705 | float timeStep = 0.1f; | 705 | float timeStep = 0.1f; |
706 | pos2.X = pos2.X + (vel.X * timeStep); | 706 | pos2.X = pos2.X + (vel.X*timeStep); |
707 | pos2.Y = pos2.Y + (vel.Y * timeStep); | 707 | pos2.Y = pos2.Y + (vel.Y*timeStep); |
708 | pos2.Z = pos2.Z + (vel.Z * timeStep); | 708 | pos2.Z = pos2.Z + (vel.Z*timeStep); |
709 | 709 | ||
710 | if ((pos2.X < 0) || (pos2.X > 256)) | 710 | if ((pos2.X < 0) || (pos2.X > 256)) |
711 | { | 711 | { |
712 | this.CrossToNewRegion(); | 712 | CrossToNewRegion(); |
713 | } | 713 | } |
714 | 714 | ||
715 | if ((pos2.Y < 0) || (pos2.Y > 256)) | 715 | if ((pos2.Y < 0) || (pos2.Y > 256)) |
716 | { | 716 | { |
717 | this.CrossToNewRegion(); | 717 | CrossToNewRegion(); |
718 | } | 718 | } |
719 | } | 719 | } |
720 | 720 | ||
@@ -723,10 +723,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
723 | /// </summary> | 723 | /// </summary> |
724 | protected void CrossToNewRegion() | 724 | protected void CrossToNewRegion() |
725 | { | 725 | { |
726 | LLVector3 pos = this.AbsolutePosition; | 726 | LLVector3 pos = AbsolutePosition; |
727 | LLVector3 newpos = new LLVector3(pos.X, pos.Y, pos.Z); | 727 | LLVector3 newpos = new LLVector3(pos.X, pos.Y, pos.Z); |
728 | uint neighbourx = this.m_regionInfo.RegionLocX; | 728 | uint neighbourx = m_regionInfo.RegionLocX; |
729 | uint neighboury = this.m_regionInfo.RegionLocY; | 729 | uint neighboury = m_regionInfo.RegionLocY; |
730 | 730 | ||
731 | if (pos.X < 1.7F) | 731 | if (pos.X < 1.7F) |
732 | { | 732 | { |
@@ -749,24 +749,28 @@ namespace OpenSim.Region.Environment.Scenes | |||
749 | newpos.Y = 0.1F; | 749 | newpos.Y = 0.1F; |
750 | } | 750 | } |
751 | 751 | ||
752 | LLVector3 vel = this.m_velocity; | 752 | LLVector3 vel = m_velocity; |
753 | ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * 256), (uint)(neighboury * 256)); | 753 | ulong neighbourHandle = Helpers.UIntsToLong((uint) (neighbourx*256), (uint) (neighboury*256)); |
754 | RegionInfo neighbourRegion = this.m_scene.RequestNeighbouringRegionInfo(neighbourHandle); | 754 | RegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle); |
755 | if (neighbourRegion != null) | 755 | if (neighbourRegion != null) |
756 | { | 756 | { |
757 | bool res = this.m_scene.InformNeighbourOfCrossing(neighbourHandle, this.ControllingClient.AgentId, newpos, this._physActor.Flying); | 757 | bool res = |
758 | m_scene.InformNeighbourOfCrossing(neighbourHandle, ControllingClient.AgentId, newpos, | ||
759 | _physActor.Flying); | ||
758 | if (res) | 760 | if (res) |
759 | { | 761 | { |
760 | //TODO: following line is hard coded to port 9000, really need to change this as soon as possible | 762 | //TODO: following line is hard coded to port 9000, really need to change this as soon as possible |
761 | AgentCircuitData circuitdata = this.ControllingClient.RequestClientInfo(); | 763 | AgentCircuitData circuitdata = ControllingClient.RequestClientInfo(); |
762 | string capsPath = Util.GetCapsURL(this.ControllingClient.AgentId); | 764 | string capsPath = Util.GetCapsURL(ControllingClient.AgentId); |
763 | this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath); | 765 | ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, |
764 | this.MakeChildAgent(); | 766 | capsPath); |
765 | this.m_scene.SendKillObject(this.m_localId); | 767 | MakeChildAgent(); |
766 | this.NotifyMyCoarseLocationChange(); | 768 | m_scene.SendKillObject(m_localId); |
769 | NotifyMyCoarseLocationChange(); | ||
767 | } | 770 | } |
768 | } | 771 | } |
769 | } | 772 | } |
773 | |||
770 | #endregion | 774 | #endregion |
771 | 775 | ||
772 | /// <summary> | 776 | /// <summary> |
@@ -774,7 +778,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
774 | /// </summary> | 778 | /// </summary> |
775 | public static void LoadAnims() | 779 | public static void LoadAnims() |
776 | { | 780 | { |
777 | |||
778 | } | 781 | } |
779 | 782 | ||
780 | /// <summary> | 783 | /// <summary> |
@@ -783,21 +786,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
783 | public override void UpdateMovement() | 786 | public override void UpdateMovement() |
784 | { | 787 | { |
785 | newForce = false; | 788 | newForce = false; |
786 | lock (this.forcesList) | 789 | lock (forcesList) |
787 | { | 790 | { |
788 | if (this.forcesList.Count > 0) | 791 | if (forcesList.Count > 0) |
789 | { | 792 | { |
790 | for (int i = 0; i < this.forcesList.Count; i++) | 793 | for (int i = 0; i < forcesList.Count; i++) |
791 | { | 794 | { |
792 | NewForce force = this.forcesList[i]; | 795 | NewForce force = forcesList[i]; |
793 | 796 | ||
794 | this.updateflag = true; | 797 | updateflag = true; |
795 | this.Velocity = new LLVector3(force.X, force.Y, force.Z); | 798 | Velocity = new LLVector3(force.X, force.Y, force.Z); |
796 | this.newForce = true; | 799 | newForce = true; |
797 | } | 800 | } |
798 | for (int i = 0; i < this.forcesList.Count; i++) | 801 | for (int i = 0; i < forcesList.Count; i++) |
799 | { | 802 | { |
800 | this.forcesList.RemoveAt(0); | 803 | forcesList.RemoveAt(0); |
801 | } | 804 | } |
802 | } | 805 | } |
803 | } | 806 | } |
@@ -824,7 +827,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
824 | 827 | ||
825 | public NewForce() | 828 | public NewForce() |
826 | { | 829 | { |
827 | |||
828 | } | 830 | } |
829 | } | 831 | } |
830 | 832 | ||
@@ -833,5 +835,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
833 | throw new Exception("The method or operation is not implemented."); | 835 | throw new Exception("The method or operation is not implemented."); |
834 | } | 836 | } |
835 | } | 837 | } |
836 | 838 | } \ No newline at end of file | |
837 | } | ||
diff --git a/OpenSim/Region/Environment/Scenes/Scripting/IScriptHost.cs b/OpenSim/Region/Environment/Scenes/Scripting/IScriptHost.cs index 7cf9cb7..dbd43be 100644 --- a/OpenSim/Region/Environment/Scenes/Scripting/IScriptHost.cs +++ b/OpenSim/Region/Environment/Scenes/Scripting/IScriptHost.cs | |||
@@ -1,20 +1,18 @@ | |||
1 | using System; | 1 | using Axiom.Math; |
2 | using System.Collections.Generic; | 2 | using libsecondlife; |
3 | using System.Text; | 3 | |
4 | using libsecondlife; | ||
5 | |||
6 | namespace OpenSim.Region.Environment.Scenes.Scripting | 4 | namespace OpenSim.Region.Environment.Scenes.Scripting |
7 | { | 5 | { |
8 | public interface IScriptHost | 6 | public interface IScriptHost |
9 | { | 7 | { |
10 | string Name { get; set;} | 8 | string Name { get; set; } |
11 | string SitName{ get; set;} | 9 | string SitName { get; set; } |
12 | string TouchName { get; set;} | 10 | string TouchName { get; set; } |
13 | string Description { get; set; } | 11 | string Description { get; set; } |
14 | LLUUID UUID { get; } | 12 | LLUUID UUID { get; } |
15 | LLUUID ObjectOwner { get;} | 13 | LLUUID ObjectOwner { get; } |
16 | LLUUID ObjectCreator { get; } | 14 | LLUUID ObjectCreator { get; } |
17 | LLVector3 AbsolutePosition { get; } | 15 | LLVector3 AbsolutePosition { get; } |
18 | void SetText(string text, Axiom.Math.Vector3 color, double alpha); | 16 | void SetText(string text, Vector3 color, double alpha); |
19 | } | 17 | } |
20 | } | 18 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scripting/NullScriptHost.cs b/OpenSim/Region/Environment/Scenes/Scripting/NullScriptHost.cs index 875e4cb..6876cfb 100644 --- a/OpenSim/Region/Environment/Scenes/Scripting/NullScriptHost.cs +++ b/OpenSim/Region/Environment/Scenes/Scripting/NullScriptHost.cs | |||
@@ -1,14 +1,13 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using Axiom.Math; |
3 | using System.Text; | 3 | using libsecondlife; |
4 | using libsecondlife; | 4 | |
5 | |||
6 | namespace OpenSim.Region.Environment.Scenes.Scripting | 5 | namespace OpenSim.Region.Environment.Scenes.Scripting |
7 | { | 6 | { |
8 | public class NullScriptHost : IScriptHost | 7 | public class NullScriptHost : IScriptHost |
9 | { | 8 | { |
10 | 9 | private LLVector3 m_pos = new LLVector3(128, 128, 30); | |
11 | LLVector3 m_pos = new LLVector3( 128, 128, 30 ); | 10 | |
12 | public string Name | 11 | public string Name |
13 | { | 12 | { |
14 | get { return "Object"; } | 13 | get { return "Object"; } |
@@ -39,18 +38,23 @@ namespace OpenSim.Region.Environment.Scenes.Scripting | |||
39 | } | 38 | } |
40 | 39 | ||
41 | public LLUUID ObjectOwner | 40 | public LLUUID ObjectOwner |
42 | { get { return LLUUID.Zero; } } | 41 | { |
42 | get { return LLUUID.Zero; } | ||
43 | } | ||
43 | 44 | ||
44 | public LLUUID ObjectCreator { get { return LLUUID.Zero; } } | 45 | public LLUUID ObjectCreator |
46 | { | ||
47 | get { return LLUUID.Zero; } | ||
48 | } | ||
45 | 49 | ||
46 | public LLVector3 AbsolutePosition | 50 | public LLVector3 AbsolutePosition |
47 | { | 51 | { |
48 | get { return m_pos; } | 52 | get { return m_pos; } |
49 | } | 53 | } |
50 | 54 | ||
51 | public void SetText(string text, Axiom.Math.Vector3 color, double alpha) | 55 | public void SetText(string text, Vector3 color, double alpha) |
52 | { | 56 | { |
53 | Console.WriteLine("Tried to SetText [{0}] on NullScriptHost", text); | 57 | Console.WriteLine("Tried to SetText [{0}] on NullScriptHost", text); |
54 | } | 58 | } |
55 | } | 59 | } |
56 | } | 60 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineInterface.cs b/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineInterface.cs index 5e8ff87..06bedaf 100644 --- a/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineInterface.cs +++ b/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineInterface.cs | |||
@@ -26,18 +26,16 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | /* Original code: Tedd Hansen */ | 28 | /* Original code: Tedd Hansen */ |
29 | using System; | 29 | using OpenSim.Framework.Console; |
30 | using System.Collections.Generic; | 30 | |
31 | using System.Text; | 31 | //TODO: WHERE TO PLACE THIS? |
32 | using OpenSim.Region.Environment.Scenes.Scripting; | 32 | |
33 | |||
34 | //TODO: WHERE TO PLACE THIS? | ||
35 | namespace OpenSim.Region.Environment.Scenes.Scripting | 33 | namespace OpenSim.Region.Environment.Scenes.Scripting |
36 | { | 34 | { |
37 | public interface ScriptEngineInterface | 35 | public interface ScriptEngineInterface |
38 | { | 36 | { |
39 | void InitializeEngine(OpenSim.Region.Environment.Scenes.Scene Sceneworld, OpenSim.Framework.Console.LogBase logger); | 37 | void InitializeEngine(Scene Sceneworld, LogBase logger); |
40 | void Shutdown(); | 38 | void Shutdown(); |
41 | // void StartScript(string ScriptID, IScriptHost ObjectID); | 39 | // void StartScript(string ScriptID, IScriptHost ObjectID); |
42 | } | 40 | } |
43 | } | 41 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineLoader.cs b/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineLoader.cs index 83bd0ab..5355388 100644 --- a/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineLoader.cs +++ b/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineLoader.cs | |||
@@ -26,18 +26,18 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | /* Original code: Tedd Hansen */ | 28 | /* Original code: Tedd Hansen */ |
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.IO; |
31 | using System.IO; | 31 | using System.Reflection; |
32 | using System.Text; | 32 | using OpenSim.Framework.Console; |
33 | using System.Reflection; | 33 | |
34 | |||
35 | namespace OpenSim.Region.Environment.Scenes.Scripting | 34 | namespace OpenSim.Region.Environment.Scenes.Scripting |
36 | { | 35 | { |
37 | public class ScriptEngineLoader | 36 | public class ScriptEngineLoader |
38 | { | 37 | { |
39 | private OpenSim.Framework.Console.LogBase m_log; | 38 | private LogBase m_log; |
40 | public ScriptEngineLoader(OpenSim.Framework.Console.LogBase logger) | 39 | |
40 | public ScriptEngineLoader(LogBase logger) | ||
41 | { | 41 | { |
42 | m_log = logger; | 42 | m_log = logger; |
43 | } | 43 | } |
@@ -47,12 +47,16 @@ namespace OpenSim.Region.Environment.Scenes.Scripting | |||
47 | ScriptEngineInterface ret = null; | 47 | ScriptEngineInterface ret = null; |
48 | try | 48 | try |
49 | { | 49 | { |
50 | ret = LoadAndInitAssembly(Path.Combine("ScriptEngines", "OpenSim.Region.ScriptEngine." + EngineName + ".dll"), | 50 | ret = |
51 | "OpenSim.Region.ScriptEngine." + EngineName + ".ScriptEngine"); | 51 | LoadAndInitAssembly( |
52 | Path.Combine("ScriptEngines", "OpenSim.Region.ScriptEngine." + EngineName + ".dll"), | ||
53 | "OpenSim.Region.ScriptEngine." + EngineName + ".ScriptEngine"); | ||
52 | } | 54 | } |
53 | catch (Exception e) | 55 | catch (Exception e) |
54 | { | 56 | { |
55 | m_log.Error("ScriptEngine", "Error loading assembly \"" + EngineName + "\": " + e.Message + ", " + e.StackTrace.ToString()); | 57 | m_log.Error("ScriptEngine", |
58 | "Error loading assembly \"" + EngineName + "\": " + e.Message + ", " + | ||
59 | e.StackTrace.ToString()); | ||
56 | } | 60 | } |
57 | return ret; | 61 | return ret; |
58 | } | 62 | } |
@@ -107,18 +111,14 @@ namespace OpenSim.Region.Environment.Scenes.Scripting | |||
107 | ScriptEngineInterface ret; | 111 | ScriptEngineInterface ret; |
108 | //try | 112 | //try |
109 | //{ | 113 | //{ |
110 | ret = (ScriptEngineInterface)Activator.CreateInstance(t); | 114 | ret = (ScriptEngineInterface) Activator.CreateInstance(t); |
111 | //} | 115 | //} |
112 | //catch (Exception e) | 116 | //catch (Exception e) |
113 | //{ | 117 | //{ |
114 | // m_log.Error("ScriptEngine", "Error initializing type \"" + NameSpace + "\" from \"" + FileName + "\": " + e.ToString()); | 118 | // m_log.Error("ScriptEngine", "Error initializing type \"" + NameSpace + "\" from \"" + FileName + "\": " + e.ToString()); |
115 | //} | 119 | //} |
116 | 120 | ||
117 | return ret; | 121 | return ret; |
118 | 122 | } | |
119 | |||
120 | } | ||
121 | |||
122 | |||
123 | } | 123 | } |
124 | } | 124 | } \ No newline at end of file |