diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneBase.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 37 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 26 |
5 files changed, 30 insertions, 58 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 53f0f2e..245f258 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -82,16 +82,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
82 | m_log.Info("[PRIM INVENTORY]: Starting scripts in scene"); | 82 | m_log.Info("[PRIM INVENTORY]: Starting scripts in scene"); |
83 | 83 | ||
84 | IScriptModule[] engines = RequestModuleInterfaces<IScriptModule>(); | 84 | IScriptModule[] engines = RequestModuleInterfaces<IScriptModule>(); |
85 | if (engines != null) | 85 | |
86 | { | 86 | foreach (IScriptModule engine in engines) |
87 | foreach (IScriptModule engine in engines) | 87 | engine.StartProcessing(); |
88 | { | ||
89 | if (engine != null) | ||
90 | { | ||
91 | engine.StartProcessing(); | ||
92 | } | ||
93 | } | ||
94 | } | ||
95 | } | 88 | } |
96 | 89 | ||
97 | public void AddUploadedInventoryItem(UUID agentID, InventoryItemBase item) | 90 | public void AddUploadedInventoryItem(UUID agentID, InventoryItemBase item) |
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs index 73e9392..0fd5164 100644 --- a/OpenSim/Region/Framework/Scenes/SceneBase.cs +++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs | |||
@@ -451,7 +451,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
451 | } | 451 | } |
452 | else | 452 | else |
453 | { | 453 | { |
454 | return new T[] { default(T) }; | 454 | return new T[] {}; |
455 | } | 455 | } |
456 | } | 456 | } |
457 | 457 | ||
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index e214f57..11040b7 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -252,7 +252,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
252 | private byte[] m_TextureAnimation; | 252 | private byte[] m_TextureAnimation; |
253 | private byte m_clickAction; | 253 | private byte m_clickAction; |
254 | private Color m_color = Color.Black; | 254 | private Color m_color = Color.Black; |
255 | private string m_description = String.Empty; | ||
256 | private readonly List<uint> m_lastColliders = new List<uint>(); | 255 | private readonly List<uint> m_lastColliders = new List<uint>(); |
257 | private int m_linkNum; | 256 | private int m_linkNum; |
258 | 257 | ||
@@ -331,11 +330,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
331 | /// </summary> | 330 | /// </summary> |
332 | public SceneObjectPart() | 331 | public SceneObjectPart() |
333 | { | 332 | { |
334 | // It's not necessary to persist this | ||
335 | m_TextureAnimation = Utils.EmptyBytes; | 333 | m_TextureAnimation = Utils.EmptyBytes; |
336 | m_particleSystem = Utils.EmptyBytes; | 334 | m_particleSystem = Utils.EmptyBytes; |
337 | Rezzed = DateTime.UtcNow; | 335 | Rezzed = DateTime.UtcNow; |
338 | 336 | Description = String.Empty; | |
337 | |||
338 | // Prims currently only contain a single folder (Contents). From looking at the Second Life protocol, | ||
339 | // this appears to have the same UUID (!) as the prim. If this isn't the case, one can't drag items from | ||
340 | // the prim into an agent inventory (Linden client reports that the "Object not found for drop" in its log | ||
339 | m_inventory = new SceneObjectPartInventory(this); | 341 | m_inventory = new SceneObjectPartInventory(this); |
340 | } | 342 | } |
341 | 343 | ||
@@ -349,11 +351,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
349 | /// <param name="offsetPosition"></param> | 351 | /// <param name="offsetPosition"></param> |
350 | public SceneObjectPart( | 352 | public SceneObjectPart( |
351 | UUID ownerID, PrimitiveBaseShape shape, Vector3 groupPosition, | 353 | UUID ownerID, PrimitiveBaseShape shape, Vector3 groupPosition, |
352 | Quaternion rotationOffset, Vector3 offsetPosition) | 354 | Quaternion rotationOffset, Vector3 offsetPosition) : this() |
353 | { | 355 | { |
354 | m_name = "Object"; | 356 | m_name = "Object"; |
355 | 357 | ||
356 | Rezzed = DateTime.UtcNow; | ||
357 | CreationDate = (int)Utils.DateTimeToUnixTime(Rezzed); | 358 | CreationDate = (int)Utils.DateTimeToUnixTime(Rezzed); |
358 | LastOwnerID = CreatorID = OwnerID = ownerID; | 359 | LastOwnerID = CreatorID = OwnerID = ownerID; |
359 | UUID = UUID.Random(); | 360 | UUID = UUID.Random(); |
@@ -368,19 +369,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
368 | Velocity = Vector3.Zero; | 369 | Velocity = Vector3.Zero; |
369 | AngularVelocity = Vector3.Zero; | 370 | AngularVelocity = Vector3.Zero; |
370 | Acceleration = Vector3.Zero; | 371 | Acceleration = Vector3.Zero; |
371 | m_TextureAnimation = Utils.EmptyBytes; | ||
372 | m_particleSystem = Utils.EmptyBytes; | ||
373 | |||
374 | // Prims currently only contain a single folder (Contents). From looking at the Second Life protocol, | ||
375 | // this appears to have the same UUID (!) as the prim. If this isn't the case, one can't drag items from | ||
376 | // the prim into an agent inventory (Linden client reports that the "Object not found for drop" in its log | ||
377 | |||
378 | Flags = 0; | 372 | Flags = 0; |
379 | CreateSelected = true; | 373 | CreateSelected = true; |
380 | 374 | ||
381 | TrimPermissions(); | 375 | TrimPermissions(); |
382 | |||
383 | m_inventory = new SceneObjectPartInventory(this); | ||
384 | } | 376 | } |
385 | 377 | ||
386 | #endregion Constructors | 378 | #endregion Constructors |
@@ -938,19 +930,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
938 | set { m_acceleration = value; } | 930 | set { m_acceleration = value; } |
939 | } | 931 | } |
940 | 932 | ||
941 | public string Description | 933 | public string Description { get; set; } |
942 | { | ||
943 | get { return m_description; } | ||
944 | set | ||
945 | { | ||
946 | m_description = value; | ||
947 | PhysicsActor actor = PhysActor; | ||
948 | if (actor != null) | ||
949 | { | ||
950 | actor.SOPDescription = value; | ||
951 | } | ||
952 | } | ||
953 | } | ||
954 | 934 | ||
955 | /// <value> | 935 | /// <value> |
956 | /// Text color. | 936 | /// Text color. |
@@ -1595,8 +1575,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1595 | // Basic Physics returns null.. joy joy joy. | 1575 | // Basic Physics returns null.. joy joy joy. |
1596 | if (PhysActor != null) | 1576 | if (PhysActor != null) |
1597 | { | 1577 | { |
1598 | PhysActor.SOPName = this.Name; // save object name and desc into the PhysActor so ODE internals know the joint/body info | 1578 | PhysActor.SOPName = this.Name; // save object into the PhysActor so ODE internals know the joint/body info |
1599 | PhysActor.SOPDescription = this.Description; | ||
1600 | PhysActor.SetMaterial(Material); | 1579 | PhysActor.SetMaterial(Material); |
1601 | DoPhysicsPropertyUpdate(RigidBody, true); | 1580 | DoPhysicsPropertyUpdate(RigidBody, true); |
1602 | PhysActor.SetVolumeDetect(VolumeDetectActive ? 1 : 0); | 1581 | PhysActor.SetVolumeDetect(VolumeDetectActive ? 1 : 0); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 309f543..c485e87 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -282,8 +282,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
282 | ArrayList ret = new ArrayList(); | 282 | ArrayList ret = new ArrayList(); |
283 | 283 | ||
284 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); | 284 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); |
285 | if (engines == null) // No engine at all | ||
286 | return ret; | ||
287 | 285 | ||
288 | foreach (IScriptModule e in engines) | 286 | foreach (IScriptModule e in engines) |
289 | { | 287 | { |
@@ -397,7 +395,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
397 | private void RestoreSavedScriptState(UUID oldID, UUID newID) | 395 | private void RestoreSavedScriptState(UUID oldID, UUID newID) |
398 | { | 396 | { |
399 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); | 397 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); |
400 | if (engines == null) // No engine at all | 398 | if (engines.Length == 0) // No engine at all |
401 | return; | 399 | return; |
402 | 400 | ||
403 | if (m_part.ParentGroup.m_savedScriptState.ContainsKey(oldID)) | 401 | if (m_part.ParentGroup.m_savedScriptState.ContainsKey(oldID)) |
@@ -437,6 +435,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
437 | 435 | ||
438 | m_part.ParentGroup.m_savedScriptState[oldID] = newDoc.OuterXml; | 436 | m_part.ParentGroup.m_savedScriptState[oldID] = newDoc.OuterXml; |
439 | } | 437 | } |
438 | |||
440 | foreach (IScriptModule e in engines) | 439 | foreach (IScriptModule e in engines) |
441 | { | 440 | { |
442 | if (e != null) | 441 | if (e != null) |
@@ -445,6 +444,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
445 | break; | 444 | break; |
446 | } | 445 | } |
447 | } | 446 | } |
447 | |||
448 | m_part.ParentGroup.m_savedScriptState.Remove(oldID); | 448 | m_part.ParentGroup.m_savedScriptState.Remove(oldID); |
449 | } | 449 | } |
450 | } | 450 | } |
@@ -1327,7 +1327,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1327 | 1327 | ||
1328 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); | 1328 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); |
1329 | 1329 | ||
1330 | if (engines == null) // No engine at all | 1330 | if (engines.Length == 0) // No engine at all |
1331 | return ret; | 1331 | return ret; |
1332 | 1332 | ||
1333 | Items.LockItemsForRead(true); | 1333 | Items.LockItemsForRead(true); |
@@ -1365,7 +1365,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1365 | public void ResumeScripts() | 1365 | public void ResumeScripts() |
1366 | { | 1366 | { |
1367 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); | 1367 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); |
1368 | if (engines == null) | 1368 | if (engines.Length == 0) |
1369 | return; | 1369 | return; |
1370 | 1370 | ||
1371 | 1371 | ||
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index d89c1c0..0eaac64 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3535,23 +3535,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
3535 | /// <param name="args">The arguments for the event</param> | 3535 | /// <param name="args">The arguments for the event</param> |
3536 | public void SendScriptEventToAttachments(string eventName, Object[] args) | 3536 | public void SendScriptEventToAttachments(string eventName, Object[] args) |
3537 | { | 3537 | { |
3538 | if (m_scriptEngines != null) | 3538 | if (m_scriptEngines.Length == 0) |
3539 | return; | ||
3540 | |||
3541 | lock (m_attachments) | ||
3539 | { | 3542 | { |
3540 | lock (m_attachments) | 3543 | foreach (SceneObjectGroup grp in m_attachments) |
3541 | { | 3544 | { |
3542 | foreach (SceneObjectGroup grp in m_attachments) | 3545 | // 16384 is CHANGED_ANIMATION |
3546 | // | ||
3547 | // Send this to all attachment root prims | ||
3548 | // | ||
3549 | foreach (IScriptModule m in m_scriptEngines) | ||
3543 | { | 3550 | { |
3544 | // 16384 is CHANGED_ANIMATION | 3551 | if (m == null) // No script engine loaded |
3545 | // | 3552 | continue; |
3546 | // Send this to all attachment root prims | ||
3547 | // | ||
3548 | foreach (IScriptModule m in m_scriptEngines) | ||
3549 | { | ||
3550 | if (m == null) // No script engine loaded | ||
3551 | continue; | ||
3552 | 3553 | ||
3553 | m.PostObjectEvent(grp.RootPart.UUID, "changed", new Object[] { (int)Changed.ANIMATION }); | 3554 | m.PostObjectEvent(grp.RootPart.UUID, "changed", new Object[] { (int)Changed.ANIMATION }); |
3554 | } | ||
3555 | } | 3555 | } |
3556 | } | 3556 | } |
3557 | } | 3557 | } |