aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
authorTeravus Ovares2007-12-10 21:12:38 +0000
committerTeravus Ovares2007-12-10 21:12:38 +0000
commit2349dc2e27becef11ca1eda2602a99f1a583e6f7 (patch)
treefe31e46ac53d8fdaf4679f483c3d8bf06e5cb48d /OpenSim/Region/Environment/Scenes/ScenePresence.cs
parent* More refactoring to prepare for draw distance based agent sim notification. (diff)
downloadopensim-SC-2349dc2e27becef11ca1eda2602a99f1a583e6f7.zip
opensim-SC-2349dc2e27becef11ca1eda2602a99f1a583e6f7.tar.gz
opensim-SC-2349dc2e27becef11ca1eda2602a99f1a583e6f7.tar.bz2
opensim-SC-2349dc2e27becef11ca1eda2602a99f1a583e6f7.tar.xz
* Added comments to many methods in the listed files.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs146
1 files changed, 105 insertions, 41 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index c277011..201a547 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -61,10 +61,13 @@ namespace OpenSim.Region.Environment.Scenes
61 61
62 public bool IsRestrictedToRegion = false; 62 public bool IsRestrictedToRegion = false;
63 63
64 // Agent moves with a PID controller causing a force to be exerted.
64 private bool m_newForce = false; 65 private bool m_newForce = false;
65 private bool m_newAvatar = false; 66 private bool m_newAvatar = false;
66 private bool m_newCoarseLocations = true; 67 private bool m_newCoarseLocations = true;
67 private bool m_gotAllObjectsInScene = false; 68 private bool m_gotAllObjectsInScene = false;
69
70 // Default AV Height
68 private float m_avHeight = 127.0f; 71 private float m_avHeight = 127.0f;
69 72
70 protected RegionInfo m_regionInfo; 73 protected RegionInfo m_regionInfo;
@@ -73,7 +76,7 @@ namespace OpenSim.Region.Environment.Scenes
73 private readonly Vector3[] Dir_Vectors = new Vector3[6]; 76 private readonly Vector3[] Dir_Vectors = new Vector3[6];
74 private LLVector3 lastPhysPos = new LLVector3(); 77 private LLVector3 lastPhysPos = new LLVector3();
75 78
76 // Position of agent's camera in world 79 // Position of agent's camera in world (region cordinates)
77 protected Vector3 m_CameraCenter = new Vector3(0, 0, 0); 80 protected Vector3 m_CameraCenter = new Vector3(0, 0, 0);
78 81
79 // Use these three vectors to figure out what the agent is looking at 82 // Use these three vectors to figure out what the agent is looking at
@@ -88,7 +91,11 @@ namespace OpenSim.Region.Environment.Scenes
88 protected AvatarAppearance m_appearance; 91 protected AvatarAppearance m_appearance;
89 92
90 private readonly List<ulong> m_knownChildRegions = new List<ulong>(); //neighbouring regions we have enabled a child agent in 93 private readonly List<ulong> m_knownChildRegions = new List<ulong>(); //neighbouring regions we have enabled a child agent in
94
91 95
96 /// <summary>
97 /// Implemented Control Flags
98 /// </summary>
92 private enum Dir_ControlFlags 99 private enum Dir_ControlFlags
93 { 100 {
94 DIR_CONTROL_FLAG_FOWARD = AgentManager.ControlFlags.AGENT_CONTROL_AT_POS, 101 DIR_CONTROL_FLAG_FOWARD = AgentManager.ControlFlags.AGENT_CONTROL_AT_POS,
@@ -114,7 +121,7 @@ namespace OpenSim.Region.Environment.Scenes
114 #region Properties 121 #region Properties
115 122
116 /// <summary> 123 /// <summary>
117 /// 124 /// Physical scene representation of this Avatar.
118 /// </summary> 125 /// </summary>
119 public PhysicsActor PhysicsActor 126 public PhysicsActor PhysicsActor
120 { 127 {
@@ -166,6 +173,10 @@ namespace OpenSim.Region.Environment.Scenes
166 set { m_allowMovement = value; } 173 set { m_allowMovement = value; }
167 } 174 }
168 175
176 /// <summary>
177 /// This works out to be the ClientView object associated with this avatar, or it's UDP connection manager
178 /// </summary>
179
169 private readonly IClientAPI m_controllingClient; 180 private readonly IClientAPI m_controllingClient;
170 protected PhysicsActor m_physicsActor; 181 protected PhysicsActor m_physicsActor;
171 182
@@ -176,6 +187,9 @@ namespace OpenSim.Region.Environment.Scenes
176 187
177 protected LLVector3 m_parentPosition = new LLVector3(); 188 protected LLVector3 m_parentPosition = new LLVector3();
178 189
190 /// <summary>
191 /// Absolute position of this avatar in 'region cordinates'
192 /// </summary>
179 public override LLVector3 AbsolutePosition 193 public override LLVector3 AbsolutePosition
180 { 194 {
181 get 195 get
@@ -209,7 +223,9 @@ namespace OpenSim.Region.Environment.Scenes
209 m_pos = value; 223 m_pos = value;
210 } 224 }
211 } 225 }
212 226 /// <summary>
227 /// Current Velocity of the avatar.
228 /// </summary>
213 public override LLVector3 Velocity 229 public override LLVector3 Velocity
214 { 230 {
215 get 231 get
@@ -244,6 +260,12 @@ namespace OpenSim.Region.Environment.Scenes
244 } 260 }
245 } 261 }
246 262
263 /// <summary>
264 /// If this is true, agent doesn't have a representation in this scene.
265 /// this is an agent 'looking into' this scene from a nearby scene(region)
266 ///
267 /// if False, this agent has a representation in this scene
268 /// </summary>
247 private bool m_isChildAgent = true; 269 private bool m_isChildAgent = true;
248 270
249 public bool IsChildAgent 271 public bool IsChildAgent
@@ -260,6 +282,9 @@ namespace OpenSim.Region.Environment.Scenes
260 set { m_parentID = value; } 282 set { m_parentID = value; }
261 } 283 }
262 284
285 /// <summary>
286 /// These are the region handles known by the avatar.
287 /// </summary>
263 public List<ulong> KnownChildRegions 288 public List<ulong> KnownChildRegions
264 { 289 {
265 get { return m_knownChildRegions; } 290 get { return m_knownChildRegions; }
@@ -461,7 +486,11 @@ namespace OpenSim.Region.Environment.Scenes
461 } 486 }
462 487
463 #region Status Methods 488 #region Status Methods
464 489 /// <summary>
490 /// This turns a child agent, into a root agent
491 /// This is called when an agent teleports into a region, or if an
492 /// agent crosses into this region from a neighbor over the border
493 /// </summary>
465 public void MakeRootAgent(LLVector3 pos, bool isFlying) 494 public void MakeRootAgent(LLVector3 pos, bool isFlying)
466 { 495 {
467 496
@@ -481,7 +510,13 @@ namespace OpenSim.Region.Environment.Scenes
481 //} 510 //}
482 511
483 } 512 }
484 513 /// <summary>
514 /// This turns a root agent into a child agent
515 /// when an agent departs this region for a neighbor, this gets called.
516 ///
517 /// It doesn't get called for a teleport. Reason being, an agent that
518 /// teleports out may not be anywhere near this region
519 /// </summary>
485 public void MakeChildAgent() 520 public void MakeChildAgent()
486 { 521 {
487 Velocity = new LLVector3(0, 0, 0); 522 Velocity = new LLVector3(0, 0, 0);
@@ -492,6 +527,9 @@ namespace OpenSim.Region.Environment.Scenes
492 //this.Pos = new LLVector3(128, 128, 70); 527 //this.Pos = new LLVector3(128, 128, 70);
493 } 528 }
494 529
530 /// <summary>
531 /// Removes physics plugin scene representation of this agent if it exists.
532 /// </summary>
495 private void RemoveFromPhysicalScene() 533 private void RemoveFromPhysicalScene()
496 { 534 {
497 if (PhysicsActor != null) 535 if (PhysicsActor != null)
@@ -538,7 +576,9 @@ namespace OpenSim.Region.Environment.Scenes
538 #endregion 576 #endregion
539 577
540 #region Event Handlers 578 #region Event Handlers
541 579 /// <summary>
580 /// Sets avatar height in the phyiscs plugin
581 /// </summary>
542 internal void SetHeight(float height) 582 internal void SetHeight(float height)
543 { 583 {
544 m_avHeight = height; 584 m_avHeight = height;
@@ -570,7 +610,9 @@ namespace OpenSim.Region.Environment.Scenes
570 MakeRootAgent(AbsolutePosition, false); 610 MakeRootAgent(AbsolutePosition, false);
571 } 611 }
572 } 612 }
573 613 /// <summary>
614 /// This is the event handler for client movement. If a client is moving, this event is triggering.
615 /// </summary>
574 public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdatePacket agentData) 616 public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdatePacket agentData)
575 { 617 {
576 //if (m_isChildAgent) 618 //if (m_isChildAgent)
@@ -608,26 +650,6 @@ namespace OpenSim.Region.Environment.Scenes
608 // The Agent's Draw distance setting 650 // The Agent's Draw distance setting
609 m_DrawDistance = agentData.AgentData.Far; 651 m_DrawDistance = agentData.AgentData.Far;
610 652
611 // We don't know the agent's draw distance until the first agentUpdate packet
612 //if (m_DrawDistance > 0)
613 //{
614 //if (!m_gotAllObjectsInScene && m_DrawDistance > 0)
615 //{
616 // This will need to end up being a space based invalidator
617 // where we send object updates on spaces in 3d space (possibily a cube)
618 // that the avatar hasn't been surrounding it's draw distance.
619 // It would be better if the distance increased incrementally
620 // until there was no space to update because either the avatar's draw
621 // distance is smaller then the space they've been or the avatar has explored
622 // all the space in the sim.
623
624 //m_scene.SendAllSceneObjectsToClient(this);
625 //m_gotAllObjectsInScene = true;
626 //}
627 //}
628 //MainLog.Instance.Verbose("CAMERA", "AtAxis:" + m_CameraAtAxis.ToString() + " Center:" + m_CameraCenter.ToString() + " LeftAxis:" + m_CameraLeftAxis.ToString() + " UpAxis:" + m_CameraUpAxis.ToString() + " Far:" + m_CameraFar);
629
630
631 if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0) 653 if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0)
632 { 654 {
633 StandUp(); 655 StandUp();
@@ -793,7 +815,10 @@ namespace OpenSim.Region.Environment.Scenes
793 SetMovementAnimation(Animations.AnimsLLUUID["SIT"], 1); 815 SetMovementAnimation(Animations.AnimsLLUUID["SIT"], 1);
794 SendFullUpdateToAllClients(); 816 SendFullUpdateToAllClients();
795 } 817 }
796 818 /// <summary>
819 /// Event handler for the 'Always run' setting on the client
820 /// Tells the physics plugin to increase speed of movement.
821 /// </summary>
797 public void HandleSetAlwaysRun(IClientAPI remoteClient, bool SetAlwaysRun) 822 public void HandleSetAlwaysRun(IClientAPI remoteClient, bool SetAlwaysRun)
798 { 823 {
799 m_setAlwaysRun = SetAlwaysRun; 824 m_setAlwaysRun = SetAlwaysRun;
@@ -853,13 +878,18 @@ namespace OpenSim.Region.Environment.Scenes
853 SendAnimPack(); 878 SendAnimPack();
854 } 879 }
855 } 880 }
856 881 /// <summary>
882 /// This method handles agent movement related animations
883 /// </summary>
857 protected void UpdateMovementAnimations(bool update_movementflag) 884 protected void UpdateMovementAnimations(bool update_movementflag)
858 { 885 {
859 if (update_movementflag) 886 if (update_movementflag)
860 { 887 {
888 // Are we moving?
861 if (m_movementflag != 0) 889 if (m_movementflag != 0)
862 { 890 {
891 // We are moving
892 // Are we flying
863 if (m_physicsActor.Flying) 893 if (m_physicsActor.Flying)
864 { 894 {
865 SetMovementAnimation(Animations.AnimsLLUUID["FLY"], 1); 895 SetMovementAnimation(Animations.AnimsLLUUID["FLY"], 1);
@@ -867,18 +897,22 @@ namespace OpenSim.Region.Environment.Scenes
867 else if (((m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) && 897 else if (((m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) &&
868 PhysicsActor.IsColliding) 898 PhysicsActor.IsColliding)
869 { 899 {
900 // Client is pressing the page down button and moving and is colliding with something
870 SetMovementAnimation(Animations.AnimsLLUUID["CROUCHWALK"], 1); 901 SetMovementAnimation(Animations.AnimsLLUUID["CROUCHWALK"], 1);
871 } 902 }
872 else if (!PhysicsActor.IsColliding && m_physicsActor.Velocity.Z < -6) 903 else if (!PhysicsActor.IsColliding && m_physicsActor.Velocity.Z < -6)
873 { 904 {
905 // Client is moving and falling at a velocity greater then 6 meters per unit
874 SetMovementAnimation(Animations.AnimsLLUUID["FALLDOWN"], 1); 906 SetMovementAnimation(Animations.AnimsLLUUID["FALLDOWN"], 1);
875 } 907 }
876 else if (!PhysicsActor.IsColliding && Velocity.Z > 0 && (m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0) 908 else if (!PhysicsActor.IsColliding && Velocity.Z > 0 && (m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0)
877 { 909 {
910 // client is moving, and colliding and pressing the page up button but isn't flying
878 SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); 911 SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1);
879 } 912 }
880 else if (m_setAlwaysRun) 913 else if (m_setAlwaysRun)
881 { 914 {
915 // We are running
882 SetMovementAnimation(Animations.AnimsLLUUID["RUN"], 1); 916 SetMovementAnimation(Animations.AnimsLLUUID["RUN"], 1);
883 } 917 }
884 else 918 else
@@ -886,29 +920,39 @@ namespace OpenSim.Region.Environment.Scenes
886 } 920 }
887 else 921 else
888 { 922 {
923 // Not moving
924
889 if (((m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) && 925 if (((m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) &&
890 PhysicsActor.IsColliding) 926 PhysicsActor.IsColliding)
891 { 927 {
928 // Client pressing the page down button
892 SetMovementAnimation(Animations.AnimsLLUUID["CROUCH"], 1); 929 SetMovementAnimation(Animations.AnimsLLUUID["CROUCH"], 1);
893 } 930 }
894 else if (!PhysicsActor.IsColliding && m_physicsActor.Velocity.Z < -6 && !m_physicsActor.Flying) 931 else if (!PhysicsActor.IsColliding && m_physicsActor.Velocity.Z < -6 && !m_physicsActor.Flying)
895 { 932 {
933 // Not colliding, and we're not flying and we're falling at a speed of 6m per unit
896 SetMovementAnimation(Animations.AnimsLLUUID["FALLDOWN"], 1); 934 SetMovementAnimation(Animations.AnimsLLUUID["FALLDOWN"], 1);
897 } 935 }
898 else if (!PhysicsActor.IsColliding && Velocity.Z > 0 && !m_physicsActor.Flying && (m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0) 936 else if (!PhysicsActor.IsColliding && Velocity.Z > 0 && !m_physicsActor.Flying && (m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0)
899 { 937 {
938 // This is the standing jump
900 SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); 939 SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1);
901 } 940 }
902 else if (m_physicsActor.Flying) 941 else if (m_physicsActor.Flying)
903 { 942 {
943 // This should probably be HOVER and not Fly
944 // We're not moving and flying
904 SetMovementAnimation(Animations.AnimsLLUUID["FLY"], 1); 945 SetMovementAnimation(Animations.AnimsLLUUID["FLY"], 1);
905 } 946 }
906 else 947 else
907 SetMovementAnimation(Animations.AnimsLLUUID["STAND"], 1); 948 SetMovementAnimation(Animations.AnimsLLUUID["STAND"], 1);
949 // We're not moving.. and we're not doing anything.. so play the stand animation
908 } 950 }
909 } 951 }
910 } 952 }
911 953 /// <summary>
954 /// Adds a new movement
955 /// </summary>
912 protected void AddNewMovement(Vector3 vec, Quaternion rotation) 956 protected void AddNewMovement(Vector3 vec, Quaternion rotation)
913 { 957 {
914 if (m_isChildAgent) 958 if (m_isChildAgent)
@@ -935,6 +979,7 @@ namespace OpenSim.Region.Environment.Scenes
935 { 979 {
936 direc.z *= 3; 980 direc.z *= 3;
937 //System.Console.WriteLine("Jump"); 981 //System.Console.WriteLine("Jump");
982 // PreJump and jump happen too quickly. Many times prejump gets ignored.
938 SetMovementAnimation(Animations.AnimsLLUUID["PREJUMP"], 1); 983 SetMovementAnimation(Animations.AnimsLLUUID["PREJUMP"], 1);
939 SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); 984 SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1);
940 } 985 }
@@ -946,7 +991,9 @@ namespace OpenSim.Region.Environment.Scenes
946 newVelocity.Z = direc.z; 991 newVelocity.Z = direc.z;
947 m_forcesList.Add(newVelocity); 992 m_forcesList.Add(newVelocity);
948 } 993 }
949 994 /// <summary>
995 /// Sets whether or not the agent is typing.
996 /// </summary>
950 public void setTyping(bool typing) 997 public void setTyping(bool typing)
951 { 998 {
952 if (m_isChildAgent) 999 if (m_isChildAgent)
@@ -1010,7 +1057,7 @@ namespace OpenSim.Region.Environment.Scenes
1010 #region Update Client(s) 1057 #region Update Client(s)
1011 1058
1012 /// <summary> 1059 /// <summary>
1013 /// 1060 /// Sends a location update to the client connected to this scenePresence
1014 /// </summary> 1061 /// </summary>
1015 /// <param name="RemoteClient"></param> 1062 /// <param name="RemoteClient"></param>
1016 public void SendTerseUpdateToClient(IClientAPI RemoteClient) 1063 public void SendTerseUpdateToClient(IClientAPI RemoteClient)
@@ -1027,7 +1074,7 @@ namespace OpenSim.Region.Environment.Scenes
1027 } 1074 }
1028 1075
1029 /// <summary> 1076 /// <summary>
1030 /// 1077 /// Send a location/velocity/accelleration update to all agents in scene
1031 /// </summary> 1078 /// </summary>
1032 public void SendTerseUpdateToAllClients() 1079 public void SendTerseUpdateToAllClients()
1033 { 1080 {
@@ -1055,7 +1102,7 @@ namespace OpenSim.Region.Environment.Scenes
1055 } 1102 }
1056 1103
1057 /// <summary> 1104 /// <summary>
1058 /// 1105 /// Tell other client about this avatar (The client previously didn't know or had outdated details about this avatar)
1059 /// </summary> 1106 /// </summary>
1060 /// <param name="remoteAvatar"></param> 1107 /// <param name="remoteAvatar"></param>
1061 public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar) 1108 public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar)
@@ -1063,7 +1110,9 @@ namespace OpenSim.Region.Environment.Scenes
1063 remoteAvatar.m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid, 1110 remoteAvatar.m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid,
1064 LocalId, m_pos, m_appearance.TextureEntry.ToBytes(), m_parentID); 1111 LocalId, m_pos, m_appearance.TextureEntry.ToBytes(), m_parentID);
1065 } 1112 }
1066 1113 /// <summary>
1114 /// Tell *ALL* agents about this agent
1115 /// </summary>
1067 public void SendFullUpdateToAllClients() 1116 public void SendFullUpdateToAllClients()
1068 { 1117 {
1069 List<ScenePresence> avatars = m_scene.GetScenePresences(); 1118 List<ScenePresence> avatars = m_scene.GetScenePresences();
@@ -1167,7 +1216,9 @@ namespace OpenSim.Region.Environment.Scenes
1167 #endregion 1216 #endregion
1168 1217
1169 #region Significant Movement Method 1218 #region Significant Movement Method
1170 1219 /// <summary>
1220 /// This checks for a significant movement and sends a courselocationchange update
1221 /// </summary>
1171 protected void CheckForSignificantMovement() 1222 protected void CheckForSignificantMovement()
1172 { 1223 {
1173 if (Util.GetDistanceTo(AbsolutePosition, posLastSignificantMove) > 0.02) 1224 if (Util.GetDistanceTo(AbsolutePosition, posLastSignificantMove) > 0.02)
@@ -1186,7 +1237,7 @@ namespace OpenSim.Region.Environment.Scenes
1186 #region Border Crossing Methods 1237 #region Border Crossing Methods
1187 1238
1188 /// <summary> 1239 /// <summary>
1189 /// 1240 /// Checks to see if the avatar is in range of a border and calls CrossToNewRegion
1190 /// </summary> 1241 /// </summary>
1191 protected void CheckForBorderCrossing() 1242 protected void CheckForBorderCrossing()
1192 { 1243 {
@@ -1210,7 +1261,10 @@ namespace OpenSim.Region.Environment.Scenes
1210 } 1261 }
1211 1262
1212 /// <summary> 1263 /// <summary>
1213 /// 1264 /// Moves the agent outside the region bounds
1265 /// Tells neighbor region that we're crossing to it
1266 /// If the neighbor accepts, remove the agent's viewable avatar from this scene
1267 /// set them to a child agent.
1214 /// </summary> 1268 /// </summary>
1215 protected void CrossToNewRegion() 1269 protected void CrossToNewRegion()
1216 { 1270 {
@@ -1262,7 +1316,10 @@ namespace OpenSim.Region.Environment.Scenes
1262 } 1316 }
1263 1317
1264 #endregion 1318 #endregion
1265 1319 /// <summary>
1320 /// This allows the Sim owner the abiility to kick users from their sim currently.
1321 /// It tells the client that the agent has permission to do so.
1322 /// </summary>
1266 public void GrantGodlikePowers(LLUUID agentID, LLUUID sessionID, LLUUID token) 1323 public void GrantGodlikePowers(LLUUID agentID, LLUUID sessionID, LLUUID token)
1267 { 1324 {
1268 GrantGodlikePowersPacket respondPacket = new GrantGodlikePowersPacket(); 1325 GrantGodlikePowersPacket respondPacket = new GrantGodlikePowersPacket();
@@ -1279,6 +1336,10 @@ namespace OpenSim.Region.Environment.Scenes
1279 respondPacket.AgentData = adb; 1336 respondPacket.AgentData = adb;
1280 ControllingClient.OutPacket(respondPacket, ThrottleOutPacketType.Task); 1337 ControllingClient.OutPacket(respondPacket, ThrottleOutPacketType.Task);
1281 } 1338 }
1339 /// <summary>
1340 /// This updates important decision making data about a child agent
1341 /// The main purpose is to figure out what objects to send to a child agent that's in a neighboring region
1342 /// </summary>
1282 public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData) 1343 public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData)
1283 { 1344 {
1284 // 1345 //
@@ -1301,7 +1362,7 @@ namespace OpenSim.Region.Environment.Scenes
1301 } 1362 }
1302 1363
1303 /// <summary> 1364 /// <summary>
1304 /// 1365 /// handles part of the PID controller function for moving an avatar.
1305 /// </summary> 1366 /// </summary>
1306 public override void UpdateMovement() 1367 public override void UpdateMovement()
1307 { 1368 {
@@ -1363,6 +1424,9 @@ namespace OpenSim.Region.Environment.Scenes
1363 throw new Exception("Can't set Text on avatar."); 1424 throw new Exception("Can't set Text on avatar.");
1364 } 1425 }
1365 1426
1427 /// <summary>
1428 /// Adds a physical representation of the avatar to the Physics plugin
1429 /// </summary>
1366 public void AddToPhysicalScene() 1430 public void AddToPhysicalScene()
1367 { 1431 {
1368 PhysicsScene scene = m_scene.PhysicsScene; 1432 PhysicsScene scene = m_scene.PhysicsScene;
@@ -1375,7 +1439,7 @@ namespace OpenSim.Region.Environment.Scenes
1375 m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients; 1439 m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients;
1376 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; 1440 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate;
1377 } 1441 }
1378 1442 // Event called by the physics plugin to tell the avatar about a collision.
1379 private void PhysicsCollisionUpdate(EventArgs e) 1443 private void PhysicsCollisionUpdate(EventArgs e)
1380 { 1444 {
1381 bool isUserMoving = Velocity.X > 0 || Velocity.Y > 0; 1445 bool isUserMoving = Velocity.X > 0 || Velocity.Y > 0;