diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 393 |
1 files changed, 197 insertions, 196 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 6d51fbc..64c6eaa 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -27,7 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.IO; | ||
31 | using Axiom.Math; | 30 | using Axiom.Math; |
32 | using libsecondlife; | 31 | using libsecondlife; |
33 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
@@ -72,7 +71,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
72 | private IScenePresenceBody m_body; | 71 | private IScenePresenceBody m_body; |
73 | 72 | ||
74 | private Vector3[] Dir_Vectors = new Vector3[6]; | 73 | private Vector3[] Dir_Vectors = new Vector3[6]; |
75 | private libsecondlife.LLVector3 lastPhysPos = new libsecondlife.LLVector3(); | 74 | private LLVector3 lastPhysPos = new LLVector3(); |
75 | |||
76 | private enum Dir_ControlFlags | 76 | private enum Dir_ControlFlags |
77 | { | 77 | { |
78 | DIR_CONTROL_FLAG_FOWARD = MainAvatar.ControlFlags.AGENT_CONTROL_AT_POS, | 78 | DIR_CONTROL_FLAG_FOWARD = MainAvatar.ControlFlags.AGENT_CONTROL_AT_POS, |
@@ -82,48 +82,39 @@ namespace OpenSim.Region.Environment.Scenes | |||
82 | DIR_CONTROL_FLAG_UP = MainAvatar.ControlFlags.AGENT_CONTROL_UP_POS, | 82 | DIR_CONTROL_FLAG_UP = MainAvatar.ControlFlags.AGENT_CONTROL_UP_POS, |
83 | DIR_CONTROL_FLAG_DOWN = MainAvatar.ControlFlags.AGENT_CONTROL_UP_NEG | 83 | DIR_CONTROL_FLAG_DOWN = MainAvatar.ControlFlags.AGENT_CONTROL_UP_NEG |
84 | } | 84 | } |
85 | |||
85 | /// <summary> | 86 | /// <summary> |
86 | /// Position at which a significant movement was made | 87 | /// Position at which a significant movement was made |
87 | /// </summary> | 88 | /// </summary> |
88 | private LLVector3 posLastSignificantMove = new LLVector3(); | 89 | private LLVector3 posLastSignificantMove = new LLVector3(); |
89 | 90 | ||
90 | public delegate void SignificantClientMovement(IClientAPI remote_client); | 91 | public delegate void SignificantClientMovement(IClientAPI remote_client); |
92 | |||
91 | public event SignificantClientMovement OnSignificantClientMovement; | 93 | public event SignificantClientMovement OnSignificantClientMovement; |
92 | 94 | ||
93 | //public List<SceneObjectGroup> InterestList = new List<SceneObjectGroup>(); | 95 | //public List<SceneObjectGroup> InterestList = new List<SceneObjectGroup>(); |
94 | 96 | ||
95 | // private Queue<SceneObjectGroup> m_fullGroupUpdates = new Queue<SceneObjectGroup>(); | 97 | // private Queue<SceneObjectGroup> m_fullGroupUpdates = new Queue<SceneObjectGroup>(); |
96 | // private Queue<SceneObjectGroup> m_terseGroupUpdates = new Queue<SceneObjectGroup>(); | 98 | // private Queue<SceneObjectGroup> m_terseGroupUpdates = new Queue<SceneObjectGroup>(); |
97 | 99 | ||
98 | private Queue<SceneObjectPart> m_fullPartUpdates = new Queue<SceneObjectPart>(); | 100 | private Queue<SceneObjectPart> m_fullPartUpdates = new Queue<SceneObjectPart>(); |
99 | private Queue<SceneObjectPart> m_tersePartUpdates = new Queue<SceneObjectPart>(); | 101 | private Queue<SceneObjectPart> m_tersePartUpdates = new Queue<SceneObjectPart>(); |
100 | 102 | ||
101 | #region Properties | 103 | #region Properties |
104 | |||
102 | /// <summary> | 105 | /// <summary> |
103 | /// | 106 | /// |
104 | /// </summary> | 107 | /// </summary> |
105 | public PhysicsActor PhysActor | 108 | public PhysicsActor PhysActor |
106 | { | 109 | { |
107 | set | 110 | set { _physActor = value; } |
108 | { | 111 | get { return _physActor; } |
109 | this._physActor = value; | ||
110 | } | ||
111 | get | ||
112 | { | ||
113 | return _physActor; | ||
114 | } | ||
115 | } | 112 | } |
116 | 113 | ||
117 | public bool Updated | 114 | public bool Updated |
118 | { | 115 | { |
119 | set | 116 | set { updateflag = value; } |
120 | { | 117 | get { return updateflag; } |
121 | this.updateflag = value; | ||
122 | } | ||
123 | get | ||
124 | { | ||
125 | return this.updateflag; | ||
126 | } | ||
127 | } | 118 | } |
128 | 119 | ||
129 | public ulong RegionHandle | 120 | public ulong RegionHandle |
@@ -132,12 +123,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
132 | } | 123 | } |
133 | 124 | ||
134 | private string m_firstname; | 125 | private string m_firstname; |
126 | |||
135 | public string Firstname | 127 | public string Firstname |
136 | { | 128 | { |
137 | get { return m_firstname; } | 129 | get { return m_firstname; } |
138 | } | 130 | } |
139 | 131 | ||
140 | private string m_lastname; | 132 | private string m_lastname; |
133 | |||
141 | public string Lastname | 134 | public string Lastname |
142 | { | 135 | { |
143 | get { return m_lastname; } | 136 | get { return m_lastname; } |
@@ -146,6 +139,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
146 | #endregion | 139 | #endregion |
147 | 140 | ||
148 | #region Constructor(s) | 141 | #region Constructor(s) |
142 | |||
149 | /// <summary> | 143 | /// <summary> |
150 | /// | 144 | /// |
151 | /// </summary> | 145 | /// </summary> |
@@ -155,19 +149,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
155 | /// <param name="regionDat"></param> | 149 | /// <param name="regionDat"></param> |
156 | public ScenePresence(IClientAPI theClient, Scene world, RegionInfo reginfo) | 150 | public ScenePresence(IClientAPI theClient, Scene world, RegionInfo reginfo) |
157 | { | 151 | { |
158 | |||
159 | m_scene = world; | 152 | m_scene = world; |
160 | this.m_uuid = theClient.AgentId; | 153 | m_uuid = theClient.AgentId; |
161 | 154 | ||
162 | m_regionInfo = reginfo; | 155 | m_regionInfo = reginfo; |
163 | m_regionHandle = reginfo.RegionHandle; | 156 | m_regionHandle = reginfo.RegionHandle; |
164 | MainLog.Instance.Verbose("Avatar.cs "); | 157 | MainLog.Instance.Verbose("Avatar.cs "); |
165 | ControllingClient = theClient; | 158 | ControllingClient = theClient; |
166 | this.m_firstname = ControllingClient.FirstName; | 159 | m_firstname = ControllingClient.FirstName; |
167 | this.m_lastname = ControllingClient.LastName; | 160 | m_lastname = ControllingClient.LastName; |
168 | m_localId = m_scene.NextLocalId; | 161 | m_localId = m_scene.NextLocalId; |
169 | AbsolutePosition = ControllingClient.StartPos; | 162 | AbsolutePosition = ControllingClient.StartPos; |
170 | 163 | ||
171 | visualParams = new byte[218]; | 164 | visualParams = new byte[218]; |
172 | for (int i = 0; i < 218; i++) | 165 | for (int i = 0; i < 218; i++) |
173 | { | 166 | { |
@@ -175,37 +168,37 @@ namespace OpenSim.Region.Environment.Scenes | |||
175 | } | 168 | } |
176 | 169 | ||
177 | Wearables = AvatarWearable.DefaultWearables; | 170 | Wearables = AvatarWearable.DefaultWearables; |
178 | Animations = new ScenePresence.AvatarAnimations(); | 171 | Animations = new AvatarAnimations(); |
179 | Animations.LoadAnims(); | 172 | Animations.LoadAnims(); |
180 | 173 | ||
181 | //register for events | 174 | //register for events |
182 | ControllingClient.OnRequestWearables += this.SendOurAppearance; | 175 | ControllingClient.OnRequestWearables += SendOurAppearance; |
183 | ControllingClient.OnSetAppearance += new SetAppearance(this.SetAppearance); | 176 | ControllingClient.OnSetAppearance += new SetAppearance(SetAppearance); |
184 | ControllingClient.OnCompleteMovementToRegion += this.CompleteMovement; | 177 | ControllingClient.OnCompleteMovementToRegion += CompleteMovement; |
185 | ControllingClient.OnCompleteMovementToRegion += this.SendInitialData; | 178 | ControllingClient.OnCompleteMovementToRegion += SendInitialData; |
186 | ControllingClient.OnAgentUpdate += this.HandleAgentUpdate; | 179 | ControllingClient.OnAgentUpdate += HandleAgentUpdate; |
187 | // ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack); | 180 | // ControllingClient.OnStartAnim += new StartAnim(this.SendAnimPack); |
188 | // ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange); | 181 | // ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange); |
189 | //ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement); | 182 | //ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement); |
190 | 183 | ||
191 | Dir_Vectors[0] = new Vector3(1, 0, 0); //FOWARD | 184 | Dir_Vectors[0] = new Vector3(1, 0, 0); //FOWARD |
192 | Dir_Vectors[1] = new Vector3(-1, 0, 0); //BACK | 185 | Dir_Vectors[1] = new Vector3(-1, 0, 0); //BACK |
193 | Dir_Vectors[2] = new Vector3(0, 1, 0); //LEFT | 186 | Dir_Vectors[2] = new Vector3(0, 1, 0); //LEFT |
194 | Dir_Vectors[3] = new Vector3(0, -1, 0); //RIGHT | 187 | Dir_Vectors[3] = new Vector3(0, -1, 0); //RIGHT |
195 | Dir_Vectors[4] = new Vector3(0, 0, 1); //UP | 188 | Dir_Vectors[4] = new Vector3(0, 0, 1); //UP |
196 | Dir_Vectors[5] = new Vector3(0, 0, -1); //DOWN | 189 | Dir_Vectors[5] = new Vector3(0, 0, -1); //DOWN |
197 | 190 | ||
198 | this.m_textureEntry = new LLObject.TextureEntry(DefaultTexture, 0, DefaultTexture.Length); | 191 | m_textureEntry = new LLObject.TextureEntry(DefaultTexture, 0, DefaultTexture.Length); |
199 | 192 | ||
200 | //temporary until we move some code into the body classes | 193 | //temporary until we move some code into the body classes |
201 | this.m_body = new ChildAgent(); | 194 | m_body = new ChildAgent(); |
202 | 195 | ||
203 | if (newAvatar) | 196 | if (newAvatar) |
204 | { | 197 | { |
205 | //do we need to use newAvatar? not sure so have added this to kill the compile warning | 198 | //do we need to use newAvatar? not sure so have added this to kill the compile warning |
206 | } | 199 | } |
207 | |||
208 | } | 200 | } |
201 | |||
209 | #endregion | 202 | #endregion |
210 | 203 | ||
211 | public void AddTersePart(SceneObjectPart part) | 204 | public void AddTersePart(SceneObjectPart part) |
@@ -228,10 +221,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
228 | while (terse) | 221 | while (terse) |
229 | { | 222 | { |
230 | SceneObjectPart part = m_tersePartUpdates.Dequeue(); | 223 | SceneObjectPart part = m_tersePartUpdates.Dequeue(); |
231 | part.SendTerseUpdate(this.ControllingClient); | 224 | part.SendTerseUpdate(ControllingClient); |
232 | terseCount++; | 225 | terseCount++; |
233 | 226 | ||
234 | if ((m_tersePartUpdates.Count < 1) |(terseCount > 30)) | 227 | if ((m_tersePartUpdates.Count < 1) | (terseCount > 30)) |
235 | { | 228 | { |
236 | terse = false; | 229 | terse = false; |
237 | } | 230 | } |
@@ -245,31 +238,30 @@ namespace OpenSim.Region.Environment.Scenes | |||
245 | while (full) | 238 | while (full) |
246 | { | 239 | { |
247 | SceneObjectPart part = m_fullPartUpdates.Dequeue(); | 240 | SceneObjectPart part = m_fullPartUpdates.Dequeue(); |
248 | part.SendFullUpdate(this.ControllingClient); | 241 | part.SendFullUpdate(ControllingClient); |
249 | fullCount++; | 242 | fullCount++; |
250 | if ((m_fullPartUpdates.Count < 1) | (fullCount > 40)) | 243 | if ((m_fullPartUpdates.Count < 1) | (fullCount > 40)) |
251 | { | 244 | { |
252 | full = false; | 245 | full = false; |
253 | } | 246 | } |
254 | |||
255 | } | 247 | } |
256 | } | 248 | } |
257 | } | 249 | } |
258 | 250 | ||
259 | #region Status Methods | 251 | #region Status Methods |
252 | |||
260 | /// <summary> | 253 | /// <summary> |
261 | /// Not Used, most likely can be deleted | 254 | /// Not Used, most likely can be deleted |
262 | /// </summary> | 255 | /// </summary> |
263 | /// <param name="status"></param> | 256 | /// <param name="status"></param> |
264 | public void ChildStatusChange(bool status) | 257 | public void ChildStatusChange(bool status) |
265 | { | 258 | { |
266 | this.childAgent = status; | 259 | childAgent = status; |
267 | 260 | ||
268 | if (this.childAgent == true) | 261 | if (childAgent == true) |
269 | { | 262 | { |
270 | this.Velocity = new LLVector3(0, 0, 0); | 263 | Velocity = new LLVector3(0, 0, 0); |
271 | this.AbsolutePosition = new LLVector3(128, 128, 70); | 264 | AbsolutePosition = new LLVector3(128, 128, 70); |
272 | |||
273 | } | 265 | } |
274 | } | 266 | } |
275 | 267 | ||
@@ -280,17 +272,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
280 | public void MakeAvatar(LLVector3 pos, bool isFlying) | 272 | public void MakeAvatar(LLVector3 pos, bool isFlying) |
281 | { | 273 | { |
282 | //this.childAvatar = false; | 274 | //this.childAvatar = false; |
283 | this.AbsolutePosition = pos; | 275 | AbsolutePosition = pos; |
284 | this._physActor.Flying = isFlying; | 276 | _physActor.Flying = isFlying; |
285 | this.newAvatar = true; | 277 | newAvatar = true; |
286 | this.childAgent = false; | 278 | childAgent = false; |
287 | this.m_scene.SendAllSceneObjectsToClient(this); | 279 | m_scene.SendAllSceneObjectsToClient(this); |
288 | } | 280 | } |
289 | 281 | ||
290 | protected void MakeChildAgent() | 282 | protected void MakeChildAgent() |
291 | { | 283 | { |
292 | this.Velocity = new LLVector3(0, 0, 0); | 284 | Velocity = new LLVector3(0, 0, 0); |
293 | this.childAgent = true; | 285 | childAgent = true; |
294 | //this.Pos = new LLVector3(128, 128, 70); | 286 | //this.Pos = new LLVector3(128, 128, 70); |
295 | } | 287 | } |
296 | 288 | ||
@@ -300,8 +292,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
300 | /// <param name="pos"></param> | 292 | /// <param name="pos"></param> |
301 | public void Teleport(LLVector3 pos) | 293 | public void Teleport(LLVector3 pos) |
302 | { | 294 | { |
303 | this.AbsolutePosition = pos; | 295 | AbsolutePosition = pos; |
304 | this.SendTerseUpdateToALLClients(); | 296 | SendTerseUpdateToALLClients(); |
305 | } | 297 | } |
306 | 298 | ||
307 | /// <summary> | 299 | /// <summary> |
@@ -309,11 +301,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
309 | /// </summary> | 301 | /// </summary> |
310 | public void StopMovement() | 302 | public void StopMovement() |
311 | { | 303 | { |
312 | |||
313 | } | 304 | } |
305 | |||
314 | #endregion | 306 | #endregion |
315 | 307 | ||
316 | #region Event Handlers | 308 | #region Event Handlers |
309 | |||
317 | /// <summary> | 310 | /// <summary> |
318 | /// | 311 | /// |
319 | /// </summary> | 312 | /// </summary> |
@@ -322,14 +315,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
322 | public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam) | 315 | public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam) |
323 | { | 316 | { |
324 | LLObject.TextureEntry textureEnt = new LLObject.TextureEntry(texture, 0, texture.Length); | 317 | LLObject.TextureEntry textureEnt = new LLObject.TextureEntry(texture, 0, texture.Length); |
325 | this.m_textureEntry = textureEnt; | 318 | m_textureEntry = textureEnt; |
326 | 319 | ||
327 | for (int i = 0; i < visualParam.Length; i++) | 320 | for (int i = 0; i < visualParam.Length; i++) |
328 | { | 321 | { |
329 | this.visualParams[i] = visualParam[i].ParamValue; | 322 | visualParams[i] = visualParam[i].ParamValue; |
330 | } | 323 | } |
331 | 324 | ||
332 | this.SendArrearanceToAllOtherAgents(); | 325 | SendArrearanceToAllOtherAgents(); |
333 | } | 326 | } |
334 | 327 | ||
335 | /// <summary> | 328 | /// <summary> |
@@ -337,16 +330,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
337 | /// </summary> | 330 | /// </summary> |
338 | public void CompleteMovement() | 331 | public void CompleteMovement() |
339 | { | 332 | { |
340 | LLVector3 look = this.Velocity; | 333 | LLVector3 look = Velocity; |
341 | if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) | 334 | if ((look.X == 0) && (look.Y == 0) && (look.Z == 0)) |
342 | { | 335 | { |
343 | look = new LLVector3(0.99f, 0.042f, 0); | 336 | look = new LLVector3(0.99f, 0.042f, 0); |
344 | } | 337 | } |
345 | this.ControllingClient.MoveAgentIntoRegion(m_regionInfo, AbsolutePosition, look); | 338 | ControllingClient.MoveAgentIntoRegion(m_regionInfo, AbsolutePosition, look); |
346 | if (this.childAgent) | 339 | if (childAgent) |
347 | { | 340 | { |
348 | this.childAgent = false; | 341 | childAgent = false; |
349 | 342 | ||
350 | //this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient); | 343 | //this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient); |
351 | } | 344 | } |
352 | } | 345 | } |
@@ -363,47 +356,45 @@ namespace OpenSim.Region.Environment.Scenes | |||
363 | bool DCFlagKeyPressed = false; | 356 | bool DCFlagKeyPressed = false; |
364 | Vector3 agent_control_v3 = new Vector3(0, 0, 0); | 357 | Vector3 agent_control_v3 = new Vector3(0, 0, 0); |
365 | Quaternion q = new Quaternion(bodyRotation.W, bodyRotation.X, bodyRotation.Y, bodyRotation.Z); | 358 | Quaternion q = new Quaternion(bodyRotation.W, bodyRotation.X, bodyRotation.Y, bodyRotation.Z); |
366 | bool oldflying = this.PhysActor.Flying; | 359 | bool oldflying = PhysActor.Flying; |
367 | this.PhysActor.Flying = ((flags & (uint)MainAvatar.ControlFlags.AGENT_CONTROL_FLY) != 0); | 360 | PhysActor.Flying = ((flags & (uint) MainAvatar.ControlFlags.AGENT_CONTROL_FLY) != 0); |
368 | if (this.PhysActor.Flying != oldflying) | 361 | if (PhysActor.Flying != oldflying) |
369 | { | 362 | { |
370 | update_movementflag = true; | 363 | update_movementflag = true; |
371 | } | 364 | } |
372 | 365 | ||
373 | if (q != this.bodyRot) | 366 | if (q != bodyRot) |
374 | { | 367 | { |
375 | this.bodyRot = q; | 368 | bodyRot = q; |
376 | update_rotation = true; | 369 | update_rotation = true; |
377 | } | 370 | } |
378 | foreach (Dir_ControlFlags DCF in Enum.GetValues(typeof(Dir_ControlFlags))) | 371 | foreach (Dir_ControlFlags DCF in Enum.GetValues(typeof (Dir_ControlFlags))) |
379 | { | 372 | { |
380 | if ((flags & (uint)DCF) != 0) | 373 | if ((flags & (uint) DCF) != 0) |
381 | { | 374 | { |
382 | DCFlagKeyPressed = true; | 375 | DCFlagKeyPressed = true; |
383 | agent_control_v3 += Dir_Vectors[i]; | 376 | agent_control_v3 += Dir_Vectors[i]; |
384 | if ((movementflag & (uint)DCF) == 0) | 377 | if ((movementflag & (uint) DCF) == 0) |
385 | { | 378 | { |
386 | movementflag += (byte)(uint)DCF; | 379 | movementflag += (byte) (uint) DCF; |
387 | update_movementflag = true; | 380 | update_movementflag = true; |
388 | } | 381 | } |
389 | } | 382 | } |
390 | else | 383 | else |
391 | { | 384 | { |
392 | if ((movementflag & (uint)DCF) != 0) | 385 | if ((movementflag & (uint) DCF) != 0) |
393 | { | 386 | { |
394 | movementflag -= (byte)(uint)DCF; | 387 | movementflag -= (byte) (uint) DCF; |
395 | update_movementflag = true; | 388 | update_movementflag = true; |
396 | |||
397 | } | 389 | } |
398 | } | 390 | } |
399 | i++; | 391 | i++; |
400 | } | 392 | } |
401 | if ((update_movementflag) || (update_rotation && DCFlagKeyPressed)) | 393 | if ((update_movementflag) || (update_rotation && DCFlagKeyPressed)) |
402 | { | 394 | { |
403 | this.AddNewMovement(agent_control_v3, q); | 395 | AddNewMovement(agent_control_v3, q); |
404 | } | 396 | } |
405 | UpdateMovementAnimations(update_movementflag); | 397 | UpdateMovementAnimations(update_movementflag); |
406 | |||
407 | } | 398 | } |
408 | 399 | ||
409 | protected void UpdateMovementAnimations(bool update_movementflag) | 400 | protected void UpdateMovementAnimations(bool update_movementflag) |
@@ -412,49 +403,48 @@ namespace OpenSim.Region.Environment.Scenes | |||
412 | { | 403 | { |
413 | if (movementflag != 0) | 404 | if (movementflag != 0) |
414 | { | 405 | { |
415 | if (this._physActor.Flying) | 406 | if (_physActor.Flying) |
416 | { | 407 | { |
417 | this.SendAnimPack(Animations.AnimsLLUUID["FLY"], 1); | 408 | SendAnimPack(Animations.AnimsLLUUID["FLY"], 1); |
418 | } | 409 | } |
419 | else | 410 | else |
420 | { | 411 | { |
421 | this.SendAnimPack(Animations.AnimsLLUUID["WALK"], 1); | 412 | SendAnimPack(Animations.AnimsLLUUID["WALK"], 1); |
422 | } | 413 | } |
423 | } | 414 | } |
424 | else | 415 | else |
425 | { | 416 | { |
426 | this.SendAnimPack(Animations.AnimsLLUUID["STAND"], 1); | 417 | SendAnimPack(Animations.AnimsLLUUID["STAND"], 1); |
427 | } | 418 | } |
428 | } | 419 | } |
429 | |||
430 | } | 420 | } |
431 | 421 | ||
432 | 422 | ||
433 | protected void AddNewMovement(Vector3 vec, Quaternion rotation) | 423 | protected void AddNewMovement(Vector3 vec, Quaternion rotation) |
434 | { | 424 | { |
435 | NewForce newVelocity = new NewForce(); | 425 | NewForce newVelocity = new NewForce(); |
436 | Vector3 direc = rotation * vec; | 426 | Vector3 direc = rotation*vec; |
437 | direc.Normalize(); | 427 | direc.Normalize(); |
438 | 428 | ||
439 | direc = direc * ((0.03f) * 128f); | 429 | direc = direc*((0.03f)*128f); |
440 | if (this._physActor.Flying) | 430 | if (_physActor.Flying) |
441 | direc *= 4; | 431 | direc *= 4; |
442 | 432 | ||
443 | newVelocity.X = direc.x; | 433 | newVelocity.X = direc.x; |
444 | newVelocity.Y = direc.y; | 434 | newVelocity.Y = direc.y; |
445 | newVelocity.Z = direc.z; | 435 | newVelocity.Z = direc.z; |
446 | this.forcesList.Add(newVelocity); | 436 | forcesList.Add(newVelocity); |
447 | } | 437 | } |
448 | 438 | ||
449 | #endregion | 439 | #endregion |
450 | 440 | ||
451 | #region Overridden Methods | 441 | #region Overridden Methods |
442 | |||
452 | /// <summary> | 443 | /// <summary> |
453 | /// | 444 | /// |
454 | /// </summary> | 445 | /// </summary> |
455 | public override void LandRenegerated() | 446 | public override void LandRenegerated() |
456 | { | 447 | { |
457 | |||
458 | } | 448 | } |
459 | 449 | ||
460 | /// <summary> | 450 | /// <summary> |
@@ -462,63 +452,65 @@ namespace OpenSim.Region.Environment.Scenes | |||
462 | /// </summary> | 452 | /// </summary> |
463 | public override void Update() | 453 | public override void Update() |
464 | { | 454 | { |
465 | this.SendPrimUpdates(); | 455 | SendPrimUpdates(); |
466 | 456 | ||
467 | if (this.newCoarseLocations) { | 457 | if (newCoarseLocations) |
468 | this.SendCoarseLocations(); | 458 | { |
469 | this.newCoarseLocations = false; | 459 | SendCoarseLocations(); |
460 | newCoarseLocations = false; | ||
470 | } | 461 | } |
471 | 462 | ||
472 | if (this.childAgent == false) | 463 | if (childAgent == false) |
473 | { | 464 | { |
474 | |||
475 | /// check for user movement 'forces' (ie commands to move) | 465 | /// check for user movement 'forces' (ie commands to move) |
476 | if (this.newForce) | 466 | if (newForce) |
477 | { | 467 | { |
478 | this.SendTerseUpdateToALLClients(); | 468 | SendTerseUpdateToALLClients(); |
479 | _updateCount = 0; | 469 | _updateCount = 0; |
480 | } | 470 | } |
481 | 471 | ||
482 | /// check for scripted movement (?) | 472 | /// check for scripted movement (?) |
483 | else if (movementflag != 0) | 473 | else if (movementflag != 0) |
484 | { | 474 | { |
485 | _updateCount++; | 475 | _updateCount++; |
486 | if (_updateCount > 3) | 476 | if (_updateCount > 3) |
487 | { | 477 | { |
488 | this.SendTerseUpdateToALLClients(); | 478 | SendTerseUpdateToALLClients(); |
489 | _updateCount = 0; | 479 | _updateCount = 0; |
490 | } | 480 | } |
491 | } | 481 | } |
492 | 482 | ||
493 | /// check for physics-related movement | 483 | /// check for physics-related movement |
494 | else if (this.lastPhysPos.GetDistanceTo(this.AbsolutePosition) > 0.02 ) | 484 | else if (lastPhysPos.GetDistanceTo(AbsolutePosition) > 0.02) |
495 | { | 485 | { |
496 | this.SendTerseUpdateToALLClients(); | 486 | SendTerseUpdateToALLClients(); |
497 | _updateCount = 0; | 487 | _updateCount = 0; |
498 | this.lastPhysPos = this.AbsolutePosition; | 488 | lastPhysPos = AbsolutePosition; |
499 | } | 489 | } |
500 | this.CheckForSignificantMovement(); | 490 | CheckForSignificantMovement(); |
501 | this.CheckForBorderCrossing(); | 491 | CheckForBorderCrossing(); |
502 | |||
503 | } | 492 | } |
504 | } | 493 | } |
494 | |||
505 | #endregion | 495 | #endregion |
506 | 496 | ||
507 | #region Update Client(s) | 497 | #region Update Client(s) |
498 | |||
508 | /// <summary> | 499 | /// <summary> |
509 | /// | 500 | /// |
510 | /// </summary> | 501 | /// </summary> |
511 | /// <param name="RemoteClient"></param> | 502 | /// <param name="RemoteClient"></param> |
512 | public void SendTerseUpdateToClient(IClientAPI RemoteClient) | 503 | public void SendTerseUpdateToClient(IClientAPI RemoteClient) |
513 | { | 504 | { |
514 | LLVector3 pos = this.AbsolutePosition; | 505 | LLVector3 pos = AbsolutePosition; |
515 | LLVector3 vel = this.Velocity; | 506 | LLVector3 vel = Velocity; |
516 | LLQuaternion rot; | 507 | LLQuaternion rot; |
517 | rot.X = this.bodyRot.x; | 508 | rot.X = bodyRot.x; |
518 | rot.Y = this.bodyRot.y; | 509 | rot.Y = bodyRot.y; |
519 | rot.Z = this.bodyRot.z; | 510 | rot.Z = bodyRot.z; |
520 | rot.W = this.bodyRot.w; | 511 | rot.W = bodyRot.w; |
521 | RemoteClient.SendAvatarTerseUpdate(this.m_regionHandle, 64096, this.LocalId, new LLVector3(pos.X, pos.Y, pos.Z), new LLVector3(vel.X, vel.Y, vel.Z), rot); | 512 | RemoteClient.SendAvatarTerseUpdate(m_regionHandle, 64096, LocalId, new LLVector3(pos.X, pos.Y, pos.Z), |
513 | new LLVector3(vel.X, vel.Y, vel.Z), rot); | ||
522 | } | 514 | } |
523 | 515 | ||
524 | /// <summary> | 516 | /// <summary> |
@@ -526,42 +518,44 @@ namespace OpenSim.Region.Environment.Scenes | |||
526 | /// </summary> | 518 | /// </summary> |
527 | public void SendTerseUpdateToALLClients() | 519 | public void SendTerseUpdateToALLClients() |
528 | { | 520 | { |
529 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 521 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
530 | for (int i = 0; i < avatars.Count; i++) | 522 | for (int i = 0; i < avatars.Count; i++) |
531 | { | 523 | { |
532 | this.SendTerseUpdateToClient(avatars[i].ControllingClient); | 524 | SendTerseUpdateToClient(avatars[i].ControllingClient); |
533 | } | 525 | } |
534 | } | 526 | } |
535 | 527 | ||
536 | 528 | ||
537 | public void SendCoarseLocations() | 529 | public void SendCoarseLocations() |
538 | { | 530 | { |
539 | List<LLVector3> CoarseLocations = new List<LLVector3>(); | 531 | List<LLVector3> CoarseLocations = new List<LLVector3>(); |
540 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 532 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
541 | for (int i = 0; i < avatars.Count; i++) | 533 | for (int i = 0; i < avatars.Count; i++) |
542 | { | 534 | { |
543 | if (avatars[i] != this && (!avatars[i].childAgent) ) { | 535 | if (avatars[i] != this && (!avatars[i].childAgent)) |
544 | CoarseLocations.Add(avatars[i].AbsolutePosition); | 536 | { |
545 | } | 537 | CoarseLocations.Add(avatars[i].AbsolutePosition); |
538 | } | ||
546 | } | 539 | } |
547 | this.ControllingClient.SendCoarseLocationUpdate(CoarseLocations); | 540 | ControllingClient.SendCoarseLocationUpdate(CoarseLocations); |
548 | } | 541 | } |
549 | 542 | ||
550 | public void CoarseLocationChange(ScenePresence avatar) | 543 | public void CoarseLocationChange(ScenePresence avatar) |
551 | { | 544 | { |
552 | newCoarseLocations = true; | 545 | newCoarseLocations = true; |
553 | } | 546 | } |
554 | 547 | ||
555 | private void NotifyMyCoarseLocationChange() | 548 | private void NotifyMyCoarseLocationChange() |
556 | { | 549 | { |
557 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 550 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
558 | for (int i = 0; i < avatars.Count; i++) { | 551 | for (int i = 0; i < avatars.Count; i++) |
559 | if (avatars[i] != this) { | 552 | { |
560 | avatars[i].CoarseLocationChange(this); | 553 | if (avatars[i] != this) |
561 | } | 554 | { |
555 | avatars[i].CoarseLocationChange(this); | ||
556 | } | ||
562 | } | 557 | } |
563 | 558 | } | |
564 | } | ||
565 | 559 | ||
566 | 560 | ||
567 | /// <summary> | 561 | /// <summary> |
@@ -570,16 +564,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
570 | /// <param name="remoteAvatar"></param> | 564 | /// <param name="remoteAvatar"></param> |
571 | public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar) | 565 | public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar) |
572 | { | 566 | { |
573 | remoteAvatar.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, this.m_firstname, this.m_lastname, this.m_uuid, this.LocalId, this.AbsolutePosition, this.m_textureEntry.ToBytes()); | 567 | remoteAvatar.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid, |
568 | LocalId, AbsolutePosition, m_textureEntry.ToBytes()); | ||
574 | } | 569 | } |
575 | 570 | ||
576 | public void SendFullUpdateToALLClients() | 571 | public void SendFullUpdateToALLClients() |
577 | { | 572 | { |
578 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 573 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
579 | foreach (ScenePresence avatar in this.m_scene.RequestAvatarList()) | 574 | foreach (ScenePresence avatar in m_scene.RequestAvatarList()) |
580 | { | 575 | { |
581 | this.SendFullUpdateToOtherClient(avatar); | 576 | SendFullUpdateToOtherClient(avatar); |
582 | if (avatar.LocalId != this.LocalId) | 577 | if (avatar.LocalId != LocalId) |
583 | { | 578 | { |
584 | if (!avatar.childAgent) | 579 | if (!avatar.childAgent) |
585 | { | 580 | { |
@@ -595,15 +590,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
595 | /// </summary> | 590 | /// </summary> |
596 | public void SendInitialData() | 591 | public void SendInitialData() |
597 | { | 592 | { |
598 | this.ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, this.m_firstname, this.m_lastname, this.m_uuid, this.LocalId, this.AbsolutePosition, this.m_textureEntry.ToBytes()); | 593 | ControllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid, LocalId, |
599 | if (!this.childAgent) | 594 | AbsolutePosition, m_textureEntry.ToBytes()); |
595 | if (!childAgent) | ||
600 | { | 596 | { |
601 | this.m_scene.InformClientOfNeighbours(this.ControllingClient); | 597 | m_scene.InformClientOfNeighbours(ControllingClient); |
602 | this.newAvatar = false; | 598 | newAvatar = false; |
603 | } | 599 | } |
604 | 600 | ||
605 | this.SendFullUpdateToALLClients(); | 601 | SendFullUpdateToALLClients(); |
606 | this.SendArrearanceToAllOtherAgents(); | 602 | SendArrearanceToAllOtherAgents(); |
607 | } | 603 | } |
608 | 604 | ||
609 | /// <summary> | 605 | /// <summary> |
@@ -612,13 +608,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
612 | /// <param name="OurClient"></param> | 608 | /// <param name="OurClient"></param> |
613 | public void SendOurAppearance(IClientAPI OurClient) | 609 | public void SendOurAppearance(IClientAPI OurClient) |
614 | { | 610 | { |
615 | this.ControllingClient.SendWearables(this.Wearables); | 611 | ControllingClient.SendWearables(Wearables); |
616 | 612 | ||
617 | //this.SendFullUpdateToALLClients(); | 613 | //this.SendFullUpdateToALLClients(); |
618 | //this.SendArrearanceToAllOtherAgents(); | 614 | //this.SendArrearanceToAllOtherAgents(); |
619 | 615 | ||
620 | this.m_scene.SendAllSceneObjectsToClient(this); | 616 | m_scene.SendAllSceneObjectsToClient(this); |
621 | this.ControllingClient.SendViewerTime(this.m_scene.TimePhase); | 617 | ControllingClient.SendViewerTime(m_scene.TimePhase); |
622 | 618 | ||
623 | //Please don't remove the following code (at least not yet), just leave it commented out | 619 | //Please don't remove the following code (at least not yet), just leave it commented out |
624 | //gives the user god powers, should help with debuging things in the future | 620 | //gives the user god powers, should help with debuging things in the future |
@@ -636,10 +632,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
636 | /// </summary> | 632 | /// </summary> |
637 | public void SendArrearanceToAllOtherAgents() | 633 | public void SendArrearanceToAllOtherAgents() |
638 | { | 634 | { |
639 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 635 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
640 | foreach (ScenePresence avatar in this.m_scene.RequestAvatarList()) | 636 | foreach (ScenePresence avatar in m_scene.RequestAvatarList()) |
641 | { | 637 | { |
642 | this.SendAppearanceToOtherAgent(avatar); | 638 | SendAppearanceToOtherAgent(avatar); |
643 | } | 639 | } |
644 | } | 640 | } |
645 | 641 | ||
@@ -649,7 +645,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
649 | /// <param name="avatarInfo"></param> | 645 | /// <param name="avatarInfo"></param> |
650 | public void SendAppearanceToOtherAgent(ScenePresence avatarInfo) | 646 | public void SendAppearanceToOtherAgent(ScenePresence avatarInfo) |
651 | { | 647 | { |
652 | avatarInfo.ControllingClient.SendAppearance(this.ControllingClient.AgentId, this.visualParams, this.m_textureEntry.ToBytes()); | 648 | avatarInfo.ControllingClient.SendAppearance(ControllingClient.AgentId, visualParams, |
649 | m_textureEntry.ToBytes()); | ||
653 | } | 650 | } |
654 | 651 | ||
655 | /// <summary> | 652 | /// <summary> |
@@ -659,12 +656,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
659 | /// <param name="seq"></param> | 656 | /// <param name="seq"></param> |
660 | public void SendAnimPack(LLUUID animID, int seq) | 657 | public void SendAnimPack(LLUUID animID, int seq) |
661 | { | 658 | { |
662 | this.current_anim = animID; | 659 | current_anim = animID; |
663 | this.anim_seq = seq; | 660 | anim_seq = seq; |
664 | List<ScenePresence> avatars = this.m_scene.RequestAvatarList(); | 661 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
665 | for (int i = 0; i < avatars.Count; i++) | 662 | for (int i = 0; i < avatars.Count; i++) |
666 | { | 663 | { |
667 | avatars[i].ControllingClient.SendAnimation(animID, seq, this.ControllingClient.AgentId); | 664 | avatars[i].ControllingClient.SendAnimation(animID, seq, ControllingClient.AgentId); |
668 | } | 665 | } |
669 | } | 666 | } |
670 | 667 | ||
@@ -673,48 +670,51 @@ namespace OpenSim.Region.Environment.Scenes | |||
673 | /// </summary> | 670 | /// </summary> |
674 | public void SendAnimPack() | 671 | public void SendAnimPack() |
675 | { | 672 | { |
676 | this.SendAnimPack(this.current_anim, this.anim_seq); | 673 | SendAnimPack(current_anim, anim_seq); |
677 | } | 674 | } |
675 | |||
678 | #endregion | 676 | #endregion |
679 | 677 | ||
680 | #region Significant Movement Method | 678 | #region Significant Movement Method |
681 | 679 | ||
682 | protected void CheckForSignificantMovement() | 680 | protected void CheckForSignificantMovement() |
683 | { | 681 | { |
684 | if (libsecondlife.Helpers.VecDist(this.AbsolutePosition, this.posLastSignificantMove) > 2.0) | 682 | if (Helpers.VecDist(AbsolutePosition, posLastSignificantMove) > 2.0) |
685 | { | 683 | { |
686 | this.posLastSignificantMove = this.AbsolutePosition; | 684 | posLastSignificantMove = AbsolutePosition; |
687 | if (OnSignificantClientMovement != null) | 685 | if (OnSignificantClientMovement != null) |
688 | { | 686 | { |
689 | OnSignificantClientMovement(this.ControllingClient); | 687 | OnSignificantClientMovement(ControllingClient); |
690 | NotifyMyCoarseLocationChange(); | 688 | NotifyMyCoarseLocationChange(); |
691 | } | 689 | } |
692 | } | 690 | } |
693 | } | 691 | } |
692 | |||
694 | #endregion | 693 | #endregion |
695 | 694 | ||
696 | #region Border Crossing Methods | 695 | #region Border Crossing Methods |
696 | |||
697 | /// <summary> | 697 | /// <summary> |
698 | /// | 698 | /// |
699 | /// </summary> | 699 | /// </summary> |
700 | protected void CheckForBorderCrossing() | 700 | protected void CheckForBorderCrossing() |
701 | { | 701 | { |
702 | LLVector3 pos2 = this.AbsolutePosition; | 702 | LLVector3 pos2 = AbsolutePosition; |
703 | LLVector3 vel = this.Velocity; | 703 | LLVector3 vel = Velocity; |
704 | 704 | ||
705 | float timeStep = 0.1f; | 705 | float timeStep = 0.1f; |
706 | pos2.X = pos2.X + (vel.X * timeStep); | 706 | pos2.X = pos2.X + (vel.X*timeStep); |
707 | pos2.Y = pos2.Y + (vel.Y * timeStep); | 707 | pos2.Y = pos2.Y + (vel.Y*timeStep); |
708 | pos2.Z = pos2.Z + (vel.Z * timeStep); | 708 | pos2.Z = pos2.Z + (vel.Z*timeStep); |
709 | 709 | ||
710 | if ((pos2.X < 0) || (pos2.X > 256)) | 710 | if ((pos2.X < 0) || (pos2.X > 256)) |
711 | { | 711 | { |
712 | this.CrossToNewRegion(); | 712 | CrossToNewRegion(); |
713 | } | 713 | } |
714 | 714 | ||
715 | if ((pos2.Y < 0) || (pos2.Y > 256)) | 715 | if ((pos2.Y < 0) || (pos2.Y > 256)) |
716 | { | 716 | { |
717 | this.CrossToNewRegion(); | 717 | CrossToNewRegion(); |
718 | } | 718 | } |
719 | } | 719 | } |
720 | 720 | ||
@@ -723,10 +723,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
723 | /// </summary> | 723 | /// </summary> |
724 | protected void CrossToNewRegion() | 724 | protected void CrossToNewRegion() |
725 | { | 725 | { |
726 | LLVector3 pos = this.AbsolutePosition; | 726 | LLVector3 pos = AbsolutePosition; |
727 | LLVector3 newpos = new LLVector3(pos.X, pos.Y, pos.Z); | 727 | LLVector3 newpos = new LLVector3(pos.X, pos.Y, pos.Z); |
728 | uint neighbourx = this.m_regionInfo.RegionLocX; | 728 | uint neighbourx = m_regionInfo.RegionLocX; |
729 | uint neighboury = this.m_regionInfo.RegionLocY; | 729 | uint neighboury = m_regionInfo.RegionLocY; |
730 | 730 | ||
731 | if (pos.X < 1.7F) | 731 | if (pos.X < 1.7F) |
732 | { | 732 | { |
@@ -749,24 +749,28 @@ namespace OpenSim.Region.Environment.Scenes | |||
749 | newpos.Y = 0.1F; | 749 | newpos.Y = 0.1F; |
750 | } | 750 | } |
751 | 751 | ||
752 | LLVector3 vel = this.m_velocity; | 752 | LLVector3 vel = m_velocity; |
753 | ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * 256), (uint)(neighboury * 256)); | 753 | ulong neighbourHandle = Helpers.UIntsToLong((uint) (neighbourx*256), (uint) (neighboury*256)); |
754 | RegionInfo neighbourRegion = this.m_scene.RequestNeighbouringRegionInfo(neighbourHandle); | 754 | RegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle); |
755 | if (neighbourRegion != null) | 755 | if (neighbourRegion != null) |
756 | { | 756 | { |
757 | bool res = this.m_scene.InformNeighbourOfCrossing(neighbourHandle, this.ControllingClient.AgentId, newpos, this._physActor.Flying); | 757 | bool res = |
758 | m_scene.InformNeighbourOfCrossing(neighbourHandle, ControllingClient.AgentId, newpos, | ||
759 | _physActor.Flying); | ||
758 | if (res) | 760 | if (res) |
759 | { | 761 | { |
760 | //TODO: following line is hard coded to port 9000, really need to change this as soon as possible | 762 | //TODO: following line is hard coded to port 9000, really need to change this as soon as possible |
761 | AgentCircuitData circuitdata = this.ControllingClient.RequestClientInfo(); | 763 | AgentCircuitData circuitdata = ControllingClient.RequestClientInfo(); |
762 | string capsPath = Util.GetCapsURL(this.ControllingClient.AgentId); | 764 | string capsPath = Util.GetCapsURL(ControllingClient.AgentId); |
763 | this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath); | 765 | ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, |
764 | this.MakeChildAgent(); | 766 | capsPath); |
765 | this.m_scene.SendKillObject(this.m_localId); | 767 | MakeChildAgent(); |
766 | this.NotifyMyCoarseLocationChange(); | 768 | m_scene.SendKillObject(m_localId); |
769 | NotifyMyCoarseLocationChange(); | ||
767 | } | 770 | } |
768 | } | 771 | } |
769 | } | 772 | } |
773 | |||
770 | #endregion | 774 | #endregion |
771 | 775 | ||
772 | /// <summary> | 776 | /// <summary> |
@@ -774,7 +778,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
774 | /// </summary> | 778 | /// </summary> |
775 | public static void LoadAnims() | 779 | public static void LoadAnims() |
776 | { | 780 | { |
777 | |||
778 | } | 781 | } |
779 | 782 | ||
780 | /// <summary> | 783 | /// <summary> |
@@ -783,21 +786,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
783 | public override void UpdateMovement() | 786 | public override void UpdateMovement() |
784 | { | 787 | { |
785 | newForce = false; | 788 | newForce = false; |
786 | lock (this.forcesList) | 789 | lock (forcesList) |
787 | { | 790 | { |
788 | if (this.forcesList.Count > 0) | 791 | if (forcesList.Count > 0) |
789 | { | 792 | { |
790 | for (int i = 0; i < this.forcesList.Count; i++) | 793 | for (int i = 0; i < forcesList.Count; i++) |
791 | { | 794 | { |
792 | NewForce force = this.forcesList[i]; | 795 | NewForce force = forcesList[i]; |
793 | 796 | ||
794 | this.updateflag = true; | 797 | updateflag = true; |
795 | this.Velocity = new LLVector3(force.X, force.Y, force.Z); | 798 | Velocity = new LLVector3(force.X, force.Y, force.Z); |
796 | this.newForce = true; | 799 | newForce = true; |
797 | } | 800 | } |
798 | for (int i = 0; i < this.forcesList.Count; i++) | 801 | for (int i = 0; i < forcesList.Count; i++) |
799 | { | 802 | { |
800 | this.forcesList.RemoveAt(0); | 803 | forcesList.RemoveAt(0); |
801 | } | 804 | } |
802 | } | 805 | } |
803 | } | 806 | } |
@@ -824,7 +827,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
824 | 827 | ||
825 | public NewForce() | 828 | public NewForce() |
826 | { | 829 | { |
827 | |||
828 | } | 830 | } |
829 | } | 831 | } |
830 | 832 | ||
@@ -833,5 +835,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
833 | throw new Exception("The method or operation is not implemented."); | 835 | throw new Exception("The method or operation is not implemented."); |
834 | } | 836 | } |
835 | } | 837 | } |
836 | 838 | } \ No newline at end of file | |
837 | } | ||