diff options
author | UbitUmarov | 2017-01-05 19:32:57 +0000 |
---|---|---|
committer | UbitUmarov | 2017-01-05 19:32:57 +0000 |
commit | 254b26a7d51143d4e08229fa0b0fceabd76a41d0 (patch) | |
tree | 8ed65006e5dc04e69ceba67e31075a9e505e64f6 /OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |
parent | Merge branch 'master' into httptests (diff) | |
parent | Massive tab and trailing space cleanup (diff) | |
download | opensim-SC-254b26a7d51143d4e08229fa0b0fceabd76a41d0.zip opensim-SC-254b26a7d51143d4e08229fa0b0fceabd76a41d0.tar.gz opensim-SC-254b26a7d51143d4e08229fa0b0fceabd76a41d0.tar.bz2 opensim-SC-254b26a7d51143d4e08229fa0b0fceabd76a41d0.tar.xz |
fix merge
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 244 |
1 files changed, 122 insertions, 122 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index b95b5be..b97cceb 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -134,7 +134,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
134 | ); | 134 | ); |
135 | private const scriptEvents PhyscicsVolumeDtcSubsEvents = ( | 135 | private const scriptEvents PhyscicsVolumeDtcSubsEvents = ( |
136 | scriptEvents.collision_start | scriptEvents.collision_end | 136 | scriptEvents.collision_start | scriptEvents.collision_end |
137 | ); | 137 | ); |
138 | 138 | ||
139 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 139 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
140 | 140 | ||
@@ -148,8 +148,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
148 | /// <summary> | 148 | /// <summary> |
149 | /// Dynamic objects that can be created and deleted as required. | 149 | /// Dynamic objects that can be created and deleted as required. |
150 | /// </summary> | 150 | /// </summary> |
151 | public DOMap DynObjs | 151 | public DOMap DynObjs |
152 | { | 152 | { |
153 | get | 153 | get |
154 | { | 154 | { |
155 | if (m_dynObjs == null) | 155 | if (m_dynObjs == null) |
@@ -163,16 +163,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
163 | m_dynObjs = value; | 163 | m_dynObjs = value; |
164 | } | 164 | } |
165 | } | 165 | } |
166 | 166 | ||
167 | /// <value> | 167 | /// <value> |
168 | /// Is this a root part? | 168 | /// Is this a root part? |
169 | /// </value> | 169 | /// </value> |
170 | /// <remarks> | 170 | /// <remarks> |
171 | /// This will return true even if the whole object is attached to an avatar. | 171 | /// This will return true even if the whole object is attached to an avatar. |
172 | /// </remarks> | 172 | /// </remarks> |
173 | public bool IsRoot | 173 | public bool IsRoot |
174 | { | 174 | { |
175 | get { return Object.ReferenceEquals(ParentGroup.RootPart, this); } | 175 | get { return Object.ReferenceEquals(ParentGroup.RootPart, this); } |
176 | } | 176 | } |
177 | 177 | ||
178 | /// <summary> | 178 | /// <summary> |
@@ -192,11 +192,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
192 | #region Fields | 192 | #region Fields |
193 | 193 | ||
194 | public bool AllowedDrop; | 194 | public bool AllowedDrop; |
195 | 195 | ||
196 | public bool DIE_AT_EDGE; | 196 | public bool DIE_AT_EDGE; |
197 | 197 | ||
198 | public bool RETURN_AT_EDGE; | 198 | public bool RETURN_AT_EDGE; |
199 | 199 | ||
200 | public bool BlockGrab { get; set; } | 200 | public bool BlockGrab { get; set; } |
201 | 201 | ||
202 | public bool StatusSandbox; | 202 | public bool StatusSandbox; |
@@ -221,7 +221,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
221 | // Note: This isn't persisted in the database right now, as the fields for that aren't just there yet. | 221 | // Note: This isn't persisted in the database right now, as the fields for that aren't just there yet. |
222 | // Not a big problem as long as the script that sets it remains in the prim on startup. | 222 | // Not a big problem as long as the script that sets it remains in the prim on startup. |
223 | // for SL compatibility it should be persisted though (set sound / displaytext / particlesystem, kill script) | 223 | // for SL compatibility it should be persisted though (set sound / displaytext / particlesystem, kill script) |
224 | 224 | ||
225 | public UUID Sound; | 225 | public UUID Sound; |
226 | 226 | ||
227 | public byte SoundFlags; | 227 | public byte SoundFlags; |
@@ -254,7 +254,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
254 | 254 | ||
255 | [XmlIgnore] | 255 | [XmlIgnore] |
256 | public int STATUS_ROTATE_X; // this should not be used | 256 | public int STATUS_ROTATE_X; // this should not be used |
257 | 257 | ||
258 | [XmlIgnore] | 258 | [XmlIgnore] |
259 | public int STATUS_ROTATE_Y; // this should not be used | 259 | public int STATUS_ROTATE_Y; // this should not be used |
260 | 260 | ||
@@ -262,13 +262,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
262 | public int STATUS_ROTATE_Z; // this should not be used | 262 | public int STATUS_ROTATE_Z; // this should not be used |
263 | 263 | ||
264 | private Dictionary<int, string> m_CollisionFilter = new Dictionary<int, string>(); | 264 | private Dictionary<int, string> m_CollisionFilter = new Dictionary<int, string>(); |
265 | 265 | ||
266 | /// <value> | 266 | /// <value> |
267 | /// The UUID of the user inventory item from which this object was rezzed if this is a root part. | 267 | /// The UUID of the user inventory item from which this object was rezzed if this is a root part. |
268 | /// If UUID.Zero then either this is not a root part or there is no connection with a user inventory item. | 268 | /// If UUID.Zero then either this is not a root part or there is no connection with a user inventory item. |
269 | /// </value> | 269 | /// </value> |
270 | private UUID m_fromUserInventoryItemID; | 270 | private UUID m_fromUserInventoryItemID; |
271 | 271 | ||
272 | public UUID FromUserInventoryItemID | 272 | public UUID FromUserInventoryItemID |
273 | { | 273 | { |
274 | get { return m_fromUserInventoryItemID; } | 274 | get { return m_fromUserInventoryItemID; } |
@@ -289,7 +289,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
289 | 289 | ||
290 | public bool VolumeDetectActive | 290 | public bool VolumeDetectActive |
291 | { | 291 | { |
292 | get | 292 | get |
293 | { | 293 | { |
294 | return (Flags & (PrimFlags)primFlagVolumeDetect) != 0; | 294 | return (Flags & (PrimFlags)primFlagVolumeDetect) != 0; |
295 | } | 295 | } |
@@ -313,7 +313,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
313 | 313 | ||
314 | /// <summary> | 314 | /// <summary> |
315 | /// This part's inventory | 315 | /// This part's inventory |
316 | /// </summary> | 316 | /// </summary> |
317 | public IEntityInventory Inventory | 317 | public IEntityInventory Inventory |
318 | { | 318 | { |
319 | get { return m_inventory; } | 319 | get { return m_inventory; } |
@@ -321,20 +321,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
321 | protected SceneObjectPartInventory m_inventory; | 321 | protected SceneObjectPartInventory m_inventory; |
322 | 322 | ||
323 | public bool Undoing; | 323 | public bool Undoing; |
324 | 324 | ||
325 | public bool IgnoreUndoUpdate = false; | 325 | public bool IgnoreUndoUpdate = false; |
326 | 326 | ||
327 | public PrimFlags LocalFlags; | 327 | public PrimFlags LocalFlags; |
328 | 328 | ||
329 | private float m_damage = -1.0f; | 329 | private float m_damage = -1.0f; |
330 | private byte[] m_TextureAnimation; | 330 | private byte[] m_TextureAnimation; |
331 | private byte m_clickAction; | 331 | private byte m_clickAction; |
332 | private Color m_color = Color.Black; | 332 | private Color m_color = Color.Black; |
333 | private readonly List<uint> m_lastColliders = new List<uint>(); | 333 | private readonly List<uint> m_lastColliders = new List<uint>(); |
334 | private int m_linkNum; | 334 | private int m_linkNum; |
335 | 335 | ||
336 | private int m_scriptAccessPin; | 336 | private int m_scriptAccessPin; |
337 | 337 | ||
338 | private readonly Dictionary<UUID, scriptEvents> m_scriptEvents = new Dictionary<UUID, scriptEvents>(); | 338 | private readonly Dictionary<UUID, scriptEvents> m_scriptEvents = new Dictionary<UUID, scriptEvents>(); |
339 | private string m_sitName = String.Empty; | 339 | private string m_sitName = String.Empty; |
340 | private Quaternion m_sitTargetOrientation = Quaternion.Identity; | 340 | private Quaternion m_sitTargetOrientation = Quaternion.Identity; |
@@ -403,7 +403,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
403 | private UUID m_collisionSound; | 403 | private UUID m_collisionSound; |
404 | private float m_collisionSoundVolume; | 404 | private float m_collisionSoundVolume; |
405 | 405 | ||
406 | private int LastColSoundSentTime; | 406 | private int LastColSoundSentTime; |
407 | 407 | ||
408 | private SOPVehicle m_vehicleParams = null; | 408 | private SOPVehicle m_vehicleParams = null; |
409 | 409 | ||
@@ -454,7 +454,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
454 | /// <param name="rotationOffset"></param> | 454 | /// <param name="rotationOffset"></param> |
455 | /// <param name="offsetPosition"></param> | 455 | /// <param name="offsetPosition"></param> |
456 | public SceneObjectPart( | 456 | public SceneObjectPart( |
457 | UUID ownerID, PrimitiveBaseShape shape, Vector3 groupPosition, | 457 | UUID ownerID, PrimitiveBaseShape shape, Vector3 groupPosition, |
458 | Quaternion rotationOffset, Vector3 offsetPosition) : this() | 458 | Quaternion rotationOffset, Vector3 offsetPosition) : this() |
459 | { | 459 | { |
460 | m_name = "Object"; | 460 | m_name = "Object"; |
@@ -505,7 +505,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
505 | private bool m_createSelected = false; | 505 | private bool m_createSelected = false; |
506 | 506 | ||
507 | private UUID _creatorID; | 507 | private UUID _creatorID; |
508 | public UUID CreatorID | 508 | public UUID CreatorID |
509 | { | 509 | { |
510 | get { return _creatorID; } | 510 | get { return _creatorID; } |
511 | set { _creatorID = value; } | 511 | set { _creatorID = value; } |
@@ -515,7 +515,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
515 | /// <summary> | 515 | /// <summary> |
516 | /// Data about the creator in the form home_url;name | 516 | /// Data about the creator in the form home_url;name |
517 | /// </summary> | 517 | /// </summary> |
518 | public string CreatorData | 518 | public string CreatorData |
519 | { | 519 | { |
520 | get { return m_creatorData; } | 520 | get { return m_creatorData; } |
521 | set { m_creatorData = value; } | 521 | set { m_creatorData = value; } |
@@ -565,7 +565,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
565 | } | 565 | } |
566 | 566 | ||
567 | /// <summary> | 567 | /// <summary> |
568 | /// A relic from when we we thought that prims contained folder objects. In | 568 | /// A relic from when we we thought that prims contained folder objects. In |
569 | /// reality, prim == folder | 569 | /// reality, prim == folder |
570 | /// Exposing this is not particularly good, but it's one of the least evils at the moment to see | 570 | /// Exposing this is not particularly good, but it's one of the least evils at the moment to see |
571 | /// folder id from prim inventory item data, since it's not (yet) actually stored with the prim. | 571 | /// folder id from prim inventory item data, since it's not (yet) actually stored with the prim. |
@@ -611,10 +611,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
611 | public UUID UUID | 611 | public UUID UUID |
612 | { | 612 | { |
613 | get { return m_uuid; } | 613 | get { return m_uuid; } |
614 | set | 614 | set |
615 | { | 615 | { |
616 | m_uuid = value; | 616 | m_uuid = value; |
617 | 617 | ||
618 | // This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part | 618 | // This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part |
619 | if (Inventory != null) | 619 | if (Inventory != null) |
620 | Inventory.ResetObjectID(); | 620 | Inventory.ResetObjectID(); |
@@ -634,8 +634,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
634 | public virtual string Name | 634 | public virtual string Name |
635 | { | 635 | { |
636 | get { return m_name; } | 636 | get { return m_name; } |
637 | set | 637 | set |
638 | { | 638 | { |
639 | m_name = value; | 639 | m_name = value; |
640 | 640 | ||
641 | PhysicsActor pa = PhysActor; | 641 | PhysicsActor pa = PhysActor; |
@@ -678,11 +678,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
678 | m_isSelected = value; | 678 | m_isSelected = value; |
679 | if (ParentGroup != null) | 679 | if (ParentGroup != null) |
680 | ParentGroup.PartSelectChanged(value); | 680 | ParentGroup.PartSelectChanged(value); |
681 | 681 | ||
682 | } | 682 | } |
683 | } | 683 | } |
684 | 684 | ||
685 | 685 | ||
686 | public Dictionary<int, string> CollisionFilter | 686 | public Dictionary<int, string> CollisionFilter |
687 | { | 687 | { |
688 | get { return m_CollisionFilter; } | 688 | get { return m_CollisionFilter; } |
@@ -704,14 +704,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
704 | set { m_APIDTarget = value; } | 704 | set { m_APIDTarget = value; } |
705 | } | 705 | } |
706 | 706 | ||
707 | 707 | ||
708 | protected float APIDDamp | 708 | protected float APIDDamp |
709 | { | 709 | { |
710 | get { return m_APIDDamp; } | 710 | get { return m_APIDDamp; } |
711 | set { m_APIDDamp = value; } | 711 | set { m_APIDDamp = value; } |
712 | } | 712 | } |
713 | 713 | ||
714 | 714 | ||
715 | protected float APIDStrength | 715 | protected float APIDStrength |
716 | { | 716 | { |
717 | get { return m_APIDStrength; } | 717 | get { return m_APIDStrength; } |
@@ -769,21 +769,21 @@ namespace OpenSim.Region.Framework.Scenes | |||
769 | set { m_particleSystem = value; } | 769 | set { m_particleSystem = value; } |
770 | } | 770 | } |
771 | 771 | ||
772 | 772 | ||
773 | public DateTime Expires | 773 | public DateTime Expires |
774 | { | 774 | { |
775 | get { return m_expires; } | 775 | get { return m_expires; } |
776 | set { m_expires = value; } | 776 | set { m_expires = value; } |
777 | } | 777 | } |
778 | 778 | ||
779 | 779 | ||
780 | public DateTime Rezzed | 780 | public DateTime Rezzed |
781 | { | 781 | { |
782 | get { return m_rezzed; } | 782 | get { return m_rezzed; } |
783 | set { m_rezzed = value; } | 783 | set { m_rezzed = value; } |
784 | } | 784 | } |
785 | 785 | ||
786 | 786 | ||
787 | public float Damage | 787 | public float Damage |
788 | { | 788 | { |
789 | get { return m_damage; } | 789 | get { return m_damage; } |
@@ -798,7 +798,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
798 | /// <summary> | 798 | /// <summary> |
799 | /// The position of the entire group that this prim belongs to. | 799 | /// The position of the entire group that this prim belongs to. |
800 | /// </summary> | 800 | /// </summary> |
801 | /// | 801 | /// |
802 | 802 | ||
803 | public Vector3 GroupPosition | 803 | public Vector3 GroupPosition |
804 | { | 804 | { |
@@ -837,7 +837,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
837 | // Root prim actually goes at Position | 837 | // Root prim actually goes at Position |
838 | if (ParentID == 0) | 838 | if (ParentID == 0) |
839 | { | 839 | { |
840 | actor.Position = value; | 840 | actor.Position = value; |
841 | } | 841 | } |
842 | else | 842 | else |
843 | { | 843 | { |
@@ -955,7 +955,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
955 | 955 | ||
956 | return m_rotationOffset; | 956 | return m_rotationOffset; |
957 | } | 957 | } |
958 | 958 | ||
959 | set | 959 | set |
960 | { | 960 | { |
961 | // StoreUndoState(); | 961 | // StoreUndoState(); |
@@ -1066,24 +1066,24 @@ namespace OpenSim.Region.Framework.Scenes | |||
1066 | if ((actor != null) && actor.IsPhysical && ParentGroup.RootPart == this && VehicleType == (int)Vehicle.TYPE_NONE) | 1066 | if ((actor != null) && actor.IsPhysical && ParentGroup.RootPart == this && VehicleType == (int)Vehicle.TYPE_NONE) |
1067 | { | 1067 | { |
1068 | actor.RotationalVelocity = m_angularVelocity; | 1068 | actor.RotationalVelocity = m_angularVelocity; |
1069 | } | 1069 | } |
1070 | } | 1070 | } |
1071 | } | 1071 | } |
1072 | 1072 | ||
1073 | /// <summary></summary> | 1073 | /// <summary></summary> |
1074 | public Vector3 Acceleration | 1074 | public Vector3 Acceleration |
1075 | { | 1075 | { |
1076 | get | 1076 | get |
1077 | { | 1077 | { |
1078 | PhysicsActor actor = PhysActor; | 1078 | PhysicsActor actor = PhysActor; |
1079 | if (actor != null) | 1079 | if (actor != null) |
1080 | { | 1080 | { |
1081 | m_acceleration = actor.Acceleration; | 1081 | m_acceleration = actor.Acceleration; |
1082 | } | 1082 | } |
1083 | return m_acceleration; | 1083 | return m_acceleration; |
1084 | } | 1084 | } |
1085 | 1085 | ||
1086 | set | 1086 | set |
1087 | { | 1087 | { |
1088 | if (Util.IsNanOrInfinity(value)) | 1088 | if (Util.IsNanOrInfinity(value)) |
1089 | m_acceleration = Vector3.Zero; | 1089 | m_acceleration = Vector3.Zero; |
@@ -1217,23 +1217,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
1217 | else | 1217 | else |
1218 | b = sz; | 1218 | b = sz; |
1219 | } | 1219 | } |
1220 | 1220 | ||
1221 | return a * b; | 1221 | return a * b; |
1222 | } | 1222 | } |
1223 | 1223 | ||
1224 | public UpdateRequired UpdateFlag { get; set; } | 1224 | public UpdateRequired UpdateFlag { get; set; } |
1225 | 1225 | ||
1226 | /// <summary> | 1226 | /// <summary> |
1227 | /// Used for media on a prim. | 1227 | /// Used for media on a prim. |
1228 | /// </summary> | 1228 | /// </summary> |
1229 | /// Do not change this value directly - always do it through an IMoapModule. | 1229 | /// Do not change this value directly - always do it through an IMoapModule. |
1230 | public string MediaUrl | 1230 | public string MediaUrl |
1231 | { | 1231 | { |
1232 | get | 1232 | get |
1233 | { | 1233 | { |
1234 | return m_mediaUrl; | 1234 | return m_mediaUrl; |
1235 | } | 1235 | } |
1236 | 1236 | ||
1237 | set | 1237 | set |
1238 | { | 1238 | { |
1239 | m_mediaUrl = value; | 1239 | m_mediaUrl = value; |
@@ -1246,10 +1246,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
1246 | public bool CreateSelected | 1246 | public bool CreateSelected |
1247 | { | 1247 | { |
1248 | get { return m_createSelected; } | 1248 | get { return m_createSelected; } |
1249 | set | 1249 | set |
1250 | { | 1250 | { |
1251 | // m_log.DebugFormat("[SOP]: Setting CreateSelected to {0} for {1} {2}", value, Name, UUID); | 1251 | // m_log.DebugFormat("[SOP]: Setting CreateSelected to {0} for {1} {2}", value, Name, UUID); |
1252 | m_createSelected = value; | 1252 | m_createSelected = value; |
1253 | } | 1253 | } |
1254 | } | 1254 | } |
1255 | 1255 | ||
@@ -1423,7 +1423,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1423 | } | 1423 | } |
1424 | 1424 | ||
1425 | /// <summary> | 1425 | /// <summary> |
1426 | /// Property flags. See OpenMetaverse.PrimFlags | 1426 | /// Property flags. See OpenMetaverse.PrimFlags |
1427 | /// </summary> | 1427 | /// </summary> |
1428 | /// <remarks> | 1428 | /// <remarks> |
1429 | /// Example properties are PrimFlags.Phantom and PrimFlags.DieAtEdge | 1429 | /// Example properties are PrimFlags.Phantom and PrimFlags.DieAtEdge |
@@ -1431,18 +1431,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
1431 | public PrimFlags Flags | 1431 | public PrimFlags Flags |
1432 | { | 1432 | { |
1433 | get { return _flags; } | 1433 | get { return _flags; } |
1434 | set | 1434 | set |
1435 | { | 1435 | { |
1436 | // m_log.DebugFormat("[SOP]: Setting flags for {0} {1} to {2}", UUID, Name, value); | 1436 | // m_log.DebugFormat("[SOP]: Setting flags for {0} {1} to {2}", UUID, Name, value); |
1437 | _flags = value; | 1437 | _flags = value; |
1438 | } | 1438 | } |
1439 | } | 1439 | } |
1440 | 1440 | ||
1441 | [XmlIgnore] | 1441 | [XmlIgnore] |
1442 | public bool IsOccupied // KF If an av is sittingon this prim | 1442 | public bool IsOccupied // KF If an av is sittingon this prim |
1443 | { | 1443 | { |
1444 | get { return m_occupied; } | 1444 | get { return m_occupied; } |
1445 | set { m_occupied = value; } | 1445 | set { m_occupied = value; } |
1446 | } | 1446 | } |
1447 | 1447 | ||
1448 | /// <summary> | 1448 | /// <summary> |
@@ -1474,7 +1474,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1474 | } | 1474 | } |
1475 | 1475 | ||
1476 | private UUID _parentUUID = UUID.Zero; | 1476 | private UUID _parentUUID = UUID.Zero; |
1477 | 1477 | ||
1478 | public UUID ParentUUID | 1478 | public UUID ParentUUID |
1479 | { | 1479 | { |
1480 | get | 1480 | get |
@@ -1487,7 +1487,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1487 | 1487 | ||
1488 | set { _parentUUID = value; } | 1488 | set { _parentUUID = value; } |
1489 | } | 1489 | } |
1490 | 1490 | ||
1491 | public string SitAnimation | 1491 | public string SitAnimation |
1492 | { | 1492 | { |
1493 | get { return m_sitAnimation; } | 1493 | get { return m_sitAnimation; } |
@@ -1519,7 +1519,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1519 | { | 1519 | { |
1520 | get { return m_collisionSound; } | 1520 | get { return m_collisionSound; } |
1521 | set | 1521 | set |
1522 | { | 1522 | { |
1523 | m_collisionSound = value; | 1523 | m_collisionSound = value; |
1524 | 1524 | ||
1525 | if (value == invalidCollisionSoundUUID) | 1525 | if (value == invalidCollisionSoundUUID) |
@@ -1589,7 +1589,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1589 | { | 1589 | { |
1590 | if (ParentGroup.RootPart == this) | 1590 | if (ParentGroup.RootPart == this) |
1591 | return m_torque; | 1591 | return m_torque; |
1592 | 1592 | ||
1593 | return ParentGroup.RootPart.Torque; | 1593 | return ParentGroup.RootPart.Torque; |
1594 | } | 1594 | } |
1595 | 1595 | ||
@@ -1733,7 +1733,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1733 | set | 1733 | set |
1734 | { | 1734 | { |
1735 | byte oldv = m_physicsShapeType; | 1735 | byte oldv = m_physicsShapeType; |
1736 | 1736 | ||
1737 | if (value >= 0 && value <= (byte)PhysShapeType.convex) | 1737 | if (value >= 0 && value <= (byte)PhysShapeType.convex) |
1738 | { | 1738 | { |
1739 | if (value == (byte)PhysShapeType.none && ParentGroup != null && ParentGroup.RootPart == this) | 1739 | if (value == (byte)PhysShapeType.none && ParentGroup != null && ParentGroup.RootPart == this) |
@@ -1966,7 +1966,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1966 | Utils.FloatToBytes(pTexAnim.Start).CopyTo(data, pos); | 1966 | Utils.FloatToBytes(pTexAnim.Start).CopyTo(data, pos); |
1967 | Utils.FloatToBytes(pTexAnim.Length).CopyTo(data, pos + 4); | 1967 | Utils.FloatToBytes(pTexAnim.Length).CopyTo(data, pos + 4); |
1968 | Utils.FloatToBytes(pTexAnim.Rate).CopyTo(data, pos + 8); | 1968 | Utils.FloatToBytes(pTexAnim.Rate).CopyTo(data, pos + 8); |
1969 | 1969 | ||
1970 | } | 1970 | } |
1971 | m_TextureAnimation = data; | 1971 | m_TextureAnimation = data; |
1972 | } | 1972 | } |
@@ -2063,7 +2063,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2063 | 2063 | ||
2064 | root.AngularVelocity = pAngVel; | 2064 | root.AngularVelocity = pAngVel; |
2065 | } | 2065 | } |
2066 | 2066 | ||
2067 | 2067 | ||
2068 | /// <summary> | 2068 | /// <summary> |
2069 | /// hook to the physics scene to apply angular impulse | 2069 | /// hook to the physics scene to apply angular impulse |
@@ -2095,7 +2095,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2095 | /// </summary> | 2095 | /// </summary> |
2096 | /// <param name="impulsei">Vector force</param> | 2096 | /// <param name="impulsei">Vector force</param> |
2097 | /// <param name="localGlobalTF">true for the local frame, false for the global frame</param> | 2097 | /// <param name="localGlobalTF">true for the local frame, false for the global frame</param> |
2098 | 2098 | ||
2099 | // this is actualy Set Torque.. keeping naming so not to edit lslapi also | 2099 | // this is actualy Set Torque.. keeping naming so not to edit lslapi also |
2100 | public void SetAngularImpulse(Vector3 torquei, bool localGlobalTF) | 2100 | public void SetAngularImpulse(Vector3 torquei, bool localGlobalTF) |
2101 | { | 2101 | { |
@@ -2116,7 +2116,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2116 | /// <param name="VolumeDetectActive"></param> | 2116 | /// <param name="VolumeDetectActive"></param> |
2117 | /// <param name="building"></param> | 2117 | /// <param name="building"></param> |
2118 | 2118 | ||
2119 | public void ApplyPhysics(uint _ObjectFlags, bool _VolumeDetectActive, bool building) | 2119 | public void ApplyPhysics(uint _ObjectFlags, bool _VolumeDetectActive, bool building) |
2120 | { | 2120 | { |
2121 | VolumeDetectActive = _VolumeDetectActive; | 2121 | VolumeDetectActive = _VolumeDetectActive; |
2122 | 2122 | ||
@@ -2177,7 +2177,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2177 | /// <returns></returns> | 2177 | /// <returns></returns> |
2178 | public SceneObjectPart Copy(uint plocalID, UUID AgentID, UUID GroupID, int linkNum, bool userExposed) | 2178 | public SceneObjectPart Copy(uint plocalID, UUID AgentID, UUID GroupID, int linkNum, bool userExposed) |
2179 | { | 2179 | { |
2180 | // FIXME: This is dangerous since it's easy to forget to reset some references when necessary and end up | 2180 | // FIXME: This is dangerous since it's easy to forget to reset some references when necessary and end up |
2181 | // with bugs that only occur in some circumstances (e.g. crossing between regions on the same simulator | 2181 | // with bugs that only occur in some circumstances (e.g. crossing between regions on the same simulator |
2182 | // but not between regions on different simulators). Really, all copying should be done explicitly. | 2182 | // but not between regions on different simulators). Really, all copying should be done explicitly. |
2183 | SceneObjectPart dupe = (SceneObjectPart)MemberwiseClone(); | 2183 | SceneObjectPart dupe = (SceneObjectPart)MemberwiseClone(); |
@@ -2242,20 +2242,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
2242 | dupe.PayPrice = (int[])PayPrice.Clone(); | 2242 | dupe.PayPrice = (int[])PayPrice.Clone(); |
2243 | 2243 | ||
2244 | dupe.DynAttrs.CopyFrom(DynAttrs); | 2244 | dupe.DynAttrs.CopyFrom(DynAttrs); |
2245 | 2245 | ||
2246 | if (userExposed) | 2246 | if (userExposed) |
2247 | { | 2247 | { |
2248 | bool UsePhysics = ((dupe.Flags & PrimFlags.Physics) != 0); | 2248 | bool UsePhysics = ((dupe.Flags & PrimFlags.Physics) != 0); |
2249 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); | 2249 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); |
2250 | } | 2250 | } |
2251 | 2251 | ||
2252 | if (dupe.PhysActor != null) | 2252 | if (dupe.PhysActor != null) |
2253 | dupe.PhysActor.LocalID = plocalID; | 2253 | dupe.PhysActor.LocalID = plocalID; |
2254 | 2254 | ||
2255 | ParentGroup.Scene.EventManager.TriggerOnSceneObjectPartCopy(dupe, this, userExposed); | 2255 | ParentGroup.Scene.EventManager.TriggerOnSceneObjectPartCopy(dupe, this, userExposed); |
2256 | 2256 | ||
2257 | // m_log.DebugFormat("[SCENE OBJECT PART]: Clone of {0} {1} finished", Name, UUID); | 2257 | // m_log.DebugFormat("[SCENE OBJECT PART]: Clone of {0} {1} finished", Name, UUID); |
2258 | 2258 | ||
2259 | return dupe; | 2259 | return dupe; |
2260 | } | 2260 | } |
2261 | 2261 | ||
@@ -2428,7 +2428,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2428 | pa.link(parentPa); | 2428 | pa.link(parentPa); |
2429 | } | 2429 | } |
2430 | } | 2430 | } |
2431 | } | 2431 | } |
2432 | } | 2432 | } |
2433 | 2433 | ||
2434 | bool phan = ((Flags & PrimFlags.Phantom) != 0); | 2434 | bool phan = ((Flags & PrimFlags.Phantom) != 0); |
@@ -2528,7 +2528,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2528 | 2528 | ||
2529 | public uint GetEffectiveObjectFlags() | 2529 | public uint GetEffectiveObjectFlags() |
2530 | { | 2530 | { |
2531 | // Commenting this section of code out since it doesn't actually do anything, as enums are handled by | 2531 | // Commenting this section of code out since it doesn't actually do anything, as enums are handled by |
2532 | // value rather than reference | 2532 | // value rather than reference |
2533 | // PrimFlags f = _flags; | 2533 | // PrimFlags f = _flags; |
2534 | // if (m_parentGroup == null || m_parentGroup.RootPart == this) | 2534 | // if (m_parentGroup == null || m_parentGroup.RootPart == this) |
@@ -2820,7 +2820,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2820 | 2820 | ||
2821 | ColliderArgs LandCollidingMessage = new ColliderArgs(); | 2821 | ColliderArgs LandCollidingMessage = new ColliderArgs(); |
2822 | List<DetectedObject> colliding = new List<DetectedObject>(); | 2822 | List<DetectedObject> colliding = new List<DetectedObject>(); |
2823 | 2823 | ||
2824 | colliding.Add(CreateDetObjectForGround()); | 2824 | colliding.Add(CreateDetObjectForGround()); |
2825 | LandCollidingMessage.Colliders = colliding; | 2825 | LandCollidingMessage.Colliders = colliding; |
2826 | 2826 | ||
@@ -2969,9 +2969,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2969 | // Note: This is only being called on the root prim at this time. | 2969 | // Note: This is only being called on the root prim at this time. |
2970 | 2970 | ||
2971 | m_log.ErrorFormat( | 2971 | m_log.ErrorFormat( |
2972 | "[SCENE OBJECT PART]: Physical object {0}, localID {1} went out of bounds at {2} in {3}. Stopping at {4} and making non-physical.", | 2972 | "[SCENE OBJECT PART]: Physical object {0}, localID {1} went out of bounds at {2} in {3}. Stopping at {4} and making non-physical.", |
2973 | Name, LocalId, pos, ParentGroup.Scene.Name, AbsolutePosition); | 2973 | Name, LocalId, pos, ParentGroup.Scene.Name, AbsolutePosition); |
2974 | 2974 | ||
2975 | RemFlag(PrimFlags.Physics); | 2975 | RemFlag(PrimFlags.Physics); |
2976 | DoPhysicsPropertyUpdate(false, true); | 2976 | DoPhysicsPropertyUpdate(false, true); |
2977 | } | 2977 | } |
@@ -3026,7 +3026,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3026 | //m_log.Debug("prev: " + prevflag.ToString() + " curr: " + Flags.ToString()); | 3026 | //m_log.Debug("prev: " + prevflag.ToString() + " curr: " + Flags.ToString()); |
3027 | //ScheduleFullUpdate(); | 3027 | //ScheduleFullUpdate(); |
3028 | } | 3028 | } |
3029 | 3029 | ||
3030 | public void RemoveScriptEvents(UUID scriptid) | 3030 | public void RemoveScriptEvents(UUID scriptid) |
3031 | { | 3031 | { |
3032 | lock (m_scriptEvents) | 3032 | lock (m_scriptEvents) |
@@ -3089,7 +3089,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3089 | ParentGroup.HasGroupChanged = true; | 3089 | ParentGroup.HasGroupChanged = true; |
3090 | ScheduleFullUpdate(); | 3090 | ScheduleFullUpdate(); |
3091 | } | 3091 | } |
3092 | 3092 | ||
3093 | public void RotLookAt(Quaternion target, float strength, float damping) | 3093 | public void RotLookAt(Quaternion target, float strength, float damping) |
3094 | { | 3094 | { |
3095 | if(ParentGroup.IsDeleted) | 3095 | if(ParentGroup.IsDeleted) |
@@ -3115,7 +3115,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3115 | m_log.WarnFormat("[SceneObjectPart] Invalid rotation strength {0}",APIDStrength); | 3115 | m_log.WarnFormat("[SceneObjectPart] Invalid rotation strength {0}",APIDStrength); |
3116 | return; | 3116 | return; |
3117 | } | 3117 | } |
3118 | 3118 | ||
3119 | APIDActive = true; | 3119 | APIDActive = true; |
3120 | 3120 | ||
3121 | // Necessary to get the lookat deltas applied | 3121 | // Necessary to get the lookat deltas applied |
@@ -3357,7 +3357,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3357 | // sl Does send them | 3357 | // sl Does send them |
3358 | // if (ParentGroup.IsSelected && ParentGroup.IsAttachment) | 3358 | // if (ParentGroup.IsSelected && ParentGroup.IsAttachment) |
3359 | // return; | 3359 | // return; |
3360 | 3360 | ||
3361 | if (ParentGroup.IsDeleted) | 3361 | if (ParentGroup.IsDeleted) |
3362 | return; | 3362 | return; |
3363 | 3363 | ||
@@ -3487,7 +3487,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3487 | public void SetBuoyancy(float fvalue) | 3487 | public void SetBuoyancy(float fvalue) |
3488 | { | 3488 | { |
3489 | Buoyancy = fvalue; | 3489 | Buoyancy = fvalue; |
3490 | /* | 3490 | /* |
3491 | if (PhysActor != null) | 3491 | if (PhysActor != null) |
3492 | { | 3492 | { |
3493 | PhysActor.Buoyancy = fvalue; | 3493 | PhysActor.Buoyancy = fvalue; |
@@ -3547,7 +3547,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3547 | public void SetVehicleType(int type) | 3547 | public void SetVehicleType(int type) |
3548 | { | 3548 | { |
3549 | m_vehicleParams = null; | 3549 | m_vehicleParams = null; |
3550 | 3550 | ||
3551 | if (type == (int)Vehicle.TYPE_NONE) | 3551 | if (type == (int)Vehicle.TYPE_NONE) |
3552 | { | 3552 | { |
3553 | if (_parentID ==0 && PhysActor != null) | 3553 | if (_parentID ==0 && PhysActor != null) |
@@ -3754,7 +3754,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3754 | { | 3754 | { |
3755 | if (Shape.SculptEntry) | 3755 | if (Shape.SculptEntry) |
3756 | return PrimType.SCULPT; | 3756 | return PrimType.SCULPT; |
3757 | 3757 | ||
3758 | if ((Shape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) | 3758 | if ((Shape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) |
3759 | { | 3759 | { |
3760 | if (Shape.PathCurve == (byte)Extrusion.Straight) | 3760 | if (Shape.PathCurve == (byte)Extrusion.Straight) |
@@ -3782,12 +3782,12 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3782 | else if (Shape.PathCurve == (byte)Extrusion.Curve1) | 3782 | else if (Shape.PathCurve == (byte)Extrusion.Curve1) |
3783 | return PrimType.RING; | 3783 | return PrimType.RING; |
3784 | } | 3784 | } |
3785 | 3785 | ||
3786 | return PrimType.BOX; | 3786 | return PrimType.BOX; |
3787 | } | 3787 | } |
3788 | 3788 | ||
3789 | /// <summary> | 3789 | /// <summary> |
3790 | /// Tell us if this object has cut, hollow, dimple, and other factors affecting the number of faces | 3790 | /// Tell us if this object has cut, hollow, dimple, and other factors affecting the number of faces |
3791 | /// </summary> | 3791 | /// </summary> |
3792 | /// <param name="primType"></param> | 3792 | /// <param name="primType"></param> |
3793 | /// <param name="shape"></param> | 3793 | /// <param name="shape"></param> |
@@ -3812,7 +3812,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3812 | hasDimple = (shape.ProfileBegin > 0) || (shape.ProfileEnd > 0); // taken from llSetPrimitiveParms | 3812 | hasDimple = (shape.ProfileBegin > 0) || (shape.ProfileEnd > 0); // taken from llSetPrimitiveParms |
3813 | hasProfileCut = hasDimple; // is it the same thing? | 3813 | hasProfileCut = hasDimple; // is it the same thing? |
3814 | } | 3814 | } |
3815 | 3815 | ||
3816 | public void SetGroup(UUID groupID, IClientAPI client) | 3816 | public void SetGroup(UUID groupID, IClientAPI client) |
3817 | { | 3817 | { |
3818 | // Scene.AddNewPrims() calls with client == null so can't use this. | 3818 | // Scene.AddNewPrims() calls with client == null so can't use this. |
@@ -3859,7 +3859,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3859 | public void SetScriptEvents(UUID scriptid, int events) | 3859 | public void SetScriptEvents(UUID scriptid, int events) |
3860 | { | 3860 | { |
3861 | // m_log.DebugFormat( | 3861 | // m_log.DebugFormat( |
3862 | // "[SCENE OBJECT PART]: Set script events for script with id {0} on {1}/{2} to {3} in {4}", | 3862 | // "[SCENE OBJECT PART]: Set script events for script with id {0} on {1}/{2} to {3} in {4}", |
3863 | // scriptid, Name, ParentGroup.Name, events, ParentGroup.Scene.Name); | 3863 | // scriptid, Name, ParentGroup.Name, events, ParentGroup.Scene.Name); |
3864 | 3864 | ||
3865 | // scriptEvents oldparts; | 3865 | // scriptEvents oldparts; |
@@ -3896,7 +3896,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
3896 | ScheduleFullUpdate(); | 3896 | ScheduleFullUpdate(); |
3897 | } | 3897 | } |
3898 | } | 3898 | } |
3899 | 3899 | ||
3900 | /// <summary> | 3900 | /// <summary> |
3901 | /// Set the text displayed for this part. | 3901 | /// Set the text displayed for this part. |
3902 | /// </summary> | 3902 | /// </summary> |
@@ -4491,7 +4491,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4491 | public bool IsHingeJoint() | 4491 | public bool IsHingeJoint() |
4492 | { | 4492 | { |
4493 | // For now, we use the NINJA naming scheme for identifying joints. | 4493 | // For now, we use the NINJA naming scheme for identifying joints. |
4494 | // In the future, we can support other joint specification schemes such as a | 4494 | // In the future, we can support other joint specification schemes such as a |
4495 | // custom checkbox in the viewer GUI. | 4495 | // custom checkbox in the viewer GUI. |
4496 | if (ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) | 4496 | if (ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) |
4497 | { | 4497 | { |
@@ -4507,7 +4507,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4507 | public bool IsBallJoint() | 4507 | public bool IsBallJoint() |
4508 | { | 4508 | { |
4509 | // For now, we use the NINJA naming scheme for identifying joints. | 4509 | // For now, we use the NINJA naming scheme for identifying joints. |
4510 | // In the future, we can support other joint specification schemes such as a | 4510 | // In the future, we can support other joint specification schemes such as a |
4511 | // custom checkbox in the viewer GUI. | 4511 | // custom checkbox in the viewer GUI. |
4512 | if (ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) | 4512 | if (ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) |
4513 | { | 4513 | { |
@@ -4523,7 +4523,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4523 | public bool IsJoint() | 4523 | public bool IsJoint() |
4524 | { | 4524 | { |
4525 | // For now, we use the NINJA naming scheme for identifying joints. | 4525 | // For now, we use the NINJA naming scheme for identifying joints. |
4526 | // In the future, we can support other joint specification schemes such as a | 4526 | // In the future, we can support other joint specification schemes such as a |
4527 | // custom checkbox in the viewer GUI. | 4527 | // custom checkbox in the viewer GUI. |
4528 | if (ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene != null && ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) | 4528 | if (ParentGroup.Scene != null && ParentGroup.Scene.PhysicsScene != null && ParentGroup.Scene.PhysicsScene.SupportsNINJAJoints) |
4529 | { | 4529 | { |
@@ -4616,8 +4616,8 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4616 | 4616 | ||
4617 | Stop(); | 4617 | Stop(); |
4618 | } | 4618 | } |
4619 | 4619 | ||
4620 | else | 4620 | else |
4621 | { | 4621 | { |
4622 | if (ParentGroup.Scene.CollidablePrims) | 4622 | if (ParentGroup.Scene.CollidablePrims) |
4623 | { | 4623 | { |
@@ -4649,7 +4649,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4649 | 4649 | ||
4650 | UpdatePhysicsSubscribedEvents(); | 4650 | UpdatePhysicsSubscribedEvents(); |
4651 | } | 4651 | } |
4652 | } | 4652 | } |
4653 | 4653 | ||
4654 | // and last in case we have a new actor and not building | 4654 | // and last in case we have a new actor and not building |
4655 | 4655 | ||
@@ -4658,7 +4658,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4658 | ParentGroup.HasGroupChanged = true; | 4658 | ParentGroup.HasGroupChanged = true; |
4659 | ScheduleFullUpdate(); | 4659 | ScheduleFullUpdate(); |
4660 | } | 4660 | } |
4661 | 4661 | ||
4662 | // m_log.DebugFormat("[SCENE OBJECT PART]: Updated PrimFlags on {0} {1} to {2}", Name, LocalId, Flags); | 4662 | // m_log.DebugFormat("[SCENE OBJECT PART]: Updated PrimFlags on {0} {1} to {2}", Name, LocalId, Flags); |
4663 | } | 4663 | } |
4664 | 4664 | ||
@@ -4671,10 +4671,10 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4671 | /// <param name="building">tells physics to delay full construction of object</param> | 4671 | /// <param name="building">tells physics to delay full construction of object</param> |
4672 | /// <param name="applyDynamics">applies velocities, force and torque</param> | 4672 | /// <param name="applyDynamics">applies velocities, force and torque</param> |
4673 | private void AddToPhysics(bool isPhysical, bool isPhantom, bool building, bool applyDynamics) | 4673 | private void AddToPhysics(bool isPhysical, bool isPhantom, bool building, bool applyDynamics) |
4674 | { | 4674 | { |
4675 | PhysicsActor pa; | 4675 | PhysicsActor pa; |
4676 | 4676 | ||
4677 | Vector3 velocity = Velocity; | 4677 | Vector3 velocity = Velocity; |
4678 | Vector3 rotationalVelocity = AngularVelocity;; | 4678 | Vector3 rotationalVelocity = AngularVelocity;; |
4679 | 4679 | ||
4680 | try | 4680 | try |
@@ -4695,7 +4695,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4695 | m_log.ErrorFormat("[SCENE]: caught exception meshing object {0}. Object set to phantom. e={1}", m_uuid, e); | 4695 | m_log.ErrorFormat("[SCENE]: caught exception meshing object {0}. Object set to phantom. e={1}", m_uuid, e); |
4696 | pa = null; | 4696 | pa = null; |
4697 | } | 4697 | } |
4698 | 4698 | ||
4699 | if (pa != null) | 4699 | if (pa != null) |
4700 | { | 4700 | { |
4701 | pa.SOPName = this.Name; // save object into the PhysActor so ODE internals know the joint/body info | 4701 | pa.SOPName = this.Name; // save object into the PhysActor so ODE internals know the joint/body info |
@@ -4709,7 +4709,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4709 | 4709 | ||
4710 | if(LocalId == ParentGroup.RootPart.LocalId) | 4710 | if(LocalId == ParentGroup.RootPart.LocalId) |
4711 | { | 4711 | { |
4712 | pa.LockAngularMotion(RotationAxisLocks); | 4712 | pa.LockAngularMotion(RotationAxisLocks); |
4713 | } | 4713 | } |
4714 | 4714 | ||
4715 | if (VolumeDetectActive) // change if not the default only | 4715 | if (VolumeDetectActive) // change if not the default only |
@@ -4722,7 +4722,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4722 | AddFlag(PrimFlags.CameraDecoupled); | 4722 | AddFlag(PrimFlags.CameraDecoupled); |
4723 | else | 4723 | else |
4724 | RemFlag(PrimFlags.CameraDecoupled); | 4724 | RemFlag(PrimFlags.CameraDecoupled); |
4725 | } | 4725 | } |
4726 | else | 4726 | else |
4727 | RemFlag(PrimFlags.CameraDecoupled); | 4727 | RemFlag(PrimFlags.CameraDecoupled); |
4728 | // we are going to tell rest of code about physics so better have this here | 4728 | // we are going to tell rest of code about physics so better have this here |
@@ -4752,8 +4752,8 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4752 | } | 4752 | } |
4753 | } | 4753 | } |
4754 | 4754 | ||
4755 | if (applyDynamics && LocalId == ParentGroup.RootPart.LocalId) | 4755 | if (applyDynamics && LocalId == ParentGroup.RootPart.LocalId) |
4756 | // do independent of isphysical so parameters get setted (at least some) | 4756 | // do independent of isphysical so parameters get setted (at least some) |
4757 | { | 4757 | { |
4758 | Velocity = velocity; | 4758 | Velocity = velocity; |
4759 | AngularVelocity = rotationalVelocity; | 4759 | AngularVelocity = rotationalVelocity; |
@@ -4941,8 +4941,8 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4941 | 4941 | ||
4942 | Primitive.TextureEntryFace fallbackNewFace = newTex.DefaultTexture; | 4942 | Primitive.TextureEntryFace fallbackNewFace = newTex.DefaultTexture; |
4943 | Primitive.TextureEntryFace fallbackOldFace = oldTex.DefaultTexture; | 4943 | Primitive.TextureEntryFace fallbackOldFace = oldTex.DefaultTexture; |
4944 | 4944 | ||
4945 | // On Incoming packets, sometimes newText.DefaultTexture is null. The assumption is that all | 4945 | // On Incoming packets, sometimes newText.DefaultTexture is null. The assumption is that all |
4946 | // other prim-sides are set, but apparently that's not always the case. Lets assume packet/data corruption at this point. | 4946 | // other prim-sides are set, but apparently that's not always the case. Lets assume packet/data corruption at this point. |
4947 | if (fallbackNewFace == null) | 4947 | if (fallbackNewFace == null) |
4948 | { | 4948 | { |
@@ -4958,7 +4958,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
4958 | // Materials capable viewers can send a ObjectImage packet | 4958 | // Materials capable viewers can send a ObjectImage packet |
4959 | // when nothing in TE has changed. MaterialID should be updated | 4959 | // when nothing in TE has changed. MaterialID should be updated |
4960 | // by the RenderMaterials CAP handler, so updating it here may cause a | 4960 | // by the RenderMaterials CAP handler, so updating it here may cause a |
4961 | // race condtion. Therefore, if no non-materials TE fields have changed, | 4961 | // race condtion. Therefore, if no non-materials TE fields have changed, |
4962 | // we should ignore any changes and not update Shape.TextureEntry | 4962 | // we should ignore any changes and not update Shape.TextureEntry |
4963 | 4963 | ||
4964 | bool otherFieldsChanged = false; | 4964 | bool otherFieldsChanged = false; |
@@ -5140,7 +5140,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
5140 | { | 5140 | { |
5141 | return m_forceMouselook; | 5141 | return m_forceMouselook; |
5142 | } | 5142 | } |
5143 | 5143 | ||
5144 | public override string ToString() | 5144 | public override string ToString() |
5145 | { | 5145 | { |
5146 | return String.Format("{0} {1} (parent {2}))", Name, UUID, ParentGroup); | 5146 | return String.Format("{0} {1} (parent {2}))", Name, UUID, ParentGroup); |
@@ -5157,7 +5157,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
5157 | && (ParentGroup.RootPart != this | 5157 | && (ParentGroup.RootPart != this |
5158 | || ParentGroup.AttachedAvatar != remoteClient.AgentId && ParentGroup.HasPrivateAttachmentPoint)) | 5158 | || ParentGroup.AttachedAvatar != remoteClient.AgentId && ParentGroup.HasPrivateAttachmentPoint)) |
5159 | return; | 5159 | return; |
5160 | 5160 | ||
5161 | // Causes this thread to dig into the Client Thread Data. | 5161 | // Causes this thread to dig into the Client Thread Data. |
5162 | // Remember your locking here! | 5162 | // Remember your locking here! |
5163 | remoteClient.SendEntityUpdate( | 5163 | remoteClient.SendEntityUpdate( |
@@ -5165,9 +5165,9 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
5165 | PrimUpdateFlags.Position | PrimUpdateFlags.Rotation | PrimUpdateFlags.Velocity | 5165 | PrimUpdateFlags.Position | PrimUpdateFlags.Rotation | PrimUpdateFlags.Velocity |
5166 | | PrimUpdateFlags.Acceleration | PrimUpdateFlags.AngularVelocity); | 5166 | | PrimUpdateFlags.Acceleration | PrimUpdateFlags.AngularVelocity); |
5167 | 5167 | ||
5168 | ParentGroup.Scene.StatsReporter.AddObjectUpdates(1); | 5168 | ParentGroup.Scene.StatsReporter.AddObjectUpdates(1); |
5169 | } | 5169 | } |
5170 | 5170 | ||
5171 | public void AddScriptLPS(int count) | 5171 | public void AddScriptLPS(int count) |
5172 | { | 5172 | { |
5173 | ParentGroup.AddScriptLPS(count); | 5173 | ParentGroup.AddScriptLPS(count); |
@@ -5233,7 +5233,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter | |||
5233 | { | 5233 | { |
5234 | PermissionsUtil.LogPermissions(Name, message, BaseMask, OwnerMask, NextOwnerMask); | 5234 | PermissionsUtil.LogPermissions(Name, message, BaseMask, OwnerMask, NextOwnerMask); |
5235 | } | 5235 | } |
5236 | 5236 | ||
5237 | public void ApplyNextOwnerPermissions() | 5237 | public void ApplyNextOwnerPermissions() |
5238 | { | 5238 | { |
5239 | // Export needs to be preserved in the base and everyone | 5239 | // Export needs to be preserved in the base and everyone |