diff options
Diffstat (limited to 'OpenSim')
4 files changed, 24 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EntityBase.cs b/OpenSim/Region/Framework/Scenes/EntityBase.cs index 213431a..320b904 100644 --- a/OpenSim/Region/Framework/Scenes/EntityBase.cs +++ b/OpenSim/Region/Framework/Scenes/EntityBase.cs | |||
@@ -26,8 +26,10 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Reflection; | ||
29 | using System.Runtime.Serialization; | 30 | using System.Runtime.Serialization; |
30 | using System.Security.Permissions; | 31 | using System.Security.Permissions; |
32 | using log4net; | ||
31 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
32 | using OpenMetaverse; | 34 | using OpenMetaverse; |
33 | 35 | ||
@@ -35,6 +37,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
35 | { | 37 | { |
36 | public abstract class EntityBase : ISceneEntity | 38 | public abstract class EntityBase : ISceneEntity |
37 | { | 39 | { |
40 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
41 | |||
38 | /// <summary> | 42 | /// <summary> |
39 | /// The scene to which this entity belongs | 43 | /// The scene to which this entity belongs |
40 | /// </summary> | 44 | /// </summary> |
@@ -71,12 +75,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
71 | protected Vector3 m_pos; | 75 | protected Vector3 m_pos; |
72 | 76 | ||
73 | /// <summary> | 77 | /// <summary> |
74 | /// | 78 | /// Absolute position of this entity in a scene. |
75 | /// </summary> | 79 | /// </summary> |
76 | public virtual Vector3 AbsolutePosition | 80 | public virtual Vector3 AbsolutePosition |
77 | { | 81 | { |
78 | get { return m_pos; } | 82 | get { return m_pos; } |
79 | set { m_pos = value; } | 83 | set |
84 | { | ||
85 | m_pos = value; | ||
86 | } | ||
80 | } | 87 | } |
81 | 88 | ||
82 | protected Vector3 m_velocity; | 89 | protected Vector3 m_velocity; |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 5414693..97722b7 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -804,7 +804,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
804 | if (av.LinkedPrim == m_uuid) | 804 | if (av.LinkedPrim == m_uuid) |
805 | { | 805 | { |
806 | Vector3 offset = (m_offsetPosition - oldpos); | 806 | Vector3 offset = (m_offsetPosition - oldpos); |
807 | av.OffsetPosition += offset; | 807 | av.AbsolutePosition += offset; |
808 | av.SendAvatarDataToAllAgents(); | 808 | av.SendAvatarDataToAllAgents(); |
809 | } | 809 | } |
810 | } | 810 | } |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index fa6945c..712ec70 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -492,7 +492,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
492 | PhysicsActor actor = m_physicsActor; | 492 | PhysicsActor actor = m_physicsActor; |
493 | // if (actor != null) | 493 | // if (actor != null) |
494 | if ((actor != null) && (m_parentID == 0)) // KF Do NOT update m_pos here if Av is sitting! | 494 | if ((actor != null) && (m_parentID == 0)) // KF Do NOT update m_pos here if Av is sitting! |
495 | { | ||
495 | m_pos = actor.Position; | 496 | m_pos = actor.Position; |
497 | } | ||
496 | else | 498 | else |
497 | { | 499 | { |
498 | // Obtain the correct position of a seated avatar. | 500 | // Obtain the correct position of a seated avatar. |
@@ -540,16 +542,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
540 | } | 542 | } |
541 | } | 543 | } |
542 | 544 | ||
543 | if (m_parentID == 0) // KF Do NOT update m_pos here if Av is sitting! | 545 | // Changed this to update unconditionally to make npose work |
546 | // if (m_parentID == 0) // KF Do NOT update m_pos here if Av is sitting! | ||
544 | m_pos = value; | 547 | m_pos = value; |
545 | m_parentPosition = Vector3.Zero; | 548 | m_parentPosition = Vector3.Zero; |
549 | |||
550 | // m_log.DebugFormat( | ||
551 | // "[ENTITY BASE]: In {0} set AbsolutePosition of {1} to {2}", | ||
552 | // Scene.RegionInfo.RegionName, Name, m_pos); | ||
546 | } | 553 | } |
547 | } | 554 | } |
548 | 555 | ||
549 | public Vector3 OffsetPosition | 556 | public Vector3 OffsetPosition |
550 | { | 557 | { |
551 | get { return m_pos; } | 558 | get { return m_pos; } |
552 | set { m_pos = value; } | ||
553 | } | 559 | } |
554 | 560 | ||
555 | /// <summary> | 561 | /// <summary> |
@@ -582,6 +588,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
582 | } | 588 | } |
583 | 589 | ||
584 | m_velocity = value; | 590 | m_velocity = value; |
591 | |||
592 | // m_log.DebugFormat( | ||
593 | // "[SCENE PRESENCE]: In {0} set velocity of {1} to {2}", | ||
594 | // Scene.RegionInfo.RegionName, Name, m_velocity); | ||
585 | } | 595 | } |
586 | } | 596 | } |
587 | 597 | ||
@@ -4340,4 +4350,4 @@ namespace OpenSim.Region.Framework.Scenes | |||
4340 | } | 4350 | } |
4341 | } | 4351 | } |
4342 | } | 4352 | } |
4343 | } \ No newline at end of file | 4353 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 769c84e..4f21c67 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -7481,7 +7481,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7481 | return; | 7481 | return; |
7482 | LSL_Vector v; | 7482 | LSL_Vector v; |
7483 | v = rules.GetVector3Item(idx++); | 7483 | v = rules.GetVector3Item(idx++); |
7484 | av.OffsetPosition = new Vector3((float)v.x, (float)v.y, (float)v.z); | 7484 | av.AbsolutePosition = new Vector3((float)v.x, (float)v.y, (float)v.z); |
7485 | av.SendAvatarDataToAllAgents(); | 7485 | av.SendAvatarDataToAllAgents(); |
7486 | 7486 | ||
7487 | break; | 7487 | break; |