diff options
author | Adam Frisby | 2009-05-12 21:21:33 +0000 |
---|---|---|
committer | Adam Frisby | 2009-05-12 21:21:33 +0000 |
commit | 3a28f748d5cb586a5401b9b4d1f2f108af79ace1 (patch) | |
tree | 30604d290d5bb0389db40202b0793a9cda586820 /OpenSim/Region/Framework | |
parent | * EventManager's OnNewPresence event now fires correctly again. (diff) | |
download | opensim-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.
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 18 |
1 files changed, 18 insertions, 0 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> |