diff options
author | Teravus Ovares | 2008-02-12 07:32:32 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-02-12 07:32:32 +0000 |
commit | e5ede36f0c8974dc81d1755d16513641aff535c2 (patch) | |
tree | ea29d39f83ceb72b61d98184aab08c90ee3d7b10 /OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |
parent | * A bunch of updates to make things more smooth. (diff) | |
download | opensim-SC-e5ede36f0c8974dc81d1755d16513641aff535c2.zip opensim-SC-e5ede36f0c8974dc81d1755d16513641aff535c2.tar.gz opensim-SC-e5ede36f0c8974dc81d1755d16513641aff535c2.tar.bz2 opensim-SC-e5ede36f0c8974dc81d1755d16513641aff535c2.tar.xz |
* Physical prim cross borders and continue from where the left off on the other side now, assuming the region on the other side has physical prim enabled.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 7900900..4f5eefe 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -405,7 +405,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
405 | 405 | ||
406 | return m_velocity; | 406 | return m_velocity; |
407 | } | 407 | } |
408 | set { m_velocity = value; } | 408 | set { |
409 | |||
410 | m_velocity = value; | ||
411 | if (PhysActor != null) | ||
412 | { | ||
413 | if (PhysActor.IsPhysical) | ||
414 | { | ||
415 | PhysActor.Velocity = new PhysicsVector(value.X, value.Y, value.Z); | ||
416 | m_parentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); | ||
417 | } | ||
418 | } | ||
419 | |||
420 | } | ||
409 | } | 421 | } |
410 | 422 | ||
411 | public LLVector3 RotationalVelocity | 423 | public LLVector3 RotationalVelocity |
@@ -742,6 +754,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
742 | { | 754 | { |
743 | XmlSerializer serializer = new XmlSerializer(typeof (SceneObjectPart)); | 755 | XmlSerializer serializer = new XmlSerializer(typeof (SceneObjectPart)); |
744 | SceneObjectPart newobject = (SceneObjectPart) serializer.Deserialize(xmlReader); | 756 | SceneObjectPart newobject = (SceneObjectPart) serializer.Deserialize(xmlReader); |
757 | |||
745 | return newobject; | 758 | return newobject; |
746 | } | 759 | } |
747 | 760 | ||
@@ -1776,6 +1789,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
1776 | 1789 | ||
1777 | public void PhysicsRequestingTerseUpdate() | 1790 | public void PhysicsRequestingTerseUpdate() |
1778 | { | 1791 | { |
1792 | if (PhysActor != null) | ||
1793 | { | ||
1794 | LLVector3 newpos = new LLVector3(PhysActor.Position.GetBytes(), 0); | ||
1795 | if (newpos.X > 257f || newpos.X < -1f || newpos.Y > 257f || newpos.Y < -1f) | ||
1796 | { | ||
1797 | m_parentGroup.AbsolutePosition = newpos; | ||
1798 | return; | ||
1799 | } | ||
1800 | |||
1801 | } | ||
1779 | ScheduleTerseUpdate(); | 1802 | ScheduleTerseUpdate(); |
1780 | 1803 | ||
1781 | //SendTerseUpdateToAllClients(); | 1804 | //SendTerseUpdateToAllClients(); |