diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 35 |
2 files changed, 30 insertions, 15 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index df125aa..3a45e23 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -706,7 +706,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
706 | { | 706 | { |
707 | SubscribeToClientEvents(client); | 707 | SubscribeToClientEvents(client); |
708 | m_estateManager.sendRegionHandshake(client); | 708 | m_estateManager.sendRegionHandshake(client); |
709 | |||
709 | CreateAndAddScenePresence(client, child); | 710 | CreateAndAddScenePresence(client, child); |
711 | |||
710 | m_LandManager.sendParcelOverlay(client); | 712 | m_LandManager.sendParcelOverlay(client); |
711 | commsManager.UserProfiles.AddNewUser(client.AgentId); | 713 | commsManager.UserProfiles.AddNewUser(client.AgentId); |
712 | commsManager.TransactionsManager.AddUser(client.AgentId); | 714 | commsManager.TransactionsManager.AddUser(client.AgentId); |
@@ -791,13 +793,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
791 | MainLog.Instance.Verbose(RegionInfo.RegionName + ": Creating new root agent."); | 793 | MainLog.Instance.Verbose(RegionInfo.RegionName + ": Creating new root agent."); |
792 | MainLog.Instance.Verbose(RegionInfo.RegionName + ": Adding Physical agent."); | 794 | MainLog.Instance.Verbose(RegionInfo.RegionName + ": Adding Physical agent."); |
793 | 795 | ||
794 | PhysicsVector pVec = | 796 | newAvatar.AddToPhysicalScene( ); |
795 | new PhysicsVector(newAvatar.AbsolutePosition.X, newAvatar.AbsolutePosition.Y, | ||
796 | newAvatar.AbsolutePosition.Z); | ||
797 | lock (m_syncRoot) | ||
798 | { | ||
799 | newAvatar.PhysActor = phyScene.AddAvatar(pVec); | ||
800 | } | ||
801 | } | 797 | } |
802 | 798 | ||
803 | lock (Entities) | 799 | lock (Entities) |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 64c6eaa..811c962 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -265,17 +265,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
265 | } | 265 | } |
266 | } | 266 | } |
267 | 267 | ||
268 | /// <summary> | ||
269 | /// | ||
270 | /// </summary> | ||
271 | /// <param name="pos"></param> | ||
272 | public void MakeAvatar(LLVector3 pos, bool isFlying) | 268 | public void MakeAvatar(LLVector3 pos, bool isFlying) |
273 | { | 269 | { |
274 | //this.childAvatar = false; | ||
275 | AbsolutePosition = pos; | ||
276 | _physActor.Flying = isFlying; | ||
277 | newAvatar = true; | 270 | newAvatar = true; |
278 | childAgent = false; | 271 | childAgent = false; |
272 | |||
273 | AbsolutePosition = pos; | ||
274 | |||
275 | AddToPhysicalScene( ); | ||
276 | _physActor.Flying = isFlying; | ||
277 | |||
278 | |||
279 | m_scene.SendAllSceneObjectsToClient(this); | 279 | m_scene.SendAllSceneObjectsToClient(this); |
280 | } | 280 | } |
281 | 281 | ||
@@ -283,9 +283,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
283 | { | 283 | { |
284 | Velocity = new LLVector3(0, 0, 0); | 284 | Velocity = new LLVector3(0, 0, 0); |
285 | childAgent = true; | 285 | childAgent = true; |
286 | |||
287 | RemoveFromPhysicalScene(); | ||
288 | |||
286 | //this.Pos = new LLVector3(128, 128, 70); | 289 | //this.Pos = new LLVector3(128, 128, 70); |
287 | } | 290 | } |
288 | 291 | ||
292 | private void RemoveFromPhysicalScene() | ||
293 | { | ||
294 | m_scene.phyScene.RemoveAvatar( this.PhysActor ); | ||
295 | } | ||
296 | |||
289 | /// <summary> | 297 | /// <summary> |
290 | /// | 298 | /// |
291 | /// </summary> | 299 | /// </summary> |
@@ -832,7 +840,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
832 | 840 | ||
833 | public override void SetText(string text, Vector3 color, double alpha) | 841 | public override void SetText(string text, Vector3 color, double alpha) |
834 | { | 842 | { |
835 | throw new Exception("The method or operation is not implemented."); | 843 | throw new Exception("Can't set Text on avatar."); |
844 | } | ||
845 | |||
846 | public void AddToPhysicalScene( ) | ||
847 | { | ||
848 | PhysicsScene scene = m_scene.phyScene; | ||
849 | |||
850 | PhysicsVector pVec = | ||
851 | new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y, | ||
852 | AbsolutePosition.Z); | ||
853 | |||
854 | _physActor = scene.AddAvatar(pVec); | ||
836 | } | 855 | } |
837 | } | 856 | } |
838 | } \ No newline at end of file | 857 | } \ No newline at end of file |