aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAdam Frisby2009-05-12 21:21:33 +0000
committerAdam Frisby2009-05-12 21:21:33 +0000
commit3a28f748d5cb586a5401b9b4d1f2f108af79ace1 (patch)
tree30604d290d5bb0389db40202b0793a9cda586820
parent* EventManager's OnNewPresence event now fires correctly again. (diff)
downloadopensim-SC-3a28f748d5cb586a5401b9b4d1f2f108af79ace1.zip
opensim-SC-3a28f748d5cb586a5401b9b4d1f2f108af79ace1.tar.gz
opensim-SC-3a28f748d5cb586a5401b9b4d1f2f108af79ace1.tar.bz2
opensim-SC-3a28f748d5cb586a5401b9b4d1f2f108af79ace1.tar.xz
* Adds ScenePresence.TeleportWithMomentum - same as .Teleport, but preserves velocity.
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs18
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs2
2 files changed, 19 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 8fd4b47..8950942 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1015,6 +1015,24 @@ namespace OpenSim.Region.Framework.Scenes
1015 SendTerseUpdateToAllClients(); 1015 SendTerseUpdateToAllClients();
1016 } 1016 }
1017 1017
1018 public void TeleportWithMomentum(Vector3 pos)
1019 {
1020 bool isFlying = false;
1021 if (m_physicsActor != null)
1022 isFlying = m_physicsActor.Flying;
1023
1024 RemoveFromPhysicalScene();
1025 AbsolutePosition = pos;
1026 AddToPhysicalScene(isFlying);
1027 if (m_appearance != null)
1028 {
1029 if (m_appearance.AvatarHeight > 0)
1030 SetHeight(m_appearance.AvatarHeight);
1031 }
1032
1033 SendTerseUpdateToAllClients();
1034 }
1035
1018 /// <summary> 1036 /// <summary>
1019 /// 1037 ///
1020 /// </summary> 1038 /// </summary>
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs
index 0f2076e..8fed89c 100644
--- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs
@@ -61,7 +61,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
61 public Vector3 WorldPosition 61 public Vector3 WorldPosition
62 { 62 {
63 get { return GetSP().AbsolutePosition; } 63 get { return GetSP().AbsolutePosition; }
64 set { GetSP().AbsolutePosition = value; } 64 set { GetSP().TeleportWithMomentum(value); }
65 } 65 }
66 } 66 }
67} 67}