diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 22ad3c0..0761bbb 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -78,10 +78,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
78 | { | 78 | { |
79 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 79 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
80 | 80 | ||
81 | // ~ScenePresence() | 81 | public int MaxNumberAttachments { get; } = 38; // per viewers limit |
82 | // { | 82 | |
83 | // m_log.DebugFormat("[SCENE PRESENCE]: Destructor called on {0}", Name); | 83 | // ~ScenePresence() |
84 | // } | 84 | // { |
85 | // m_log.DebugFormat("[SCENE PRESENCE]: Destructor called on {0}", Name); | ||
86 | // } | ||
85 | 87 | ||
86 | public void TriggerScenePresenceUpdated() | 88 | public void TriggerScenePresenceUpdated() |
87 | { | 89 | { |
@@ -303,7 +305,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
303 | public bool Flying | 305 | public bool Flying |
304 | { | 306 | { |
305 | get { return PhysicsActor != null && PhysicsActor.Flying; } | 307 | get { return PhysicsActor != null && PhysicsActor.Flying; } |
306 | set { PhysicsActor.Flying = value; } | 308 | set |
309 | { | ||
310 | if(PhysicsActor != null) | ||
311 | PhysicsActor.Flying = value; | ||
312 | } | ||
307 | } | 313 | } |
308 | 314 | ||
309 | public bool IsColliding | 315 | public bool IsColliding |
@@ -5406,6 +5412,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
5406 | bakedModule.UpdateMeshAvatar(m_uuid); | 5412 | bakedModule.UpdateMeshAvatar(m_uuid); |
5407 | } | 5413 | } |
5408 | 5414 | ||
5415 | public int GetAttachmentsCount() | ||
5416 | { | ||
5417 | return m_attachments.Count; | ||
5418 | } | ||
5419 | |||
5420 | |||
5409 | /// <summary> | 5421 | /// <summary> |
5410 | /// Get all the presence's attachments. | 5422 | /// Get all the presence's attachments. |
5411 | /// </summary> | 5423 | /// </summary> |
@@ -6605,10 +6617,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
6605 | if (m_lastColliders.Count == 0) | 6617 | if (m_lastColliders.Count == 0) |
6606 | return; // nothing to do | 6618 | return; // nothing to do |
6607 | 6619 | ||
6608 | foreach (uint localID in m_lastColliders) | 6620 | for(int i = 0; i < m_lastColliders.Count; ++i) |
6609 | { | 6621 | endedColliders.Add(m_lastColliders[i]); |
6610 | endedColliders.Add(localID); | 6622 | |
6611 | } | ||
6612 | m_lastColliders.Clear(); | 6623 | m_lastColliders.Clear(); |
6613 | } | 6624 | } |
6614 | else | 6625 | else |
@@ -6668,9 +6679,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
6668 | if (soundinfolist.Count > 0) | 6679 | if (soundinfolist.Count > 0) |
6669 | CollisionSounds.AvatarCollisionSound(this, soundinfolist); | 6680 | CollisionSounds.AvatarCollisionSound(this, soundinfolist); |
6670 | } | 6681 | } |
6671 | 6682 | List<SceneObjectGroup> attachements = GetAttachments(); | |
6672 | foreach (SceneObjectGroup att in GetAttachments()) | 6683 | for (int i = 0; i< attachements.Count; ++i) |
6673 | { | 6684 | { |
6685 | SceneObjectGroup att = attachements[i]; | ||
6674 | SendCollisionEvent(att, scriptEvents.collision_start, startedColliders, m_scene.EventManager.TriggerScriptCollidingStart); | 6686 | SendCollisionEvent(att, scriptEvents.collision_start, startedColliders, m_scene.EventManager.TriggerScriptCollidingStart); |
6675 | SendCollisionEvent(att, scriptEvents.collision , m_lastColliders , m_scene.EventManager.TriggerScriptColliding); | 6687 | SendCollisionEvent(att, scriptEvents.collision , m_lastColliders , m_scene.EventManager.TriggerScriptColliding); |
6676 | SendCollisionEvent(att, scriptEvents.collision_end , endedColliders , m_scene.EventManager.TriggerScriptCollidingEnd); | 6688 | SendCollisionEvent(att, scriptEvents.collision_end , endedColliders , m_scene.EventManager.TriggerScriptCollidingEnd); |