diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 476 |
1 files changed, 233 insertions, 243 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index ad60604..4e1383c 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -257,7 +257,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
257 | private string m_touchName = String.Empty; | 257 | private string m_touchName = String.Empty; |
258 | private readonly Stack<UndoState> m_undo = new Stack<UndoState>(5); | 258 | private readonly Stack<UndoState> m_undo = new Stack<UndoState>(5); |
259 | private readonly Stack<UndoState> m_redo = new Stack<UndoState>(5); | 259 | private readonly Stack<UndoState> m_redo = new Stack<UndoState>(5); |
260 | private UUID _creatorID; | ||
261 | 260 | ||
262 | private bool m_passTouches; | 261 | private bool m_passTouches; |
263 | 262 | ||
@@ -343,19 +342,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
343 | m_name = "Primitive"; | 342 | m_name = "Primitive"; |
344 | 343 | ||
345 | Rezzed = DateTime.UtcNow; | 344 | Rezzed = DateTime.UtcNow; |
346 | _creationDate = (int)Utils.DateTimeToUnixTime(Rezzed); | 345 | CreationDate = (int)Utils.DateTimeToUnixTime(Rezzed); |
347 | _ownerID = ownerID; | 346 | LastOwnerID = CreatorID = OwnerID = ownerID; |
348 | _creatorID = _ownerID; | ||
349 | _lastOwnerID = UUID.Zero; | ||
350 | UUID = UUID.Random(); | 347 | UUID = UUID.Random(); |
351 | Shape = shape; | 348 | Shape = shape; |
352 | // Todo: Add More Object Parameter from above! | 349 | OwnershipCost = 0; |
353 | _ownershipCost = 0; | 350 | ObjectSaleType = 0; |
354 | _objectSaleType = 0; | 351 | SalePrice = 0; |
355 | _salePrice = 0; | 352 | Category = 0; |
356 | _category = 0; | ||
357 | _lastOwnerID = _creatorID; | ||
358 | // End Todo: /// | ||
359 | GroupPosition = groupPosition; | 353 | GroupPosition = groupPosition; |
360 | OffsetPosition = offsetPosition; | 354 | OffsetPosition = offsetPosition; |
361 | RotationOffset = rotationOffset; | 355 | RotationOffset = rotationOffset; |
@@ -400,20 +394,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
400 | private DateTime m_expires; | 394 | private DateTime m_expires; |
401 | private DateTime m_rezzed; | 395 | private DateTime m_rezzed; |
402 | private bool m_createSelected = false; | 396 | private bool m_createSelected = false; |
403 | private string m_creatorData = string.Empty; | ||
404 | 397 | ||
398 | private UUID _creatorID; | ||
405 | public UUID CreatorID | 399 | public UUID CreatorID |
406 | { | 400 | { |
407 | get | 401 | get { return _creatorID; } |
408 | { | 402 | set { _creatorID = value; } |
409 | return _creatorID; | ||
410 | } | ||
411 | set | ||
412 | { | ||
413 | _creatorID = value; | ||
414 | } | ||
415 | } | 403 | } |
416 | 404 | ||
405 | private string m_creatorData = string.Empty; | ||
417 | /// <summary> | 406 | /// <summary> |
418 | /// Data about the creator in the form profile_url;name | 407 | /// Data about the creator in the form profile_url;name |
419 | /// </summary> | 408 | /// </summary> |
@@ -432,16 +421,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
432 | { | 421 | { |
433 | get | 422 | get |
434 | { | 423 | { |
435 | if (m_creatorData != null && m_creatorData != string.Empty) | 424 | if (CreatorData != null && CreatorData != string.Empty) |
436 | return _creatorID.ToString() + ';' + m_creatorData; | 425 | return CreatorID.ToString() + ';' + CreatorData; |
437 | else | 426 | else |
438 | return _creatorID.ToString(); | 427 | return CreatorID.ToString(); |
439 | } | 428 | } |
440 | set | 429 | set |
441 | { | 430 | { |
442 | if ((value == null) || (value != null && value == string.Empty)) | 431 | if ((value == null) || (value != null && value == string.Empty)) |
443 | { | 432 | { |
444 | m_creatorData = string.Empty; | 433 | CreatorData = string.Empty; |
445 | return; | 434 | return; |
446 | } | 435 | } |
447 | 436 | ||
@@ -449,7 +438,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
449 | { | 438 | { |
450 | UUID uuid = UUID.Zero; | 439 | UUID uuid = UUID.Zero; |
451 | UUID.TryParse(value, out uuid); | 440 | UUID.TryParse(value, out uuid); |
452 | _creatorID = uuid; | 441 | CreatorID = uuid; |
453 | } | 442 | } |
454 | else // <uuid>[;<endpoint>[;name]] | 443 | else // <uuid>[;<endpoint>[;name]] |
455 | { | 444 | { |
@@ -459,14 +448,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
459 | { | 448 | { |
460 | UUID uuid = UUID.Zero; | 449 | UUID uuid = UUID.Zero; |
461 | UUID.TryParse(parts[0], out uuid); | 450 | UUID.TryParse(parts[0], out uuid); |
462 | _creatorID = uuid; | 451 | CreatorID = uuid; |
463 | } | 452 | } |
464 | if (parts.Length >= 2) | 453 | if (parts.Length >= 2) |
465 | m_creatorData = parts[1]; | 454 | CreatorData = parts[1]; |
466 | if (parts.Length >= 3) | 455 | if (parts.Length >= 3) |
467 | name = parts[2]; | 456 | name = parts[2]; |
468 | 457 | ||
469 | m_creatorData += ';' + name; | 458 | CreatorData += ';' + name; |
470 | 459 | ||
471 | } | 460 | } |
472 | } | 461 | } |
@@ -684,14 +673,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
684 | { | 673 | { |
685 | // If this is a linkset, we don't want the physics engine mucking up our group position here. | 674 | // If this is a linkset, we don't want the physics engine mucking up our group position here. |
686 | PhysicsActor actor = PhysActor; | 675 | PhysicsActor actor = PhysActor; |
687 | if (actor != null && _parentID == 0) | 676 | if (actor != null && ParentID == 0) |
688 | { | 677 | { |
689 | m_groupPosition = actor.Position; | 678 | m_groupPosition = actor.Position; |
690 | } | 679 | } |
691 | 680 | ||
692 | if (m_parentGroup.IsAttachment) | 681 | if (ParentGroup.IsAttachment) |
693 | { | 682 | { |
694 | ScenePresence sp = m_parentGroup.Scene.GetScenePresence(ParentGroup.AttachedAvatar); | 683 | ScenePresence sp = ParentGroup.Scene.GetScenePresence(ParentGroup.AttachedAvatar); |
695 | if (sp != null) | 684 | if (sp != null) |
696 | return sp.AbsolutePosition; | 685 | return sp.AbsolutePosition; |
697 | } | 686 | } |
@@ -708,7 +697,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
708 | try | 697 | try |
709 | { | 698 | { |
710 | // Root prim actually goes at Position | 699 | // Root prim actually goes at Position |
711 | if (_parentID == 0) | 700 | if (ParentID == 0) |
712 | { | 701 | { |
713 | actor.Position = value; | 702 | actor.Position = value; |
714 | } | 703 | } |
@@ -720,7 +709,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
720 | } | 709 | } |
721 | 710 | ||
722 | // Tell the physics engines that this prim changed. | 711 | // Tell the physics engines that this prim changed. |
723 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | 712 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); |
724 | } | 713 | } |
725 | catch (Exception e) | 714 | catch (Exception e) |
726 | { | 715 | { |
@@ -729,10 +718,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
729 | } | 718 | } |
730 | 719 | ||
731 | // TODO if we decide to do sitting in a more SL compatible way (multiple avatars per prim), this has to be fixed, too | 720 | // TODO if we decide to do sitting in a more SL compatible way (multiple avatars per prim), this has to be fixed, too |
732 | if (m_sitTargetAvatar != UUID.Zero) | 721 | if (SitTargetAvatar != UUID.Zero) |
733 | { | 722 | { |
734 | ScenePresence avatar; | 723 | ScenePresence avatar; |
735 | if (m_parentGroup.Scene.TryGetScenePresence(m_sitTargetAvatar, out avatar)) | 724 | if (ParentGroup.Scene.TryGetScenePresence(SitTargetAvatar, out avatar)) |
736 | { | 725 | { |
737 | avatar.ParentPosition = GetWorldPosition(); | 726 | avatar.ParentPosition = GetWorldPosition(); |
738 | } | 727 | } |
@@ -751,14 +740,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
751 | if (ParentGroup != null && !ParentGroup.IsDeleted) | 740 | if (ParentGroup != null && !ParentGroup.IsDeleted) |
752 | { | 741 | { |
753 | PhysicsActor actor = PhysActor; | 742 | PhysicsActor actor = PhysActor; |
754 | if (_parentID != 0 && actor != null) | 743 | if (ParentID != 0 && actor != null) |
755 | { | 744 | { |
756 | actor.Position = GetWorldPosition(); | 745 | actor.Position = GetWorldPosition(); |
757 | actor.Orientation = GetWorldRotation(); | 746 | actor.Orientation = GetWorldRotation(); |
758 | 747 | ||
759 | // Tell the physics engines that this prim changed. | 748 | // Tell the physics engines that this prim changed. |
760 | if (m_parentGroup.Scene != null) | 749 | if (ParentGroup.Scene != null) |
761 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | 750 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); |
762 | } | 751 | } |
763 | } | 752 | } |
764 | } | 753 | } |
@@ -770,7 +759,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
770 | { | 759 | { |
771 | if (IsRoot) | 760 | if (IsRoot) |
772 | { | 761 | { |
773 | if (m_parentGroup.IsAttachment) | 762 | if (ParentGroup.IsAttachment) |
774 | return AttachedPos; | 763 | return AttachedPos; |
775 | else | 764 | else |
776 | return AbsolutePosition; | 765 | return AbsolutePosition; |
@@ -788,7 +777,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
788 | { | 777 | { |
789 | // We don't want the physics engine mucking up the rotations in a linkset | 778 | // We don't want the physics engine mucking up the rotations in a linkset |
790 | PhysicsActor actor = PhysActor; | 779 | PhysicsActor actor = PhysActor; |
791 | if (_parentID == 0 && (Shape.PCode != 9 || Shape.State == 0) && actor != null) | 780 | if (ParentID == 0 && (Shape.PCode != 9 || Shape.State == 0) && actor != null) |
792 | { | 781 | { |
793 | if (actor.Orientation.X != 0f || actor.Orientation.Y != 0f | 782 | if (actor.Orientation.X != 0f || actor.Orientation.Y != 0f |
794 | || actor.Orientation.Z != 0f || actor.Orientation.W != 0f) | 783 | || actor.Orientation.Z != 0f || actor.Orientation.W != 0f) |
@@ -818,7 +807,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
818 | try | 807 | try |
819 | { | 808 | { |
820 | // Root prim gets value directly | 809 | // Root prim gets value directly |
821 | if (_parentID == 0) | 810 | if (ParentID == 0) |
822 | { | 811 | { |
823 | actor.Orientation = value; | 812 | actor.Orientation = value; |
824 | //m_log.Info("[PART]: RO1:" + actor.Orientation.ToString()); | 813 | //m_log.Info("[PART]: RO1:" + actor.Orientation.ToString()); |
@@ -831,8 +820,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
831 | //m_log.Info("[PART]: RO2:" + actor.Orientation.ToString()); | 820 | //m_log.Info("[PART]: RO2:" + actor.Orientation.ToString()); |
832 | } | 821 | } |
833 | 822 | ||
834 | if (m_parentGroup != null) | 823 | if (ParentGroup != null) |
835 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | 824 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); |
836 | //} | 825 | //} |
837 | } | 826 | } |
838 | catch (Exception ex) | 827 | catch (Exception ex) |
@@ -877,7 +866,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
877 | if (actor.IsPhysical) | 866 | if (actor.IsPhysical) |
878 | { | 867 | { |
879 | actor.Velocity = value; | 868 | actor.Velocity = value; |
880 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); | 869 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor); |
881 | } | 870 | } |
882 | } | 871 | } |
883 | } | 872 | } |
@@ -1012,9 +1001,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1012 | PhysicsActor actor = PhysActor; | 1001 | PhysicsActor actor = PhysActor; |
1013 | if (actor != null) | 1002 | if (actor != null) |
1014 | { | 1003 | { |
1015 | if (m_parentGroup.Scene != null) | 1004 | if (ParentGroup.Scene != null) |
1016 | { | 1005 | { |
1017 | if (m_parentGroup.Scene.PhysicsScene != null) | 1006 | if (ParentGroup.Scene.PhysicsScene != null) |
1018 | { | 1007 | { |
1019 | actor.Size = m_shape.Scale; | 1008 | actor.Size = m_shape.Scale; |
1020 | 1009 | ||
@@ -1076,7 +1065,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1076 | { | 1065 | { |
1077 | get | 1066 | get |
1078 | { | 1067 | { |
1079 | if (m_parentGroup.IsAttachment) | 1068 | if (ParentGroup.IsAttachment) |
1080 | return GroupPosition; | 1069 | return GroupPosition; |
1081 | 1070 | ||
1082 | return m_offsetPosition + m_groupPosition; | 1071 | return m_offsetPosition + m_groupPosition; |
@@ -1086,6 +1075,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1086 | public SceneObjectGroup ParentGroup | 1075 | public SceneObjectGroup ParentGroup |
1087 | { | 1076 | { |
1088 | get { return m_parentGroup; } | 1077 | get { return m_parentGroup; } |
1078 | private set { m_parentGroup = value; } | ||
1089 | } | 1079 | } |
1090 | 1080 | ||
1091 | public scriptEvents ScriptEvents | 1081 | public scriptEvents ScriptEvents |
@@ -1388,7 +1378,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1388 | /// </summary> | 1378 | /// </summary> |
1389 | public void AddFullUpdateToAllAvatars() | 1379 | public void AddFullUpdateToAllAvatars() |
1390 | { | 1380 | { |
1391 | m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | 1381 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) |
1392 | { | 1382 | { |
1393 | AddFullUpdateToAvatar(avatar); | 1383 | AddFullUpdateToAvatar(avatar); |
1394 | }); | 1384 | }); |
@@ -1415,7 +1405,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1415 | /// Terse updates | 1405 | /// Terse updates |
1416 | public void AddTerseUpdateToAllAvatars() | 1406 | public void AddTerseUpdateToAllAvatars() |
1417 | { | 1407 | { |
1418 | m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | 1408 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) |
1419 | { | 1409 | { |
1420 | AddTerseUpdateToAvatar(avatar); | 1410 | AddTerseUpdateToAvatar(avatar); |
1421 | }); | 1411 | }); |
@@ -1453,7 +1443,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1453 | if (volume < 0) | 1443 | if (volume < 0) |
1454 | volume = 0; | 1444 | volume = 0; |
1455 | 1445 | ||
1456 | m_parentGroup.Scene.ForEachRootClient(delegate(IClientAPI client) | 1446 | ParentGroup.Scene.ForEachRootClient(delegate(IClientAPI client) |
1457 | { | 1447 | { |
1458 | client.SendAttachedSoundGainChange(UUID, (float)volume); | 1448 | client.SendAttachedSoundGainChange(UUID, (float)volume); |
1459 | }); | 1449 | }); |
@@ -1479,9 +1469,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1479 | impulse = newimpulse; | 1469 | impulse = newimpulse; |
1480 | } | 1470 | } |
1481 | 1471 | ||
1482 | if (m_parentGroup != null) | 1472 | if (ParentGroup != null) |
1483 | { | 1473 | { |
1484 | m_parentGroup.applyImpulse(impulse); | 1474 | ParentGroup.applyImpulse(impulse); |
1485 | } | 1475 | } |
1486 | } | 1476 | } |
1487 | 1477 | ||
@@ -1505,7 +1495,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1505 | impulse = newimpulse; | 1495 | impulse = newimpulse; |
1506 | } | 1496 | } |
1507 | 1497 | ||
1508 | m_parentGroup.applyAngularImpulse(impulse); | 1498 | ParentGroup.applyAngularImpulse(impulse); |
1509 | } | 1499 | } |
1510 | 1500 | ||
1511 | /// <summary> | 1501 | /// <summary> |
@@ -1528,7 +1518,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1528 | impulse = newimpulse; | 1518 | impulse = newimpulse; |
1529 | } | 1519 | } |
1530 | 1520 | ||
1531 | m_parentGroup.setAngularImpulse(impulse); | 1521 | ParentGroup.setAngularImpulse(impulse); |
1532 | } | 1522 | } |
1533 | 1523 | ||
1534 | /// <summary> | 1524 | /// <summary> |
@@ -1560,11 +1550,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
1560 | 1550 | ||
1561 | // The only time the physics scene shouldn't know about the prim is if it's phantom or an attachment, which is phantom by definition | 1551 | // The only time the physics scene shouldn't know about the prim is if it's phantom or an attachment, which is phantom by definition |
1562 | // or flexible | 1552 | // or flexible |
1563 | if (!isPhantom && !m_parentGroup.IsAttachment && !(Shape.PathCurve == (byte) Extrusion.Flexible)) | 1553 | if (!isPhantom && !ParentGroup.IsAttachment && !(Shape.PathCurve == (byte)Extrusion.Flexible)) |
1564 | { | 1554 | { |
1565 | try | 1555 | try |
1566 | { | 1556 | { |
1567 | PhysActor = m_parentGroup.Scene.PhysicsScene.AddPrimShape( | 1557 | PhysActor = ParentGroup.Scene.PhysicsScene.AddPrimShape( |
1568 | string.Format("{0}/{1}", Name, UUID), | 1558 | string.Format("{0}/{1}", Name, UUID), |
1569 | Shape, | 1559 | Shape, |
1570 | AbsolutePosition, | 1560 | AbsolutePosition, |
@@ -1631,8 +1621,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1631 | if (!userExposed) | 1621 | if (!userExposed) |
1632 | dupe.PhysActor = null; | 1622 | dupe.PhysActor = null; |
1633 | 1623 | ||
1634 | dupe._ownerID = AgentID; | 1624 | dupe.OwnerID = AgentID; |
1635 | dupe._groupID = GroupID; | 1625 | dupe.GroupID = GroupID; |
1636 | dupe.GroupPosition = GroupPosition; | 1626 | dupe.GroupPosition = GroupPosition; |
1637 | dupe.OffsetPosition = OffsetPosition; | 1627 | dupe.OffsetPosition = OffsetPosition; |
1638 | dupe.RotationOffset = RotationOffset; | 1628 | dupe.RotationOffset = RotationOffset; |
@@ -1641,10 +1631,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
1641 | dupe.AngularVelocity = new Vector3(0, 0, 0); | 1631 | dupe.AngularVelocity = new Vector3(0, 0, 0); |
1642 | dupe.Flags = Flags; | 1632 | dupe.Flags = Flags; |
1643 | 1633 | ||
1644 | dupe._ownershipCost = _ownershipCost; | 1634 | dupe.OwnershipCost = OwnershipCost; |
1645 | dupe._objectSaleType = _objectSaleType; | 1635 | dupe.ObjectSaleType = ObjectSaleType; |
1646 | dupe._salePrice = _salePrice; | 1636 | dupe.SalePrice = SalePrice; |
1647 | dupe._category = _category; | 1637 | dupe.Category = Category; |
1648 | dupe.m_rezzed = m_rezzed; | 1638 | dupe.m_rezzed = m_rezzed; |
1649 | 1639 | ||
1650 | dupe.m_inventory = new SceneObjectPartInventory(dupe); | 1640 | dupe.m_inventory = new SceneObjectPartInventory(dupe); |
@@ -1663,7 +1653,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1663 | // Move afterwards ResetIDs as it clears the localID | 1653 | // Move afterwards ResetIDs as it clears the localID |
1664 | dupe.LocalId = localID; | 1654 | dupe.LocalId = localID; |
1665 | // This may be wrong... it might have to be applied in SceneObjectGroup to the object that's being duplicated. | 1655 | // This may be wrong... it might have to be applied in SceneObjectGroup to the object that's being duplicated. |
1666 | dupe._lastOwnerID = OwnerID; | 1656 | dupe.LastOwnerID = OwnerID; |
1667 | 1657 | ||
1668 | byte[] extraP = new byte[Shape.ExtraParams.Length]; | 1658 | byte[] extraP = new byte[Shape.ExtraParams.Length]; |
1669 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); | 1659 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); |
@@ -1750,7 +1740,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1750 | } | 1740 | } |
1751 | } | 1741 | } |
1752 | 1742 | ||
1753 | SceneObjectPart trackedBody = m_parentGroup.Scene.GetSceneObjectPart(trackedBodyName); // FIXME: causes a sequential lookup | 1743 | SceneObjectPart trackedBody = ParentGroup.Scene.GetSceneObjectPart(trackedBodyName); // FIXME: causes a sequential lookup |
1754 | Quaternion localRotation = Quaternion.Identity; | 1744 | Quaternion localRotation = Quaternion.Identity; |
1755 | if (trackedBody != null) | 1745 | if (trackedBody != null) |
1756 | { | 1746 | { |
@@ -1763,7 +1753,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1763 | 1753 | ||
1764 | PhysicsJoint joint; | 1754 | PhysicsJoint joint; |
1765 | 1755 | ||
1766 | joint = m_parentGroup.Scene.PhysicsScene.RequestJointCreation(Name, jointType, | 1756 | joint = ParentGroup.Scene.PhysicsScene.RequestJointCreation(Name, jointType, |
1767 | AbsolutePosition, | 1757 | AbsolutePosition, |
1768 | this.RotationOffset, | 1758 | this.RotationOffset, |
1769 | Description, | 1759 | Description, |
@@ -1788,7 +1778,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1788 | else | 1778 | else |
1789 | { | 1779 | { |
1790 | // here we turn off the joint object, so remove the joint from the physics scene | 1780 | // here we turn off the joint object, so remove the joint from the physics scene |
1791 | m_parentGroup.Scene.PhysicsScene.RequestJointDeletion(Name); // FIXME: what if the name changed? | 1781 | ParentGroup.Scene.PhysicsScene.RequestJointDeletion(Name); // FIXME: what if the name changed? |
1792 | 1782 | ||
1793 | // make sure client isn't interpolating the joint proxy object | 1783 | // make sure client isn't interpolating the joint proxy object |
1794 | Velocity = Vector3.Zero; | 1784 | Velocity = Vector3.Zero; |
@@ -1830,7 +1820,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1830 | if (ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints && (!isNew)) | 1820 | if (ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints && (!isNew)) |
1831 | { | 1821 | { |
1832 | // destroy all joints connected to this now deactivated body | 1822 | // destroy all joints connected to this now deactivated body |
1833 | m_parentGroup.Scene.PhysicsScene.RemoveAllJointsConnectedToActorThreadLocked(PhysActor); | 1823 | ParentGroup.Scene.PhysicsScene.RemoveAllJointsConnectedToActorThreadLocked(PhysActor); |
1834 | } | 1824 | } |
1835 | 1825 | ||
1836 | // stop client-side interpolation of all joint proxy objects that have just been deleted | 1826 | // stop client-side interpolation of all joint proxy objects that have just been deleted |
@@ -1864,7 +1854,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1864 | 1854 | ||
1865 | PhysActor.OnRequestTerseUpdate += PhysicsRequestingTerseUpdate; | 1855 | PhysActor.OnRequestTerseUpdate += PhysicsRequestingTerseUpdate; |
1866 | PhysActor.OnOutOfBounds += PhysicsOutOfBounds; | 1856 | PhysActor.OnOutOfBounds += PhysicsOutOfBounds; |
1867 | if (_parentID != 0 && _parentID != LocalId) | 1857 | if (ParentID != 0 && ParentID != LocalId) |
1868 | { | 1858 | { |
1869 | if (ParentGroup.RootPart.PhysActor != null) | 1859 | if (ParentGroup.RootPart.PhysActor != null) |
1870 | { | 1860 | { |
@@ -1880,7 +1870,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1880 | if (Shape.SculptEntry) | 1870 | if (Shape.SculptEntry) |
1881 | CheckSculptAndLoad(); | 1871 | CheckSculptAndLoad(); |
1882 | else | 1872 | else |
1883 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); | 1873 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); |
1884 | } | 1874 | } |
1885 | } | 1875 | } |
1886 | } | 1876 | } |
@@ -1903,58 +1893,58 @@ namespace OpenSim.Region.Framework.Scenes | |||
1903 | 1893 | ||
1904 | public bool GetDieAtEdge() | 1894 | public bool GetDieAtEdge() |
1905 | { | 1895 | { |
1906 | if (m_parentGroup.IsDeleted) | 1896 | if (ParentGroup.IsDeleted) |
1907 | return false; | 1897 | return false; |
1908 | 1898 | ||
1909 | return m_parentGroup.RootPart.DIE_AT_EDGE; | 1899 | return ParentGroup.RootPart.DIE_AT_EDGE; |
1910 | } | 1900 | } |
1911 | 1901 | ||
1912 | public bool GetReturnAtEdge() | 1902 | public bool GetReturnAtEdge() |
1913 | { | 1903 | { |
1914 | if (m_parentGroup.IsDeleted) | 1904 | if (ParentGroup.IsDeleted) |
1915 | return false; | 1905 | return false; |
1916 | 1906 | ||
1917 | return m_parentGroup.RootPart.RETURN_AT_EDGE; | 1907 | return ParentGroup.RootPart.RETURN_AT_EDGE; |
1918 | } | 1908 | } |
1919 | 1909 | ||
1920 | public void SetReturnAtEdge(bool p) | 1910 | public void SetReturnAtEdge(bool p) |
1921 | { | 1911 | { |
1922 | if (m_parentGroup.IsDeleted) | 1912 | if (ParentGroup.IsDeleted) |
1923 | return; | 1913 | return; |
1924 | 1914 | ||
1925 | m_parentGroup.RootPart.RETURN_AT_EDGE = p; | 1915 | ParentGroup.RootPart.RETURN_AT_EDGE = p; |
1926 | } | 1916 | } |
1927 | 1917 | ||
1928 | public bool GetBlockGrab() | 1918 | public bool GetBlockGrab() |
1929 | { | 1919 | { |
1930 | if (m_parentGroup.IsDeleted) | 1920 | if (ParentGroup.IsDeleted) |
1931 | return false; | 1921 | return false; |
1932 | 1922 | ||
1933 | return m_parentGroup.RootPart.BlockGrab; | 1923 | return ParentGroup.RootPart.BlockGrab; |
1934 | } | 1924 | } |
1935 | 1925 | ||
1936 | public void SetBlockGrab(bool p) | 1926 | public void SetBlockGrab(bool p) |
1937 | { | 1927 | { |
1938 | if (m_parentGroup.IsDeleted) | 1928 | if (ParentGroup.IsDeleted) |
1939 | return; | 1929 | return; |
1940 | 1930 | ||
1941 | m_parentGroup.RootPart.BlockGrab = p; | 1931 | ParentGroup.RootPart.BlockGrab = p; |
1942 | } | 1932 | } |
1943 | 1933 | ||
1944 | public void SetStatusSandbox(bool p) | 1934 | public void SetStatusSandbox(bool p) |
1945 | { | 1935 | { |
1946 | if (m_parentGroup.IsDeleted) | 1936 | if (ParentGroup.IsDeleted) |
1947 | return; | 1937 | return; |
1948 | StatusSandboxPos = m_parentGroup.RootPart.AbsolutePosition; | 1938 | StatusSandboxPos = ParentGroup.RootPart.AbsolutePosition; |
1949 | m_parentGroup.RootPart.StatusSandbox = p; | 1939 | ParentGroup.RootPart.StatusSandbox = p; |
1950 | } | 1940 | } |
1951 | 1941 | ||
1952 | public bool GetStatusSandbox() | 1942 | public bool GetStatusSandbox() |
1953 | { | 1943 | { |
1954 | if (m_parentGroup.IsDeleted) | 1944 | if (ParentGroup.IsDeleted) |
1955 | return false; | 1945 | return false; |
1956 | 1946 | ||
1957 | return m_parentGroup.RootPart.StatusSandbox; | 1947 | return ParentGroup.RootPart.StatusSandbox; |
1958 | } | 1948 | } |
1959 | 1949 | ||
1960 | public int GetAxisRotation(int axis) | 1950 | public int GetAxisRotation(int axis) |
@@ -2064,7 +2054,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2064 | { | 2054 | { |
2065 | if (tau > 0) | 2055 | if (tau > 0) |
2066 | { | 2056 | { |
2067 | m_parentGroup.moveToTarget(target, tau); | 2057 | ParentGroup.moveToTarget(target, tau); |
2068 | } | 2058 | } |
2069 | else | 2059 | else |
2070 | { | 2060 | { |
@@ -2080,12 +2070,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
2080 | /// <param name="tau">Number of seconds over which to reach target</param> | 2070 | /// <param name="tau">Number of seconds over which to reach target</param> |
2081 | public void SetHoverHeight(float height, PIDHoverType hoverType, float tau) | 2071 | public void SetHoverHeight(float height, PIDHoverType hoverType, float tau) |
2082 | { | 2072 | { |
2083 | m_parentGroup.SetHoverHeight(height, hoverType, tau); | 2073 | ParentGroup.SetHoverHeight(height, hoverType, tau); |
2084 | } | 2074 | } |
2085 | 2075 | ||
2086 | public void StopHover() | 2076 | public void StopHover() |
2087 | { | 2077 | { |
2088 | m_parentGroup.SetHoverHeight(0f, PIDHoverType.Ground, 0f); | 2078 | ParentGroup.SetHoverHeight(0f, PIDHoverType.Ground, 0f); |
2089 | } | 2079 | } |
2090 | 2080 | ||
2091 | public virtual void OnGrab(Vector3 offsetPos, IClientAPI remoteClient) | 2081 | public virtual void OnGrab(Vector3 offsetPos, IClientAPI remoteClient) |
@@ -2136,7 +2126,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2136 | m_lastColliders.Remove(localID); | 2126 | m_lastColliders.Remove(localID); |
2137 | } | 2127 | } |
2138 | 2128 | ||
2139 | if (m_parentGroup.IsDeleted) | 2129 | if (ParentGroup.IsDeleted) |
2140 | return; | 2130 | return; |
2141 | 2131 | ||
2142 | // play the sound. | 2132 | // play the sound. |
@@ -2145,7 +2135,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2145 | SendSound(CollisionSound.ToString(), CollisionSoundVolume, true, (byte)0, 0, false, false); | 2135 | SendSound(CollisionSound.ToString(), CollisionSoundVolume, true, (byte)0, 0, false, false); |
2146 | } | 2136 | } |
2147 | 2137 | ||
2148 | if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.collision_start) != 0) | 2138 | if ((ParentGroup.RootPart.ScriptEvents & scriptEvents.collision_start) != 0) |
2149 | { | 2139 | { |
2150 | // do event notification | 2140 | // do event notification |
2151 | if (startedColliders.Count > 0) | 2141 | if (startedColliders.Count > 0) |
@@ -2156,30 +2146,30 @@ namespace OpenSim.Region.Framework.Scenes | |||
2156 | { | 2146 | { |
2157 | if (localId == 0) | 2147 | if (localId == 0) |
2158 | continue; | 2148 | continue; |
2159 | 2149 | ||
2160 | if (m_parentGroup.Scene == null) | 2150 | if (ParentGroup.Scene == null) |
2161 | return; | 2151 | return; |
2162 | 2152 | ||
2163 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); | 2153 | SceneObjectPart obj = ParentGroup.Scene.GetSceneObjectPart(localId); |
2164 | string data = ""; | 2154 | string data = ""; |
2165 | if (obj != null) | 2155 | if (obj != null) |
2166 | { | 2156 | { |
2167 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) | 2157 | if (ParentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) |
2168 | || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) | 2158 | || ParentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
2169 | { | 2159 | { |
2170 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | 2160 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); |
2171 | //If it is 1, it is to accept ONLY collisions from this object | 2161 | //If it is 1, it is to accept ONLY collisions from this object |
2172 | if (found) | 2162 | if (found) |
2173 | { | 2163 | { |
2174 | DetectedObject detobj = new DetectedObject(); | 2164 | DetectedObject detobj = new DetectedObject(); |
2175 | detobj.keyUUID = obj.UUID; | 2165 | detobj.keyUUID = obj.UUID; |
2176 | detobj.nameStr = obj.Name; | 2166 | detobj.nameStr = obj.Name; |
2177 | detobj.ownerUUID = obj._ownerID; | 2167 | detobj.ownerUUID = obj.OwnerID; |
2178 | detobj.posVector = obj.AbsolutePosition; | 2168 | detobj.posVector = obj.AbsolutePosition; |
2179 | detobj.rotQuat = obj.GetWorldRotation(); | 2169 | detobj.rotQuat = obj.GetWorldRotation(); |
2180 | detobj.velVector = obj.Velocity; | 2170 | detobj.velVector = obj.Velocity; |
2181 | detobj.colliderType = 0; | 2171 | detobj.colliderType = 0; |
2182 | detobj.groupUUID = obj._groupID; | 2172 | detobj.groupUUID = obj.GroupID; |
2183 | colliding.Add(detobj); | 2173 | colliding.Add(detobj); |
2184 | } | 2174 | } |
2185 | //If it is 0, it is to not accept collisions from this object | 2175 | //If it is 0, it is to not accept collisions from this object |
@@ -2189,33 +2179,33 @@ namespace OpenSim.Region.Framework.Scenes | |||
2189 | } | 2179 | } |
2190 | else | 2180 | else |
2191 | { | 2181 | { |
2192 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | 2182 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); |
2193 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work | 2183 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work |
2194 | if (!found) | 2184 | if (!found) |
2195 | { | 2185 | { |
2196 | DetectedObject detobj = new DetectedObject(); | 2186 | DetectedObject detobj = new DetectedObject(); |
2197 | detobj.keyUUID = obj.UUID; | 2187 | detobj.keyUUID = obj.UUID; |
2198 | detobj.nameStr = obj.Name; | 2188 | detobj.nameStr = obj.Name; |
2199 | detobj.ownerUUID = obj._ownerID; | 2189 | detobj.ownerUUID = obj.OwnerID; |
2200 | detobj.posVector = obj.AbsolutePosition; | 2190 | detobj.posVector = obj.AbsolutePosition; |
2201 | detobj.rotQuat = obj.GetWorldRotation(); | 2191 | detobj.rotQuat = obj.GetWorldRotation(); |
2202 | detobj.velVector = obj.Velocity; | 2192 | detobj.velVector = obj.Velocity; |
2203 | detobj.colliderType = 0; | 2193 | detobj.colliderType = 0; |
2204 | detobj.groupUUID = obj._groupID; | 2194 | detobj.groupUUID = obj.GroupID; |
2205 | colliding.Add(detobj); | 2195 | colliding.Add(detobj); |
2206 | } | 2196 | } |
2207 | } | 2197 | } |
2208 | } | 2198 | } |
2209 | else | 2199 | else |
2210 | { | 2200 | { |
2211 | m_parentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence av) | 2201 | ParentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence av) |
2212 | { | 2202 | { |
2213 | if (av.LocalId == localId) | 2203 | if (av.LocalId == localId) |
2214 | { | 2204 | { |
2215 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(av.UUID.ToString()) | 2205 | if (ParentGroup.RootPart.CollisionFilter.ContainsValue(av.UUID.ToString()) |
2216 | || m_parentGroup.RootPart.CollisionFilter.ContainsValue(av.Name)) | 2206 | || ParentGroup.RootPart.CollisionFilter.ContainsValue(av.Name)) |
2217 | { | 2207 | { |
2218 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); | 2208 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); |
2219 | //If it is 1, it is to accept ONLY collisions from this avatar | 2209 | //If it is 1, it is to accept ONLY collisions from this avatar |
2220 | if (found) | 2210 | if (found) |
2221 | { | 2211 | { |
@@ -2237,7 +2227,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2237 | } | 2227 | } |
2238 | else | 2228 | else |
2239 | { | 2229 | { |
2240 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); | 2230 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); |
2241 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work | 2231 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work |
2242 | if (!found) | 2232 | if (!found) |
2243 | { | 2233 | { |
@@ -2262,8 +2252,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2262 | if (colliding.Count > 0) | 2252 | if (colliding.Count > 0) |
2263 | { | 2253 | { |
2264 | StartCollidingMessage.Colliders = colliding; | 2254 | StartCollidingMessage.Colliders = colliding; |
2265 | 2255 | ||
2266 | if (m_parentGroup.Scene == null) | 2256 | if (ParentGroup.Scene == null) |
2267 | return; | 2257 | return; |
2268 | 2258 | ||
2269 | // if (m_parentGroup.PassCollision == true) | 2259 | // if (m_parentGroup.PassCollision == true) |
@@ -2271,12 +2261,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
2271 | // //TODO: Add pass to root prim! | 2261 | // //TODO: Add pass to root prim! |
2272 | // } | 2262 | // } |
2273 | 2263 | ||
2274 | m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage); | 2264 | ParentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage); |
2275 | } | 2265 | } |
2276 | } | 2266 | } |
2277 | } | 2267 | } |
2278 | 2268 | ||
2279 | if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.collision) != 0) | 2269 | if ((ParentGroup.RootPart.ScriptEvents & scriptEvents.collision) != 0) |
2280 | { | 2270 | { |
2281 | if (m_lastColliders.Count > 0) | 2271 | if (m_lastColliders.Count > 0) |
2282 | { | 2272 | { |
@@ -2288,29 +2278,29 @@ namespace OpenSim.Region.Framework.Scenes | |||
2288 | if (localId == 0) | 2278 | if (localId == 0) |
2289 | continue; | 2279 | continue; |
2290 | 2280 | ||
2291 | if (m_parentGroup.Scene == null) | 2281 | if (ParentGroup.Scene == null) |
2292 | return; | 2282 | return; |
2293 | 2283 | ||
2294 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); | 2284 | SceneObjectPart obj = ParentGroup.Scene.GetSceneObjectPart(localId); |
2295 | string data = ""; | 2285 | string data = ""; |
2296 | if (obj != null) | 2286 | if (obj != null) |
2297 | { | 2287 | { |
2298 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) | 2288 | if (ParentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) |
2299 | || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) | 2289 | || ParentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
2300 | { | 2290 | { |
2301 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | 2291 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
2302 | //If it is 1, it is to accept ONLY collisions from this object | 2292 | //If it is 1, it is to accept ONLY collisions from this object |
2303 | if (found) | 2293 | if (found) |
2304 | { | 2294 | { |
2305 | DetectedObject detobj = new DetectedObject(); | 2295 | DetectedObject detobj = new DetectedObject(); |
2306 | detobj.keyUUID = obj.UUID; | 2296 | detobj.keyUUID = obj.UUID; |
2307 | detobj.nameStr = obj.Name; | 2297 | detobj.nameStr = obj.Name; |
2308 | detobj.ownerUUID = obj._ownerID; | 2298 | detobj.ownerUUID = obj.OwnerID; |
2309 | detobj.posVector = obj.AbsolutePosition; | 2299 | detobj.posVector = obj.AbsolutePosition; |
2310 | detobj.rotQuat = obj.GetWorldRotation(); | 2300 | detobj.rotQuat = obj.GetWorldRotation(); |
2311 | detobj.velVector = obj.Velocity; | 2301 | detobj.velVector = obj.Velocity; |
2312 | detobj.colliderType = 0; | 2302 | detobj.colliderType = 0; |
2313 | detobj.groupUUID = obj._groupID; | 2303 | detobj.groupUUID = obj.GroupID; |
2314 | colliding.Add(detobj); | 2304 | colliding.Add(detobj); |
2315 | } | 2305 | } |
2316 | //If it is 0, it is to not accept collisions from this object | 2306 | //If it is 0, it is to not accept collisions from this object |
@@ -2320,33 +2310,33 @@ namespace OpenSim.Region.Framework.Scenes | |||
2320 | } | 2310 | } |
2321 | else | 2311 | else |
2322 | { | 2312 | { |
2323 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | 2313 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
2324 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work | 2314 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work |
2325 | if (!found) | 2315 | if (!found) |
2326 | { | 2316 | { |
2327 | DetectedObject detobj = new DetectedObject(); | 2317 | DetectedObject detobj = new DetectedObject(); |
2328 | detobj.keyUUID = obj.UUID; | 2318 | detobj.keyUUID = obj.UUID; |
2329 | detobj.nameStr = obj.Name; | 2319 | detobj.nameStr = obj.Name; |
2330 | detobj.ownerUUID = obj._ownerID; | 2320 | detobj.ownerUUID = obj.OwnerID; |
2331 | detobj.posVector = obj.AbsolutePosition; | 2321 | detobj.posVector = obj.AbsolutePosition; |
2332 | detobj.rotQuat = obj.GetWorldRotation(); | 2322 | detobj.rotQuat = obj.GetWorldRotation(); |
2333 | detobj.velVector = obj.Velocity; | 2323 | detobj.velVector = obj.Velocity; |
2334 | detobj.colliderType = 0; | 2324 | detobj.colliderType = 0; |
2335 | detobj.groupUUID = obj._groupID; | 2325 | detobj.groupUUID = obj.GroupID; |
2336 | colliding.Add(detobj); | 2326 | colliding.Add(detobj); |
2337 | } | 2327 | } |
2338 | } | 2328 | } |
2339 | } | 2329 | } |
2340 | else | 2330 | else |
2341 | { | 2331 | { |
2342 | m_parentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence av) | 2332 | ParentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence av) |
2343 | { | 2333 | { |
2344 | if (av.LocalId == localId) | 2334 | if (av.LocalId == localId) |
2345 | { | 2335 | { |
2346 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(av.UUID.ToString()) | 2336 | if (ParentGroup.RootPart.CollisionFilter.ContainsValue(av.UUID.ToString()) |
2347 | || m_parentGroup.RootPart.CollisionFilter.ContainsValue(av.Name)) | 2337 | || ParentGroup.RootPart.CollisionFilter.ContainsValue(av.Name)) |
2348 | { | 2338 | { |
2349 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); | 2339 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); |
2350 | //If it is 1, it is to accept ONLY collisions from this avatar | 2340 | //If it is 1, it is to accept ONLY collisions from this avatar |
2351 | if (found) | 2341 | if (found) |
2352 | { | 2342 | { |
@@ -2368,7 +2358,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2368 | } | 2358 | } |
2369 | else | 2359 | else |
2370 | { | 2360 | { |
2371 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); | 2361 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); |
2372 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work | 2362 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work |
2373 | if (!found) | 2363 | if (!found) |
2374 | { | 2364 | { |
@@ -2393,15 +2383,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2393 | { | 2383 | { |
2394 | CollidingMessage.Colliders = colliding; | 2384 | CollidingMessage.Colliders = colliding; |
2395 | 2385 | ||
2396 | if (m_parentGroup.Scene == null) | 2386 | if (ParentGroup.Scene == null) |
2397 | return; | 2387 | return; |
2398 | 2388 | ||
2399 | m_parentGroup.Scene.EventManager.TriggerScriptColliding(LocalId, CollidingMessage); | 2389 | ParentGroup.Scene.EventManager.TriggerScriptColliding(LocalId, CollidingMessage); |
2400 | } | 2390 | } |
2401 | } | 2391 | } |
2402 | } | 2392 | } |
2403 | 2393 | ||
2404 | if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.collision_end) != 0) | 2394 | if ((ParentGroup.RootPart.ScriptEvents & scriptEvents.collision_end) != 0) |
2405 | { | 2395 | { |
2406 | if (endedColliders.Count > 0) | 2396 | if (endedColliders.Count > 0) |
2407 | { | 2397 | { |
@@ -2412,28 +2402,28 @@ namespace OpenSim.Region.Framework.Scenes | |||
2412 | if (localId == 0) | 2402 | if (localId == 0) |
2413 | continue; | 2403 | continue; |
2414 | 2404 | ||
2415 | if (m_parentGroup.Scene == null) | 2405 | if (ParentGroup.Scene == null) |
2416 | return; | 2406 | return; |
2417 | 2407 | ||
2418 | SceneObjectPart obj = m_parentGroup.Scene.GetSceneObjectPart(localId); | 2408 | SceneObjectPart obj = ParentGroup.Scene.GetSceneObjectPart(localId); |
2419 | string data = ""; | 2409 | string data = ""; |
2420 | if (obj != null) | 2410 | if (obj != null) |
2421 | { | 2411 | { |
2422 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) || m_parentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) | 2412 | if (ParentGroup.RootPart.CollisionFilter.ContainsValue(obj.UUID.ToString()) || ParentGroup.RootPart.CollisionFilter.ContainsValue(obj.Name)) |
2423 | { | 2413 | { |
2424 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | 2414 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
2425 | //If it is 1, it is to accept ONLY collisions from this object | 2415 | //If it is 1, it is to accept ONLY collisions from this object |
2426 | if (found) | 2416 | if (found) |
2427 | { | 2417 | { |
2428 | DetectedObject detobj = new DetectedObject(); | 2418 | DetectedObject detobj = new DetectedObject(); |
2429 | detobj.keyUUID = obj.UUID; | 2419 | detobj.keyUUID = obj.UUID; |
2430 | detobj.nameStr = obj.Name; | 2420 | detobj.nameStr = obj.Name; |
2431 | detobj.ownerUUID = obj._ownerID; | 2421 | detobj.ownerUUID = obj.OwnerID; |
2432 | detobj.posVector = obj.AbsolutePosition; | 2422 | detobj.posVector = obj.AbsolutePosition; |
2433 | detobj.rotQuat = obj.GetWorldRotation(); | 2423 | detobj.rotQuat = obj.GetWorldRotation(); |
2434 | detobj.velVector = obj.Velocity; | 2424 | detobj.velVector = obj.Velocity; |
2435 | detobj.colliderType = 0; | 2425 | detobj.colliderType = 0; |
2436 | detobj.groupUUID = obj._groupID; | 2426 | detobj.groupUUID = obj.GroupID; |
2437 | colliding.Add(detobj); | 2427 | colliding.Add(detobj); |
2438 | } | 2428 | } |
2439 | //If it is 0, it is to not accept collisions from this object | 2429 | //If it is 0, it is to not accept collisions from this object |
@@ -2443,33 +2433,33 @@ namespace OpenSim.Region.Framework.Scenes | |||
2443 | } | 2433 | } |
2444 | else | 2434 | else |
2445 | { | 2435 | { |
2446 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); | 2436 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1,out data); |
2447 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work | 2437 | //If it is 1, it is to accept ONLY collisions from this object, so this other object will not work |
2448 | if (!found) | 2438 | if (!found) |
2449 | { | 2439 | { |
2450 | DetectedObject detobj = new DetectedObject(); | 2440 | DetectedObject detobj = new DetectedObject(); |
2451 | detobj.keyUUID = obj.UUID; | 2441 | detobj.keyUUID = obj.UUID; |
2452 | detobj.nameStr = obj.Name; | 2442 | detobj.nameStr = obj.Name; |
2453 | detobj.ownerUUID = obj._ownerID; | 2443 | detobj.ownerUUID = obj.OwnerID; |
2454 | detobj.posVector = obj.AbsolutePosition; | 2444 | detobj.posVector = obj.AbsolutePosition; |
2455 | detobj.rotQuat = obj.GetWorldRotation(); | 2445 | detobj.rotQuat = obj.GetWorldRotation(); |
2456 | detobj.velVector = obj.Velocity; | 2446 | detobj.velVector = obj.Velocity; |
2457 | detobj.colliderType = 0; | 2447 | detobj.colliderType = 0; |
2458 | detobj.groupUUID = obj._groupID; | 2448 | detobj.groupUUID = obj.GroupID; |
2459 | colliding.Add(detobj); | 2449 | colliding.Add(detobj); |
2460 | } | 2450 | } |
2461 | } | 2451 | } |
2462 | } | 2452 | } |
2463 | else | 2453 | else |
2464 | { | 2454 | { |
2465 | m_parentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence av) | 2455 | ParentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence av) |
2466 | { | 2456 | { |
2467 | if (av.LocalId == localId) | 2457 | if (av.LocalId == localId) |
2468 | { | 2458 | { |
2469 | if (m_parentGroup.RootPart.CollisionFilter.ContainsValue(av.UUID.ToString()) | 2459 | if (ParentGroup.RootPart.CollisionFilter.ContainsValue(av.UUID.ToString()) |
2470 | || m_parentGroup.RootPart.CollisionFilter.ContainsValue(av.Name)) | 2460 | || ParentGroup.RootPart.CollisionFilter.ContainsValue(av.Name)) |
2471 | { | 2461 | { |
2472 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); | 2462 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); |
2473 | //If it is 1, it is to accept ONLY collisions from this avatar | 2463 | //If it is 1, it is to accept ONLY collisions from this avatar |
2474 | if (found) | 2464 | if (found) |
2475 | { | 2465 | { |
@@ -2491,7 +2481,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2491 | } | 2481 | } |
2492 | else | 2482 | else |
2493 | { | 2483 | { |
2494 | bool found = m_parentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); | 2484 | bool found = ParentGroup.RootPart.CollisionFilter.TryGetValue(1, out data); |
2495 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work | 2485 | //If it is 1, it is to accept ONLY collisions from this avatar, so this other avatar will not work |
2496 | if (!found) | 2486 | if (!found) |
2497 | { | 2487 | { |
@@ -2517,15 +2507,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2517 | { | 2507 | { |
2518 | EndCollidingMessage.Colliders = colliding; | 2508 | EndCollidingMessage.Colliders = colliding; |
2519 | 2509 | ||
2520 | if (m_parentGroup.Scene == null) | 2510 | if (ParentGroup.Scene == null) |
2521 | return; | 2511 | return; |
2522 | 2512 | ||
2523 | m_parentGroup.Scene.EventManager.TriggerScriptCollidingEnd(LocalId, EndCollidingMessage); | 2513 | ParentGroup.Scene.EventManager.TriggerScriptCollidingEnd(LocalId, EndCollidingMessage); |
2524 | } | 2514 | } |
2525 | } | 2515 | } |
2526 | } | 2516 | } |
2527 | 2517 | ||
2528 | if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.land_collision_start) != 0) | 2518 | if ((ParentGroup.RootPart.ScriptEvents & scriptEvents.land_collision_start) != 0) |
2529 | { | 2519 | { |
2530 | if (startedColliders.Count > 0) | 2520 | if (startedColliders.Count > 0) |
2531 | { | 2521 | { |
@@ -2540,7 +2530,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2540 | detobj.keyUUID = UUID.Zero; | 2530 | detobj.keyUUID = UUID.Zero; |
2541 | detobj.nameStr = ""; | 2531 | detobj.nameStr = ""; |
2542 | detobj.ownerUUID = UUID.Zero; | 2532 | detobj.ownerUUID = UUID.Zero; |
2543 | detobj.posVector = m_parentGroup.RootPart.AbsolutePosition; | 2533 | detobj.posVector = ParentGroup.RootPart.AbsolutePosition; |
2544 | detobj.rotQuat = Quaternion.Identity; | 2534 | detobj.rotQuat = Quaternion.Identity; |
2545 | detobj.velVector = Vector3.Zero; | 2535 | detobj.velVector = Vector3.Zero; |
2546 | detobj.colliderType = 0; | 2536 | detobj.colliderType = 0; |
@@ -2553,15 +2543,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2553 | { | 2543 | { |
2554 | LandStartCollidingMessage.Colliders = colliding; | 2544 | LandStartCollidingMessage.Colliders = colliding; |
2555 | 2545 | ||
2556 | if (m_parentGroup.Scene == null) | 2546 | if (ParentGroup.Scene == null) |
2557 | return; | 2547 | return; |
2558 | 2548 | ||
2559 | m_parentGroup.Scene.EventManager.TriggerScriptLandCollidingStart(LocalId, LandStartCollidingMessage); | 2549 | ParentGroup.Scene.EventManager.TriggerScriptLandCollidingStart(LocalId, LandStartCollidingMessage); |
2560 | } | 2550 | } |
2561 | } | 2551 | } |
2562 | } | 2552 | } |
2563 | 2553 | ||
2564 | if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.land_collision) != 0) | 2554 | if ((ParentGroup.RootPart.ScriptEvents & scriptEvents.land_collision) != 0) |
2565 | { | 2555 | { |
2566 | if (m_lastColliders.Count > 0) | 2556 | if (m_lastColliders.Count > 0) |
2567 | { | 2557 | { |
@@ -2576,7 +2566,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2576 | detobj.keyUUID = UUID.Zero; | 2566 | detobj.keyUUID = UUID.Zero; |
2577 | detobj.nameStr = ""; | 2567 | detobj.nameStr = ""; |
2578 | detobj.ownerUUID = UUID.Zero; | 2568 | detobj.ownerUUID = UUID.Zero; |
2579 | detobj.posVector = m_parentGroup.RootPart.AbsolutePosition; | 2569 | detobj.posVector = ParentGroup.RootPart.AbsolutePosition; |
2580 | detobj.rotQuat = Quaternion.Identity; | 2570 | detobj.rotQuat = Quaternion.Identity; |
2581 | detobj.velVector = Vector3.Zero; | 2571 | detobj.velVector = Vector3.Zero; |
2582 | detobj.colliderType = 0; | 2572 | detobj.colliderType = 0; |
@@ -2589,15 +2579,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2589 | { | 2579 | { |
2590 | LandCollidingMessage.Colliders = colliding; | 2580 | LandCollidingMessage.Colliders = colliding; |
2591 | 2581 | ||
2592 | if (m_parentGroup.Scene == null) | 2582 | if (ParentGroup.Scene == null) |
2593 | return; | 2583 | return; |
2594 | 2584 | ||
2595 | m_parentGroup.Scene.EventManager.TriggerScriptLandColliding(LocalId, LandCollidingMessage); | 2585 | ParentGroup.Scene.EventManager.TriggerScriptLandColliding(LocalId, LandCollidingMessage); |
2596 | } | 2586 | } |
2597 | } | 2587 | } |
2598 | } | 2588 | } |
2599 | 2589 | ||
2600 | if ((m_parentGroup.RootPart.ScriptEvents & scriptEvents.land_collision_end) != 0) | 2590 | if ((ParentGroup.RootPart.ScriptEvents & scriptEvents.land_collision_end) != 0) |
2601 | { | 2591 | { |
2602 | if (endedColliders.Count > 0) | 2592 | if (endedColliders.Count > 0) |
2603 | { | 2593 | { |
@@ -2612,7 +2602,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2612 | detobj.keyUUID = UUID.Zero; | 2602 | detobj.keyUUID = UUID.Zero; |
2613 | detobj.nameStr = ""; | 2603 | detobj.nameStr = ""; |
2614 | detobj.ownerUUID = UUID.Zero; | 2604 | detobj.ownerUUID = UUID.Zero; |
2615 | detobj.posVector = m_parentGroup.RootPart.AbsolutePosition; | 2605 | detobj.posVector = ParentGroup.RootPart.AbsolutePosition; |
2616 | detobj.rotQuat = Quaternion.Identity; | 2606 | detobj.rotQuat = Quaternion.Identity; |
2617 | detobj.velVector = Vector3.Zero; | 2607 | detobj.velVector = Vector3.Zero; |
2618 | detobj.colliderType = 0; | 2608 | detobj.colliderType = 0; |
@@ -2625,10 +2615,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2625 | { | 2615 | { |
2626 | LandEndCollidingMessage.Colliders = colliding; | 2616 | LandEndCollidingMessage.Colliders = colliding; |
2627 | 2617 | ||
2628 | if (m_parentGroup.Scene == null) | 2618 | if (ParentGroup.Scene == null) |
2629 | return; | 2619 | return; |
2630 | 2620 | ||
2631 | m_parentGroup.Scene.EventManager.TriggerScriptLandCollidingEnd(LocalId, LandEndCollidingMessage); | 2621 | ParentGroup.Scene.EventManager.TriggerScriptLandCollidingEnd(LocalId, LandEndCollidingMessage); |
2632 | } | 2622 | } |
2633 | } | 2623 | } |
2634 | } | 2624 | } |
@@ -2640,7 +2630,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2640 | 2630 | ||
2641 | RemFlag(PrimFlags.Physics); | 2631 | RemFlag(PrimFlags.Physics); |
2642 | DoPhysicsPropertyUpdate(false, true); | 2632 | DoPhysicsPropertyUpdate(false, true); |
2643 | //m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); | 2633 | //ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); |
2644 | } | 2634 | } |
2645 | 2635 | ||
2646 | public void PhysicsRequestingTerseUpdate() | 2636 | public void PhysicsRequestingTerseUpdate() |
@@ -2649,15 +2639,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
2649 | { | 2639 | { |
2650 | Vector3 newpos = new Vector3(PhysActor.Position.GetBytes(), 0); | 2640 | Vector3 newpos = new Vector3(PhysActor.Position.GetBytes(), 0); |
2651 | 2641 | ||
2652 | if (m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.N) | 2642 | if (ParentGroup.Scene.TestBorderCross(newpos, Cardinals.N) |
2653 | | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.S) | 2643 | | ParentGroup.Scene.TestBorderCross(newpos, Cardinals.S) |
2654 | | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.E) | 2644 | | ParentGroup.Scene.TestBorderCross(newpos, Cardinals.E) |
2655 | | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.W)) | 2645 | | ParentGroup.Scene.TestBorderCross(newpos, Cardinals.W)) |
2656 | { | 2646 | { |
2657 | m_parentGroup.AbsolutePosition = newpos; | 2647 | ParentGroup.AbsolutePosition = newpos; |
2658 | return; | 2648 | return; |
2659 | } | 2649 | } |
2660 | //m_parentGroup.RootPart.m_groupPosition = newpos; | 2650 | //ParentGroup.RootPart.m_groupPosition = newpos; |
2661 | } | 2651 | } |
2662 | ScheduleTerseUpdate(); | 2652 | ScheduleTerseUpdate(); |
2663 | 2653 | ||
@@ -2688,7 +2678,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2688 | } | 2678 | } |
2689 | } | 2679 | } |
2690 | 2680 | ||
2691 | m_parentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence sp) | 2681 | ParentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence sp) |
2692 | { | 2682 | { |
2693 | if (!(Util.GetDistanceTo(sp.AbsolutePosition, AbsolutePosition) >= 100)) | 2683 | if (!(Util.GetDistanceTo(sp.AbsolutePosition, AbsolutePosition) >= 100)) |
2694 | sp.ControllingClient.SendPreLoadSound(objectID, objectID, soundID); | 2684 | sp.ControllingClient.SendPreLoadSound(objectID, objectID, soundID); |
@@ -2773,7 +2763,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2773 | 2763 | ||
2774 | public void rotLookAt(Quaternion target, float strength, float damping) | 2764 | public void rotLookAt(Quaternion target, float strength, float damping) |
2775 | { | 2765 | { |
2776 | if (m_parentGroup.IsAttachment) | 2766 | if (ParentGroup.IsAttachment) |
2777 | { | 2767 | { |
2778 | /* | 2768 | /* |
2779 | ScenePresence avatar = m_scene.GetScenePresence(rootpart.AttachedAvatar); | 2769 | ScenePresence avatar = m_scene.GetScenePresence(rootpart.AttachedAvatar); |
@@ -2809,10 +2799,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2809 | { | 2799 | { |
2810 | // m_log.DebugFormat("[SCENE OBJECT PART]: Scheduling full update for {0} {1}", Name, LocalId); | 2800 | // m_log.DebugFormat("[SCENE OBJECT PART]: Scheduling full update for {0} {1}", Name, LocalId); |
2811 | 2801 | ||
2812 | if (m_parentGroup == null) | 2802 | if (ParentGroup == null) |
2813 | return; | 2803 | return; |
2814 | 2804 | ||
2815 | m_parentGroup.QueueForUpdateCheck(); | 2805 | ParentGroup.QueueForUpdateCheck(); |
2816 | 2806 | ||
2817 | int timeNow = Util.UnixTimeSinceEpoch(); | 2807 | int timeNow = Util.UnixTimeSinceEpoch(); |
2818 | 2808 | ||
@@ -2841,13 +2831,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
2841 | /// </summary> | 2831 | /// </summary> |
2842 | public void ScheduleTerseUpdate() | 2832 | public void ScheduleTerseUpdate() |
2843 | { | 2833 | { |
2844 | if (m_parentGroup == null) | 2834 | if (ParentGroup == null) |
2845 | return; | 2835 | return; |
2846 | 2836 | ||
2847 | if (UpdateFlag == UpdateRequired.NONE) | 2837 | if (UpdateFlag == UpdateRequired.NONE) |
2848 | { | 2838 | { |
2849 | m_parentGroup.HasGroupChanged = true; | 2839 | ParentGroup.HasGroupChanged = true; |
2850 | m_parentGroup.QueueForUpdateCheck(); | 2840 | ParentGroup.QueueForUpdateCheck(); |
2851 | 2841 | ||
2852 | TimeStampTerse = (uint) Util.UnixTimeSinceEpoch(); | 2842 | TimeStampTerse = (uint) Util.UnixTimeSinceEpoch(); |
2853 | UpdateFlag = UpdateRequired.TERSE; | 2843 | UpdateFlag = UpdateRequired.TERSE; |
@@ -2860,7 +2850,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2860 | 2850 | ||
2861 | public void ScriptSetPhysicsStatus(bool UsePhysics) | 2851 | public void ScriptSetPhysicsStatus(bool UsePhysics) |
2862 | { | 2852 | { |
2863 | m_parentGroup.ScriptSetPhysicsStatus(UsePhysics); | 2853 | ParentGroup.ScriptSetPhysicsStatus(UsePhysics); |
2864 | } | 2854 | } |
2865 | 2855 | ||
2866 | /// <summary> | 2856 | /// <summary> |
@@ -2887,7 +2877,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2887 | // Update the physics actor with the new loaded sculpt data and set the taint signal. | 2877 | // Update the physics actor with the new loaded sculpt data and set the taint signal. |
2888 | PhysActor.Shape = m_shape; | 2878 | PhysActor.Shape = m_shape; |
2889 | 2879 | ||
2890 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); | 2880 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); |
2891 | } | 2881 | } |
2892 | } | 2882 | } |
2893 | } | 2883 | } |
@@ -2900,7 +2890,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2900 | /// <param name="clientFlags"></param> | 2890 | /// <param name="clientFlags"></param> |
2901 | protected internal void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | 2891 | protected internal void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) |
2902 | { | 2892 | { |
2903 | if (m_parentGroup == null) | 2893 | if (ParentGroup == null) |
2904 | return; | 2894 | return; |
2905 | 2895 | ||
2906 | // m_log.DebugFormat( | 2896 | // m_log.DebugFormat( |
@@ -2908,7 +2898,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2908 | 2898 | ||
2909 | if (IsRoot) | 2899 | if (IsRoot) |
2910 | { | 2900 | { |
2911 | if (m_parentGroup.IsAttachment) | 2901 | if (ParentGroup.IsAttachment) |
2912 | { | 2902 | { |
2913 | SendFullUpdateToClient(remoteClient, AttachedPos, clientFlags); | 2903 | SendFullUpdateToClient(remoteClient, AttachedPos, clientFlags); |
2914 | } | 2904 | } |
@@ -2928,10 +2918,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2928 | /// </summary> | 2918 | /// </summary> |
2929 | public void SendFullUpdateToAllClients() | 2919 | public void SendFullUpdateToAllClients() |
2930 | { | 2920 | { |
2931 | if (m_parentGroup == null) | 2921 | if (ParentGroup == null) |
2932 | return; | 2922 | return; |
2933 | 2923 | ||
2934 | m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | 2924 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) |
2935 | { | 2925 | { |
2936 | SendFullUpdate(avatar.ControllingClient, avatar.GenerateClientFlags(UUID)); | 2926 | SendFullUpdate(avatar.ControllingClient, avatar.GenerateClientFlags(UUID)); |
2937 | }); | 2927 | }); |
@@ -2943,10 +2933,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
2943 | /// <param name="agentID"></param> | 2933 | /// <param name="agentID"></param> |
2944 | public void SendFullUpdateToAllClientsExcept(UUID agentID) | 2934 | public void SendFullUpdateToAllClientsExcept(UUID agentID) |
2945 | { | 2935 | { |
2946 | if (m_parentGroup == null) | 2936 | if (ParentGroup == null) |
2947 | return; | 2937 | return; |
2948 | 2938 | ||
2949 | m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | 2939 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) |
2950 | { | 2940 | { |
2951 | // Ugly reference :( | 2941 | // Ugly reference :( |
2952 | if (avatar.UUID != agentID) | 2942 | if (avatar.UUID != agentID) |
@@ -2991,7 +2981,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2991 | 2981 | ||
2992 | clientFlags &= ~(uint) PrimFlags.CreateSelected; | 2982 | clientFlags &= ~(uint) PrimFlags.CreateSelected; |
2993 | 2983 | ||
2994 | if (remoteClient.AgentId == _ownerID) | 2984 | if (remoteClient.AgentId == OwnerID) |
2995 | { | 2985 | { |
2996 | if ((Flags & PrimFlags.CreateSelected) != 0) | 2986 | if ((Flags & PrimFlags.CreateSelected) != 0) |
2997 | { | 2987 | { |
@@ -3067,13 +3057,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
3067 | if (volume < 0) | 3057 | if (volume < 0) |
3068 | volume = 0; | 3058 | volume = 0; |
3069 | 3059 | ||
3070 | UUID ownerID = _ownerID; | 3060 | UUID ownerID = OwnerID; |
3071 | UUID objectID = ParentGroup.RootPart.UUID; | 3061 | UUID objectID = ParentGroup.RootPart.UUID; |
3072 | UUID parentID = ParentGroup.UUID; | 3062 | UUID parentID = ParentGroup.UUID; |
3073 | 3063 | ||
3074 | UUID soundID = UUID.Zero; | 3064 | UUID soundID = UUID.Zero; |
3075 | Vector3 position = AbsolutePosition; // region local | 3065 | Vector3 position = AbsolutePosition; // region local |
3076 | ulong regionHandle = m_parentGroup.Scene.RegionInfo.RegionHandle; | 3066 | ulong regionHandle = ParentGroup.Scene.RegionInfo.RegionHandle; |
3077 | 3067 | ||
3078 | if (!UUID.TryParse(sound, out soundID)) | 3068 | if (!UUID.TryParse(sound, out soundID)) |
3079 | { | 3069 | { |
@@ -3094,7 +3084,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3094 | if (soundID == UUID.Zero) | 3084 | if (soundID == UUID.Zero) |
3095 | return; | 3085 | return; |
3096 | 3086 | ||
3097 | ISoundModule soundModule = m_parentGroup.Scene.RequestModuleInterface<ISoundModule>(); | 3087 | ISoundModule soundModule = ParentGroup.Scene.RequestModuleInterface<ISoundModule>(); |
3098 | if (soundModule != null) | 3088 | if (soundModule != null) |
3099 | { | 3089 | { |
3100 | if (useMaster) | 3090 | if (useMaster) |
@@ -3106,7 +3096,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3106 | else | 3096 | else |
3107 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); | 3097 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); |
3108 | ParentGroup.PlaySoundMasterPrim = this; | 3098 | ParentGroup.PlaySoundMasterPrim = this; |
3109 | ownerID = _ownerID; | 3099 | ownerID = OwnerID; |
3110 | objectID = ParentGroup.RootPart.UUID; | 3100 | objectID = ParentGroup.RootPart.UUID; |
3111 | parentID = ParentGroup.UUID; | 3101 | parentID = ParentGroup.UUID; |
3112 | position = AbsolutePosition; // region local | 3102 | position = AbsolutePosition; // region local |
@@ -3117,7 +3107,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3117 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); | 3107 | soundModule.PlayAttachedSound(soundID, ownerID, objectID, volume, position, flags, radius); |
3118 | foreach (SceneObjectPart prim in ParentGroup.PlaySoundSlavePrims) | 3108 | foreach (SceneObjectPart prim in ParentGroup.PlaySoundSlavePrims) |
3119 | { | 3109 | { |
3120 | ownerID = prim._ownerID; | 3110 | ownerID = prim.OwnerID; |
3121 | objectID = prim.ParentGroup.RootPart.UUID; | 3111 | objectID = prim.ParentGroup.RootPart.UUID; |
3122 | parentID = prim.ParentGroup.UUID; | 3112 | parentID = prim.ParentGroup.UUID; |
3123 | position = prim.AbsolutePosition; // region local | 3113 | position = prim.AbsolutePosition; // region local |
@@ -3150,7 +3140,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3150 | /// </summary> | 3140 | /// </summary> |
3151 | public void SendTerseUpdateToAllClients() | 3141 | public void SendTerseUpdateToAllClients() |
3152 | { | 3142 | { |
3153 | m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | 3143 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) |
3154 | { | 3144 | { |
3155 | SendTerseUpdateToClient(avatar.ControllingClient); | 3145 | SendTerseUpdateToClient(avatar.ControllingClient); |
3156 | }); | 3146 | }); |
@@ -3158,7 +3148,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3158 | 3148 | ||
3159 | public void SetAxisRotation(int axis, int rotate) | 3149 | public void SetAxisRotation(int axis, int rotate) |
3160 | { | 3150 | { |
3161 | m_parentGroup.SetAxisRotation(axis, rotate); | 3151 | ParentGroup.SetAxisRotation(axis, rotate); |
3162 | 3152 | ||
3163 | //Cannot use ScriptBaseClass constants as no referance to it currently. | 3153 | //Cannot use ScriptBaseClass constants as no referance to it currently. |
3164 | if (axis == 2)//STATUS_ROTATE_X | 3154 | if (axis == 2)//STATUS_ROTATE_X |
@@ -3181,10 +3171,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
3181 | 3171 | ||
3182 | public void SetDieAtEdge(bool p) | 3172 | public void SetDieAtEdge(bool p) |
3183 | { | 3173 | { |
3184 | if (m_parentGroup.IsDeleted) | 3174 | if (ParentGroup.IsDeleted) |
3185 | return; | 3175 | return; |
3186 | 3176 | ||
3187 | m_parentGroup.RootPart.DIE_AT_EDGE = p; | 3177 | ParentGroup.RootPart.DIE_AT_EDGE = p; |
3188 | } | 3178 | } |
3189 | 3179 | ||
3190 | public void SetFloatOnWater(int floatYN) | 3180 | public void SetFloatOnWater(int floatYN) |
@@ -3426,7 +3416,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3426 | 3416 | ||
3427 | public void SetGroup(UUID groupID, IClientAPI client) | 3417 | public void SetGroup(UUID groupID, IClientAPI client) |
3428 | { | 3418 | { |
3429 | _groupID = groupID; | 3419 | GroupID = groupID; |
3430 | if (client != null) | 3420 | if (client != null) |
3431 | SendPropertiesToClient(client); | 3421 | SendPropertiesToClient(client); |
3432 | UpdateFlag = UpdateRequired.FULL; | 3422 | UpdateFlag = UpdateRequired.FULL; |
@@ -3437,13 +3427,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
3437 | /// </summary> | 3427 | /// </summary> |
3438 | public void SetParent(SceneObjectGroup parent) | 3428 | public void SetParent(SceneObjectGroup parent) |
3439 | { | 3429 | { |
3440 | m_parentGroup = parent; | 3430 | ParentGroup = parent; |
3441 | } | 3431 | } |
3442 | 3432 | ||
3443 | // Use this for attachments! LocalID should be avatar's localid | 3433 | // Use this for attachments! LocalID should be avatar's localid |
3444 | public void SetParentLocalId(uint localID) | 3434 | public void SetParentLocalId(uint localID) |
3445 | { | 3435 | { |
3446 | _parentID = localID; | 3436 | ParentID = localID; |
3447 | } | 3437 | } |
3448 | 3438 | ||
3449 | public void SetPhysicsAxisRotation() | 3439 | public void SetPhysicsAxisRotation() |
@@ -3451,7 +3441,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3451 | if (PhysActor != null) | 3441 | if (PhysActor != null) |
3452 | { | 3442 | { |
3453 | PhysActor.LockAngularMotion(RotationAxis); | 3443 | PhysActor.LockAngularMotion(RotationAxis); |
3454 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); | 3444 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); |
3455 | } | 3445 | } |
3456 | } | 3446 | } |
3457 | 3447 | ||
@@ -3499,9 +3489,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3499 | 3489 | ||
3500 | public void StopLookAt() | 3490 | public void StopLookAt() |
3501 | { | 3491 | { |
3502 | m_parentGroup.stopLookAt(); | 3492 | ParentGroup.stopLookAt(); |
3503 | 3493 | ||
3504 | m_parentGroup.ScheduleGroupForTerseUpdate(); | 3494 | ParentGroup.ScheduleGroupForTerseUpdate(); |
3505 | } | 3495 | } |
3506 | 3496 | ||
3507 | /// <summary> | 3497 | /// <summary> |
@@ -3521,10 +3511,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
3521 | 3511 | ||
3522 | public void StopMoveToTarget() | 3512 | public void StopMoveToTarget() |
3523 | { | 3513 | { |
3524 | m_parentGroup.stopMoveToTarget(); | 3514 | ParentGroup.stopMoveToTarget(); |
3525 | 3515 | ||
3526 | m_parentGroup.ScheduleGroupForTerseUpdate(); | 3516 | ParentGroup.ScheduleGroupForTerseUpdate(); |
3527 | //m_parentGroup.ScheduleGroupForFullUpdate(); | 3517 | //ParentGroup.ScheduleGroupForFullUpdate(); |
3528 | } | 3518 | } |
3529 | 3519 | ||
3530 | public void StoreUndoState() | 3520 | public void StoreUndoState() |
@@ -3563,7 +3553,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3563 | // "[SCENE OBJECT PART]: Storing undo state for {0} {1}, forGroup {2}, initial stack size {3}", | 3553 | // "[SCENE OBJECT PART]: Storing undo state for {0} {1}, forGroup {2}, initial stack size {3}", |
3564 | // Name, LocalId, forGroup, m_undo.Count); | 3554 | // Name, LocalId, forGroup, m_undo.Count); |
3565 | 3555 | ||
3566 | if (m_parentGroup.GetSceneMaxUndo() > 0) | 3556 | if (ParentGroup.GetSceneMaxUndo() > 0) |
3567 | { | 3557 | { |
3568 | UndoState nUndo = new UndoState(this, forGroup); | 3558 | UndoState nUndo = new UndoState(this, forGroup); |
3569 | 3559 | ||
@@ -3619,7 +3609,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3619 | { | 3609 | { |
3620 | UndoState nUndo = null; | 3610 | UndoState nUndo = null; |
3621 | 3611 | ||
3622 | if (m_parentGroup.GetSceneMaxUndo() > 0) | 3612 | if (ParentGroup.GetSceneMaxUndo() > 0) |
3623 | { | 3613 | { |
3624 | nUndo = new UndoState(this, goback.ForGroup); | 3614 | nUndo = new UndoState(this, goback.ForGroup); |
3625 | } | 3615 | } |
@@ -3651,7 +3641,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3651 | 3641 | ||
3652 | if (gofwd != null) | 3642 | if (gofwd != null) |
3653 | { | 3643 | { |
3654 | if (m_parentGroup.GetSceneMaxUndo() > 0) | 3644 | if (ParentGroup.GetSceneMaxUndo() > 0) |
3655 | { | 3645 | { |
3656 | UndoState nUndo = new UndoState(this, gofwd.ForGroup); | 3646 | UndoState nUndo = new UndoState(this, gofwd.ForGroup); |
3657 | 3647 | ||
@@ -4126,17 +4116,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
4126 | 4116 | ||
4127 | public void TriggerScriptChangedEvent(Changed val) | 4117 | public void TriggerScriptChangedEvent(Changed val) |
4128 | { | 4118 | { |
4129 | if (m_parentGroup != null && m_parentGroup.Scene != null) | 4119 | if (ParentGroup != null && ParentGroup.Scene != null) |
4130 | m_parentGroup.Scene.EventManager.TriggerOnScriptChangedEvent(LocalId, (uint)val); | 4120 | ParentGroup.Scene.EventManager.TriggerOnScriptChangedEvent(LocalId, (uint)val); |
4131 | } | 4121 | } |
4132 | 4122 | ||
4133 | public void TrimPermissions() | 4123 | public void TrimPermissions() |
4134 | { | 4124 | { |
4135 | _baseMask &= (uint)PermissionMask.All; | 4125 | BaseMask &= (uint)PermissionMask.All; |
4136 | _ownerMask &= (uint)PermissionMask.All; | 4126 | OwnerMask &= (uint)PermissionMask.All; |
4137 | _groupMask &= (uint)PermissionMask.All; | 4127 | GroupMask &= (uint)PermissionMask.All; |
4138 | _everyoneMask &= (uint)PermissionMask.All; | 4128 | EveryoneMask &= (uint)PermissionMask.All; |
4139 | _nextOwnerMask &= (uint)PermissionMask.All; | 4129 | NextOwnerMask &= (uint)PermissionMask.All; |
4140 | } | 4130 | } |
4141 | 4131 | ||
4142 | public void UpdateExtraParam(ushort type, bool inUse, byte[] data) | 4132 | public void UpdateExtraParam(ushort type, bool inUse, byte[] data) |
@@ -4147,7 +4137,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4147 | { | 4137 | { |
4148 | if (m_shape.SculptEntry && m_shape.SculptTexture != UUID.Zero) | 4138 | if (m_shape.SculptEntry && m_shape.SculptTexture != UUID.Zero) |
4149 | { | 4139 | { |
4150 | m_parentGroup.Scene.AssetService.Get(m_shape.SculptTexture.ToString(), this, AssetReceived); | 4140 | ParentGroup.Scene.AssetService.Get(m_shape.SculptTexture.ToString(), this, AssetReceived); |
4151 | } | 4141 | } |
4152 | } | 4142 | } |
4153 | 4143 | ||
@@ -4210,46 +4200,46 @@ namespace OpenSim.Region.Framework.Scenes | |||
4210 | public void UpdatePermissions(UUID AgentID, byte field, uint localID, uint mask, byte addRemTF) | 4200 | public void UpdatePermissions(UUID AgentID, byte field, uint localID, uint mask, byte addRemTF) |
4211 | { | 4201 | { |
4212 | bool set = addRemTF == 1; | 4202 | bool set = addRemTF == 1; |
4213 | bool god = m_parentGroup.Scene.Permissions.IsGod(AgentID); | 4203 | bool god = ParentGroup.Scene.Permissions.IsGod(AgentID); |
4214 | 4204 | ||
4215 | uint baseMask = _baseMask; | 4205 | uint baseMask = BaseMask; |
4216 | if (god) | 4206 | if (god) |
4217 | baseMask = 0x7ffffff0; | 4207 | baseMask = 0x7ffffff0; |
4218 | 4208 | ||
4219 | // Are we the owner? | 4209 | // Are we the owner? |
4220 | if ((AgentID == _ownerID) || god) | 4210 | if ((AgentID == OwnerID) || god) |
4221 | { | 4211 | { |
4222 | switch (field) | 4212 | switch (field) |
4223 | { | 4213 | { |
4224 | case 1: | 4214 | case 1: |
4225 | if (god) | 4215 | if (god) |
4226 | { | 4216 | { |
4227 | _baseMask = ApplyMask(_baseMask, set, mask); | 4217 | BaseMask = ApplyMask(BaseMask, set, mask); |
4228 | Inventory.ApplyGodPermissions(_baseMask); | 4218 | Inventory.ApplyGodPermissions(_baseMask); |
4229 | } | 4219 | } |
4230 | 4220 | ||
4231 | break; | 4221 | break; |
4232 | case 2: | 4222 | case 2: |
4233 | _ownerMask = ApplyMask(_ownerMask, set, mask) & | 4223 | OwnerMask = ApplyMask(OwnerMask, set, mask) & |
4234 | baseMask; | 4224 | baseMask; |
4235 | break; | 4225 | break; |
4236 | case 4: | 4226 | case 4: |
4237 | _groupMask = ApplyMask(_groupMask, set, mask) & | 4227 | GroupMask = ApplyMask(GroupMask, set, mask) & |
4238 | baseMask; | 4228 | baseMask; |
4239 | break; | 4229 | break; |
4240 | case 8: | 4230 | case 8: |
4241 | _everyoneMask = ApplyMask(_everyoneMask, set, mask) & | 4231 | EveryoneMask = ApplyMask(EveryoneMask, set, mask) & |
4242 | baseMask; | 4232 | baseMask; |
4243 | break; | 4233 | break; |
4244 | case 16: | 4234 | case 16: |
4245 | _nextOwnerMask = ApplyMask(_nextOwnerMask, set, mask) & | 4235 | NextOwnerMask = ApplyMask(NextOwnerMask, set, mask) & |
4246 | baseMask; | 4236 | baseMask; |
4247 | // Prevent the client from creating no mod, no copy | 4237 | // Prevent the client from creating no mod, no copy |
4248 | // objects | 4238 | // objects |
4249 | if ((_nextOwnerMask & (uint)PermissionMask.Copy) == 0) | 4239 | if ((NextOwnerMask & (uint)PermissionMask.Copy) == 0) |
4250 | _nextOwnerMask |= (uint)PermissionMask.Transfer; | 4240 | NextOwnerMask |= (uint)PermissionMask.Transfer; |
4251 | 4241 | ||
4252 | _nextOwnerMask |= (uint)PermissionMask.Move; | 4242 | NextOwnerMask |= (uint)PermissionMask.Move; |
4253 | 4243 | ||
4254 | break; | 4244 | break; |
4255 | } | 4245 | } |
@@ -4263,7 +4253,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4263 | // For now, we use the NINJA naming scheme for identifying joints. | 4253 | // For now, we use the NINJA naming scheme for identifying joints. |
4264 | // In the future, we can support other joint specification schemes such as a | 4254 | // In the future, we can support other joint specification schemes such as a |
4265 | // custom checkbox in the viewer GUI. | 4255 | // custom checkbox in the viewer GUI. |
4266 | if (m_parentGroup.Scene.PhysicsScene.SupportsNINJAJoints) | 4256 | if (ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) |
4267 | { | 4257 | { |
4268 | string hingeString = "hingejoint"; | 4258 | string hingeString = "hingejoint"; |
4269 | return (Name.Length >= hingeString.Length && Name.Substring(0, hingeString.Length) == hingeString); | 4259 | return (Name.Length >= hingeString.Length && Name.Substring(0, hingeString.Length) == hingeString); |
@@ -4279,7 +4269,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4279 | // For now, we use the NINJA naming scheme for identifying joints. | 4269 | // For now, we use the NINJA naming scheme for identifying joints. |
4280 | // In the future, we can support other joint specification schemes such as a | 4270 | // In the future, we can support other joint specification schemes such as a |
4281 | // custom checkbox in the viewer GUI. | 4271 | // custom checkbox in the viewer GUI. |
4282 | if (m_parentGroup.Scene.PhysicsScene.SupportsNINJAJoints) | 4272 | if (ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) |
4283 | { | 4273 | { |
4284 | string ballString = "balljoint"; | 4274 | string ballString = "balljoint"; |
4285 | return (Name.Length >= ballString.Length && Name.Substring(0, ballString.Length) == ballString); | 4275 | return (Name.Length >= ballString.Length && Name.Substring(0, ballString.Length) == ballString); |
@@ -4295,7 +4285,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4295 | // For now, we use the NINJA naming scheme for identifying joints. | 4285 | // For now, we use the NINJA naming scheme for identifying joints. |
4296 | // In the future, we can support other joint specification schemes such as a | 4286 | // In the future, we can support other joint specification schemes such as a |
4297 | // custom checkbox in the viewer GUI. | 4287 | // custom checkbox in the viewer GUI. |
4298 | if (m_parentGroup.Scene.PhysicsScene.SupportsNINJAJoints) | 4288 | if (ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) |
4299 | { | 4289 | { |
4300 | return IsHingeJoint() || IsBallJoint(); | 4290 | return IsHingeJoint() || IsBallJoint(); |
4301 | } | 4291 | } |
@@ -4361,11 +4351,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
4361 | { | 4351 | { |
4362 | DoPhysicsPropertyUpdate(UsePhysics, false); | 4352 | DoPhysicsPropertyUpdate(UsePhysics, false); |
4363 | 4353 | ||
4364 | if (!m_parentGroup.IsDeleted) | 4354 | if (!ParentGroup.IsDeleted) |
4365 | { | 4355 | { |
4366 | if (LocalId == m_parentGroup.RootPart.LocalId) | 4356 | if (LocalId == ParentGroup.RootPart.LocalId) |
4367 | { | 4357 | { |
4368 | m_parentGroup.CheckSculptAndLoad(); | 4358 | ParentGroup.CheckSculptAndLoad(); |
4369 | } | 4359 | } |
4370 | } | 4360 | } |
4371 | } | 4361 | } |
@@ -4398,7 +4388,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4398 | if (PhysActor == null) | 4388 | if (PhysActor == null) |
4399 | { | 4389 | { |
4400 | // It's not phantom anymore. So make sure the physics engine get's knowledge of it | 4390 | // It's not phantom anymore. So make sure the physics engine get's knowledge of it |
4401 | PhysActor = m_parentGroup.Scene.PhysicsScene.AddPrimShape( | 4391 | PhysActor = ParentGroup.Scene.PhysicsScene.AddPrimShape( |
4402 | string.Format("{0}/{1}", Name, UUID), | 4392 | string.Format("{0}/{1}", Name, UUID), |
4403 | Shape, | 4393 | Shape, |
4404 | AbsolutePosition, | 4394 | AbsolutePosition, |
@@ -4410,11 +4400,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
4410 | PhysActor.SetMaterial(Material); | 4400 | PhysActor.SetMaterial(Material); |
4411 | DoPhysicsPropertyUpdate(UsePhysics, true); | 4401 | DoPhysicsPropertyUpdate(UsePhysics, true); |
4412 | 4402 | ||
4413 | if (!m_parentGroup.IsDeleted) | 4403 | if (!ParentGroup.IsDeleted) |
4414 | { | 4404 | { |
4415 | if (LocalId == m_parentGroup.RootPart.LocalId) | 4405 | if (LocalId == ParentGroup.RootPart.LocalId) |
4416 | { | 4406 | { |
4417 | m_parentGroup.CheckSculptAndLoad(); | 4407 | ParentGroup.CheckSculptAndLoad(); |
4418 | } | 4408 | } |
4419 | } | 4409 | } |
4420 | 4410 | ||
@@ -4436,11 +4426,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
4436 | { | 4426 | { |
4437 | DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. If it's phantom this will remove the prim | 4427 | DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. If it's phantom this will remove the prim |
4438 | 4428 | ||
4439 | if (!m_parentGroup.IsDeleted) | 4429 | if (!ParentGroup.IsDeleted) |
4440 | { | 4430 | { |
4441 | if (LocalId == m_parentGroup.RootPart.LocalId) | 4431 | if (LocalId == ParentGroup.RootPart.LocalId) |
4442 | { | 4432 | { |
4443 | m_parentGroup.CheckSculptAndLoad(); | 4433 | ParentGroup.CheckSculptAndLoad(); |
4444 | } | 4434 | } |
4445 | } | 4435 | } |
4446 | } | 4436 | } |
@@ -4552,7 +4542,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4552 | if (PhysActor != null) | 4542 | if (PhysActor != null) |
4553 | { | 4543 | { |
4554 | PhysActor.Shape = m_shape; | 4544 | PhysActor.Shape = m_shape; |
4555 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); | 4545 | ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); |
4556 | } | 4546 | } |
4557 | 4547 | ||
4558 | // This is what makes vehicle trailers work | 4548 | // This is what makes vehicle trailers work |
@@ -4713,18 +4703,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
4713 | 4703 | ||
4714 | //if ((GetEffectiveObjectFlags() & (uint)PrimFlags.Scripted) != 0) | 4704 | //if ((GetEffectiveObjectFlags() & (uint)PrimFlags.Scripted) != 0) |
4715 | //{ | 4705 | //{ |
4716 | // m_parentGroup.Scene.EventManager.OnScriptTimerEvent += handleTimerAccounting; | 4706 | // ParentGroup.Scene.EventManager.OnScriptTimerEvent += handleTimerAccounting; |
4717 | //} | 4707 | //} |
4718 | //else | 4708 | //else |
4719 | //{ | 4709 | //{ |
4720 | // m_parentGroup.Scene.EventManager.OnScriptTimerEvent -= handleTimerAccounting; | 4710 | // ParentGroup.Scene.EventManager.OnScriptTimerEvent -= handleTimerAccounting; |
4721 | //} | 4711 | //} |
4722 | 4712 | ||
4723 | LocalFlags = (PrimFlags)objectflagupdate; | 4713 | LocalFlags = (PrimFlags)objectflagupdate; |
4724 | 4714 | ||
4725 | if (m_parentGroup != null && m_parentGroup.RootPart == this) | 4715 | if (ParentGroup != null && ParentGroup.RootPart == this) |
4726 | { | 4716 | { |
4727 | m_parentGroup.aggregateScriptEvents(); | 4717 | ParentGroup.aggregateScriptEvents(); |
4728 | } | 4718 | } |
4729 | else | 4719 | else |
4730 | { | 4720 | { |
@@ -4792,14 +4782,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
4792 | 4782 | ||
4793 | public void AddScriptLPS(int count) | 4783 | public void AddScriptLPS(int count) |
4794 | { | 4784 | { |
4795 | m_parentGroup.AddScriptLPS(count); | 4785 | ParentGroup.AddScriptLPS(count); |
4796 | } | 4786 | } |
4797 | 4787 | ||
4798 | public void ApplyNextOwnerPermissions() | 4788 | public void ApplyNextOwnerPermissions() |
4799 | { | 4789 | { |
4800 | _baseMask &= _nextOwnerMask; | 4790 | BaseMask &= NextOwnerMask; |
4801 | _ownerMask &= _nextOwnerMask; | 4791 | OwnerMask &= NextOwnerMask; |
4802 | _everyoneMask &= _nextOwnerMask; | 4792 | EveryoneMask &= NextOwnerMask; |
4803 | 4793 | ||
4804 | Inventory.ApplyNextOwnerPermissions(); | 4794 | Inventory.ApplyNextOwnerPermissions(); |
4805 | } | 4795 | } |