From 596b3690fc59ce90efb5132d5c35a46dbd91c7d7 Mon Sep 17 00:00:00 2001
From: MW
Date: Thu, 21 Jun 2007 16:13:06 +0000
Subject: Some refactoring.
---
OpenSim/OpenSim.Region/OpenSim.Region.csproj | 7 +-
OpenSim/OpenSim.Region/OpenSim.Region.dll.build | 3 +-
OpenSim/OpenSim.Region/Scenes/Entity.cs | 4 +-
.../OpenSim.Region/Scenes/IScenePresenceBody.cs | 19 ++
OpenSim/OpenSim.Region/Scenes/Scene.cs | 4 +-
.../OpenSim.Region/Scenes/ScenePresence.Body.cs | 90 ++++++
.../OpenSim.Region/Scenes/ScenePresence.Update.cs | 212 --------------
OpenSim/OpenSim.Region/Scenes/ScenePresence.cs | 313 +++++++++++++++++----
OpenSim/OpenSim.RegionServer/ClientView.API.cs | 4 +-
9 files changed, 373 insertions(+), 283 deletions(-)
create mode 100644 OpenSim/OpenSim.Region/Scenes/IScenePresenceBody.cs
create mode 100644 OpenSim/OpenSim.Region/Scenes/ScenePresence.Body.cs
delete mode 100644 OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs
(limited to 'OpenSim')
diff --git a/OpenSim/OpenSim.Region/OpenSim.Region.csproj b/OpenSim/OpenSim.Region/OpenSim.Region.csproj
index a531e5c..7ab7ed1 100644
--- a/OpenSim/OpenSim.Region/OpenSim.Region.csproj
+++ b/OpenSim/OpenSim.Region/OpenSim.Region.csproj
@@ -145,6 +145,9 @@
Code
+
+ Code
+
Code
@@ -166,10 +169,10 @@
Code
-
+
Code
-
+
Code
diff --git a/OpenSim/OpenSim.Region/OpenSim.Region.dll.build b/OpenSim/OpenSim.Region/OpenSim.Region.dll.build
index e277ec7..4a8ca9e 100644
--- a/OpenSim/OpenSim.Region/OpenSim.Region.dll.build
+++ b/OpenSim/OpenSim.Region/OpenSim.Region.dll.build
@@ -14,6 +14,7 @@
+
@@ -21,8 +22,8 @@
+
-
diff --git a/OpenSim/OpenSim.Region/Scenes/Entity.cs b/OpenSim/OpenSim.Region/Scenes/Entity.cs
index bd9309b..f8754f5 100644
--- a/OpenSim/OpenSim.Region/Scenes/Entity.cs
+++ b/OpenSim/OpenSim.Region/Scenes/Entity.cs
@@ -156,11 +156,11 @@ namespace OpenSim.Region.Scenes
///
///
///
- public virtual void addForces()
+ public virtual void updateMovement()
{
foreach (Entity child in children)
{
- child.addForces();
+ child.updateMovement();
}
}
diff --git a/OpenSim/OpenSim.Region/Scenes/IScenePresenceBody.cs b/OpenSim/OpenSim.Region/Scenes/IScenePresenceBody.cs
new file mode 100644
index 0000000..65077e6
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/IScenePresenceBody.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Physics.Manager;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Region.Scenes
+{
+ public interface IScenePresenceBody
+ {
+ void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation);
+ void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam);
+ void SendOurAppearance(IClientAPI OurClient);
+ void SendAppearanceToOtherAgent(ScenePresence avatarInfo);
+ }
+}
diff --git a/OpenSim/OpenSim.Region/Scenes/Scene.cs b/OpenSim/OpenSim.Region/Scenes/Scene.cs
index 91f07c3..7716410 100644
--- a/OpenSim/OpenSim.Region/Scenes/Scene.cs
+++ b/OpenSim/OpenSim.Region/Scenes/Scene.cs
@@ -175,7 +175,7 @@ namespace OpenSim.Region.Scenes
foreach (libsecondlife.LLUUID UUID in Entities.Keys)
{
- Entities[UUID].addForces();
+ Entities[UUID].updateMovement();
}
lock (this.m_syncRoot)
@@ -731,7 +731,7 @@ namespace OpenSim.Region.Scenes
{
if (this.Avatars.ContainsKey(agentID))
{
- this.Avatars[agentID].UpGradeAvatar(position);
+ this.Avatars[agentID].MakeAvatar(position);
}
}
}
diff --git a/OpenSim/OpenSim.Region/Scenes/ScenePresence.Body.cs b/OpenSim/OpenSim.Region/Scenes/ScenePresence.Body.cs
new file mode 100644
index 0000000..24278da
--- /dev/null
+++ b/OpenSim/OpenSim.Region/Scenes/ScenePresence.Body.cs
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the OpenSim Project nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Physics.Manager;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Region.Scenes
+{
+ partial class ScenePresence
+ {
+ public class Avatar : IScenePresenceBody
+ {
+ public Avatar()
+ {
+
+ }
+
+ public void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation)
+ {
+ }
+
+ public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
+ {
+ }
+
+ public void SendOurAppearance(IClientAPI OurClient)
+ {
+ }
+
+ public void SendAppearanceToOtherAgent(ScenePresence avatarInfo)
+ {
+ }
+ }
+
+ public class ChildAgent : IScenePresenceBody //is a ghost
+ {
+ public ChildAgent()
+ {
+
+ }
+
+ public void processMovement(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation)
+ {
+ }
+
+ public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
+ {
+ }
+
+ public void SendOurAppearance(IClientAPI OurClient)
+ {
+ }
+
+ public void SendAppearanceToOtherAgent(ScenePresence avatarInfo)
+ {
+ }
+ }
+ }
+
+}
diff --git a/OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs b/OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs
deleted file mode 100644
index b14db31..0000000
--- a/OpenSim/OpenSim.Region/Scenes/ScenePresence.Update.cs
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-* * Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-* * Redistributions in binary form must reproduce the above copyright
-* notice, this list of conditions and the following disclaimer in the
-* documentation and/or other materials provided with the distribution.
-* * Neither the name of the OpenSim Project nor the
-* names of its contributors may be used to endorse or promote products
-* derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-*/
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using libsecondlife.Packets;
-using OpenSim.Physics.Manager;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Region.Scenes
-{
- partial class ScenePresence
- {
- ///
- ///
- ///
- public override void update()
- {
- if (this.childAvatar == false)
- {
- if (this.newForce)
- {
- this.SendTerseUpdateToALLClients();
- _updateCount = 0;
- }
- else if (movementflag != 0)
- {
- _updateCount++;
- if (_updateCount > 3)
- {
- this.SendTerseUpdateToALLClients();
- _updateCount = 0;
- }
- }
-
- this.CheckForBorderCrossing();
- }
- }
-
- ///
- ///
- ///
- ///
- public void SendUpdateToOtherClient(ScenePresence remoteAvatar)
- {
-
- }
-
- ///
- ///
- ///
- public void SendInitialPosition()
- {
- this.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, this.firstname, this.lastname, this.uuid, this.LocalId, this.Pos);
- if (this.newAvatar)
- {
- this.m_world.InformClientOfNeighbours(this.ControllingClient);
- this.newAvatar = false;
- }
- }
-
- ///
- ///
- ///
- ///
- public void SendOurAppearance(IClientAPI OurClient)
- {
- this.ControllingClient.SendWearables(this.Wearables);
- }
-
- ///
- ///
- ///
- ///
- public void SendAppearanceToOtherAgent(ScenePresence avatarInfo)
- {
-
- }
-
- ///
- ///
- ///
- ///
- ///
- public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
- {
-
- }
-
- ///
- ///
- ///
- public void StopMovement()
- {
-
- }
-
- ///
- ///
- ///
- ///
- ///
- public void SendAnimPack(LLUUID animID, int seq)
- {
-
-
- }
-
- ///
- ///
- ///
- public void SendAnimPack()
- {
-
- }
-
- ///
- ///
- ///
- protected void CheckForBorderCrossing()
- {
- LLVector3 pos2 = this.Pos;
- LLVector3 vel = this.Velocity;
-
- float timeStep = 0.2f;
- pos2.X = pos2.X + (vel.X * timeStep);
- pos2.Y = pos2.Y + (vel.Y * timeStep);
- pos2.Z = pos2.Z + (vel.Z * timeStep);
-
- if ((pos2.X < 0) || (pos2.X > 256))
- {
- this.CrossToNewRegion();
- }
-
- if ((pos2.Y < 0) || (pos2.Y > 256))
- {
- this.CrossToNewRegion();
- }
- }
-
- ///
- ///
- ///
- protected void CrossToNewRegion()
- {
- LLVector3 pos = this.Pos;
- LLVector3 newpos = new LLVector3(pos.X, pos.Y, pos.Z);
- uint neighbourx = this.m_regionInfo.RegionLocX;
- uint neighboury = this.m_regionInfo.RegionLocY;
-
- if (pos.X < 2)
- {
- neighbourx -= 1;
- newpos.X = 254;
- }
- if (pos.X > 253)
- {
- neighbourx += 1;
- newpos.X = 1;
- }
- if (pos.Y < 2)
- {
- neighboury -= 1;
- newpos.Y = 254;
- }
- if (pos.Y > 253)
- {
- neighboury += 1;
- newpos.Y = 1;
- }
-
- LLVector3 vel = this.velocity;
- ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * 256), (uint)(neighboury* 256));
- RegionInfo neighbourRegion = this.m_world.RequestNeighbouringRegionInfo(neighbourHandle);
- if (neighbourRegion != null)
- {
- this.m_world.InformNeighbourOfCrossing(neighbourHandle, this.ControllingClient.AgentId, newpos);
- this.DownGradeAvatar();
- this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, System.Net.IPAddress.Parse(neighbourRegion.IPListenAddr), (ushort)neighbourRegion.IPListenPort);
-
- }
- }
-
- }
-}
diff --git a/OpenSim/OpenSim.Region/Scenes/ScenePresence.cs b/OpenSim/OpenSim.Region/Scenes/ScenePresence.cs
index e22528a..1255606 100644
--- a/OpenSim/OpenSim.Region/Scenes/ScenePresence.cs
+++ b/OpenSim/OpenSim.Region/Scenes/ScenePresence.cs
@@ -48,7 +48,6 @@ namespace OpenSim.Region.Scenes
public IClientAPI ControllingClient;
public LLUUID current_anim;
public int anim_seq;
- private static libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate;
private bool updateflag = false;
private byte movementflag = 0;
private List forcesList = new List();
@@ -59,11 +58,31 @@ namespace OpenSim.Region.Scenes
private AvatarWearable[] Wearables;
private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
private ulong m_regionHandle;
- private bool childAvatar = false;
+ private bool childAgent = false;
private bool newForce = false;
private bool newAvatar = false;
+ private IScenePresenceBody m_body;
protected RegionInfo m_regionInfo;
+
+ #region Properties
+ ///
+ ///
+ ///
+ public PhysicsActor PhysActor
+ {
+ set
+ {
+ this._physActor = value;
+ }
+ get
+ {
+ return _physActor;
+ }
+ }
+ #endregion
+
+ #region Constructor(s)
///
///
///
@@ -99,38 +118,25 @@ namespace OpenSim.Region.Scenes
ControllingClient.OnRequestWearables += this.SendOurAppearance;
//ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance);
ControllingClient.OnCompleteMovementToRegion += this.CompleteMovement;
- ControllingClient.OnCompleteMovementToRegion += this.SendInitialPosition;
+ ControllingClient.OnCompleteMovementToRegion += this.SendInitialData;
ControllingClient.OnAgentUpdate += this.HandleAgentUpdate;
// ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack);
// ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange);
//ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement);
-
- }
- ///
- ///
- ///
- public PhysicsActor PhysActor
- {
- set
- {
- this._physActor = value;
- }
- get
- {
- return _physActor;
- }
}
+ #endregion
+ #region Status Methods
///
- ///
+ /// Not Used, most likely can be deleted
///
///
public void ChildStatusChange(bool status)
{
- this.childAvatar = status;
+ this.childAgent = status;
- if (this.childAvatar == true)
+ if (this.childAgent == true)
{
this.Velocity = new LLVector3(0, 0, 0);
this.Pos = new LLVector3(128, 128, 70);
@@ -142,18 +148,19 @@ namespace OpenSim.Region.Scenes
///
///
///
- public void UpGradeAvatar(LLVector3 pos)
+ public void MakeAvatar(LLVector3 pos)
{
//this.childAvatar = false;
this.Pos = pos;
this.newAvatar = true;
+ this.childAgent = false;
}
- protected void DownGradeAvatar()
+ protected void MakeChildAgent()
{
this.Velocity = new LLVector3(0, 0, 0);
this.Pos = new LLVector3(128, 128, 70);
- this.childAvatar = true;
+ this.childAgent = true;
}
///
@@ -169,46 +176,21 @@ namespace OpenSim.Region.Scenes
///
///
///
- public override void addForces()
+ public void StopMovement()
{
- newForce = false;
- lock (this.forcesList)
- {
- if (this.forcesList.Count > 0)
- {
- for (int i = 0; i < this.forcesList.Count; i++)
- {
- NewForce force = this.forcesList[i];
-
- this.updateflag = true;
- this.Velocity = new LLVector3(force.X, force.Y, force.Z);
- this.newForce = true;
- }
- for (int i = 0; i < this.forcesList.Count; i++)
- {
- this.forcesList.RemoveAt(0);
- }
- }
- }
- }
- public void SendTerseUpdateToClient(IClientAPI RemoteClient)
- {
- LLVector3 pos = this.Pos;
- LLVector3 vel = this.Velocity;
- RemoteClient.SendAvatarTerseUpdate(this.m_regionHandle, 64096, this.LocalId, new LLVector3(pos.X, pos.Y, pos.Z), new LLVector3(vel.X, vel.Y, vel.Z));
}
+ #endregion
+ #region Event Handlers
///
///
///
- public void SendTerseUpdateToALLClients()
+ ///
+ ///
+ public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam)
{
- List avatars = this.m_world.RequestAvatarList();
- for (int i = 0; i < avatars.Count; i++)
- {
- this.SendTerseUpdateToClient(avatars[i].ControllingClient);
- }
+
}
///
@@ -222,9 +204,9 @@ namespace OpenSim.Region.Scenes
look = new LLVector3(0.99f, 0.042f, 0);
}
this.ControllingClient.MoveAgentIntoRegion(m_regionInfo, Pos, look);
- if (this.childAvatar)
+ if (this.childAgent)
{
- this.childAvatar = false;
+ this.childAgent = false;
}
}
@@ -272,25 +254,232 @@ namespace OpenSim.Region.Scenes
movementflag = 0;
}
}
-
+
}
+ #endregion
+ #region Overridden Methods
///
///
///
- public static void LoadAnims()
+ public override void LandRenegerated()
{
}
-
+
///
///
///
- public override void LandRenegerated()
+ public override void update()
+ {
+ if (this.childAgent == false)
+ {
+ if (this.newForce)
+ {
+ this.SendTerseUpdateToALLClients();
+ _updateCount = 0;
+ }
+ else if (movementflag != 0)
+ {
+ _updateCount++;
+ if (_updateCount > 3)
+ {
+ this.SendTerseUpdateToALLClients();
+ _updateCount = 0;
+ }
+ }
+
+ this.CheckForBorderCrossing();
+ }
+ }
+ #endregion
+
+ #region Update Client(s)
+ ///
+ ///
+ ///
+ ///
+ public void SendTerseUpdateToClient(IClientAPI RemoteClient)
+ {
+ LLVector3 pos = this.Pos;
+ LLVector3 vel = this.Velocity;
+ RemoteClient.SendAvatarTerseUpdate(this.m_regionHandle, 64096, this.LocalId, new LLVector3(pos.X, pos.Y, pos.Z), new LLVector3(vel.X, vel.Y, vel.Z));
+ }
+
+ ///
+ ///
+ ///
+ public void SendTerseUpdateToALLClients()
+ {
+ List avatars = this.m_world.RequestAvatarList();
+ for (int i = 0; i < avatars.Count; i++)
+ {
+ this.SendTerseUpdateToClient(avatars[i].ControllingClient);
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar)
+ {
+ remoteAvatar.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, this.firstname, this.lastname, this.uuid, this.LocalId, this.Pos);
+ }
+
+ ///
+ ///
+ ///
+ public void SendInitialData()
+ {
+ this.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, this.firstname, this.lastname, this.uuid, this.LocalId, this.Pos);
+ if (this.newAvatar)
+ {
+ this.m_world.InformClientOfNeighbours(this.ControllingClient);
+ this.newAvatar = false;
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendOurAppearance(IClientAPI OurClient)
+ {
+ this.ControllingClient.SendWearables(this.Wearables);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendAppearanceToOtherAgent(ScenePresence avatarInfo)
{
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void SendAnimPack(LLUUID animID, int seq)
+ {
+
+
+ }
+
+ ///
+ ///
+ ///
+ public void SendAnimPack()
+ {
+
+ }
+ #endregion
+
+ #region Border Crossing Methods
+ ///
+ ///
+ ///
+ protected void CheckForBorderCrossing()
+ {
+ LLVector3 pos2 = this.Pos;
+ LLVector3 vel = this.Velocity;
+
+ float timeStep = 0.2f;
+ pos2.X = pos2.X + (vel.X * timeStep);
+ pos2.Y = pos2.Y + (vel.Y * timeStep);
+ pos2.Z = pos2.Z + (vel.Z * timeStep);
+
+ if ((pos2.X < 0) || (pos2.X > 256))
+ {
+ this.CrossToNewRegion();
+ }
+
+ if ((pos2.Y < 0) || (pos2.Y > 256))
+ {
+ this.CrossToNewRegion();
+ }
+ }
+
+ ///
+ ///
+ ///
+ protected void CrossToNewRegion()
+ {
+ LLVector3 pos = this.Pos;
+ LLVector3 newpos = new LLVector3(pos.X, pos.Y, pos.Z);
+ uint neighbourx = this.m_regionInfo.RegionLocX;
+ uint neighboury = this.m_regionInfo.RegionLocY;
+
+ if (pos.X < 2)
+ {
+ neighbourx -= 1;
+ newpos.X = 254;
+ }
+ if (pos.X > 253)
+ {
+ neighbourx += 1;
+ newpos.X = 1;
+ }
+ if (pos.Y < 2)
+ {
+ neighboury -= 1;
+ newpos.Y = 254;
+ }
+ if (pos.Y > 253)
+ {
+ neighboury += 1;
+ newpos.Y = 1;
+ }
+
+ LLVector3 vel = this.velocity;
+ ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * 256), (uint)(neighboury * 256));
+ RegionInfo neighbourRegion = this.m_world.RequestNeighbouringRegionInfo(neighbourHandle);
+ if (neighbourRegion != null)
+ {
+ this.m_world.InformNeighbourOfCrossing(neighbourHandle, this.ControllingClient.AgentId, newpos);
+ this.MakeChildAgent();
+ this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, System.Net.IPAddress.Parse(neighbourRegion.IPListenAddr), (ushort)neighbourRegion.IPListenPort);
+
+ }
+ }
+ #endregion
+
+ ///
+ ///
+ ///
+ public static void LoadAnims()
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ public override void updateMovement()
+ {
+ newForce = false;
+ lock (this.forcesList)
+ {
+ if (this.forcesList.Count > 0)
+ {
+ for (int i = 0; i < this.forcesList.Count; i++)
+ {
+ NewForce force = this.forcesList[i];
+
+ this.updateflag = true;
+ this.Velocity = new LLVector3(force.X, force.Y, force.Z);
+ this.newForce = true;
+ }
+ for (int i = 0; i < this.forcesList.Count; i++)
+ {
+ this.forcesList.RemoveAt(0);
+ }
+ }
+ }
+ }
public class NewForce
{
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.API.cs b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
index 2365716..98b449d 100644
--- a/OpenSim/OpenSim.RegionServer/ClientView.API.cs
+++ b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
@@ -174,8 +174,8 @@ namespace OpenSim
mov.AgentData.SessionID = this.SessionID;
mov.AgentData.AgentID = this.AgentID;
mov.Data.RegionHandle = regInfo.RegionHandle;
- // TODO - dynamicalise this stuff
- mov.Data.Timestamp = 1172750370;
+ mov.Data.Timestamp = 1172750370; // TODO - dynamicalise this
+
if (pos == null)
{
mov.Data.Position = this.startpos;
--
cgit v1.1