diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 6bda61e..447a4fb 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -1724,11 +1724,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1724 | { | 1724 | { |
1725 | part.UpdateOffSet(new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z)); | 1725 | part.UpdateOffSet(new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z)); |
1726 | } | 1726 | } |
1727 | else | 1727 | else if (part.ParentGroup.RootPart == part) |
1728 | { | 1728 | { |
1729 | SceneObjectGroup parent = part.ParentGroup; | 1729 | SceneObjectGroup parent = part.ParentGroup; |
1730 | parent.UpdateGroupPosition(new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z)); | 1730 | parent.UpdateGroupPosition(new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z)); |
1731 | } | 1731 | } |
1732 | else | ||
1733 | { | ||
1734 | part.OffsetPosition = new Vector3((float)targetPos.x, (float)targetPos.y, (float)targetPos.z); | ||
1735 | SceneObjectGroup parent = part.ParentGroup; | ||
1736 | parent.HasGroupChanged = true; | ||
1737 | parent.ScheduleGroupForTerseUpdate(); | ||
1738 | } | ||
1732 | } | 1739 | } |
1733 | 1740 | ||
1734 | public LSL_Vector llGetPos() | 1741 | public LSL_Vector llGetPos() |