* Remove redundancies in ScenePresence

0.6.5-rc1
Teravus Ovares 2009-03-28 02:41:51 +00:00
parent f5812b3702
commit 67be0213d4
1 changed files with 59 additions and 63 deletions

View File

@ -28,10 +28,7 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.Serialization;
using System.Security.Permissions;
using OpenMetaverse;
using OpenMetaverse.Packets;
using log4net;
using OpenSim.Framework;
using OpenSim.Framework.Client;
@ -39,7 +36,6 @@ using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes.Types;
using OpenSim.Region.Physics.Manager;
using OSD = OpenMetaverse.StructuredData.OSD;
namespace OpenSim.Region.Framework.Scenes
{
@ -83,24 +79,24 @@ namespace OpenSim.Region.Framework.Scenes
private ScriptControlled IgnoredControls = ScriptControlled.CONTROL_ZERO;
private ScriptControlled LastCommands = ScriptControlled.CONTROL_ZERO;
private bool MouseDown = false;
private SceneObjectGroup proxyObjectGroup = null;
private SceneObjectGroup proxyObjectGroup;
//private SceneObjectPart proxyObjectPart = null;
public Vector3 lastKnownAllowedPosition = new Vector3();
public bool sentMessageAboutRestrictedParcelFlyingDown = false;
public Vector3 lastKnownAllowedPosition;
public bool sentMessageAboutRestrictedParcelFlyingDown;
private bool m_updateflag = false;
private byte m_movementflag = 0;
private bool m_updateflag;
private byte m_movementflag;
private readonly List<NewForce> m_forcesList = new List<NewForce>();
private short m_updateCount = 0;
private uint m_requestedSitTargetID = 0;
private short m_updateCount;
private uint m_requestedSitTargetID;
private UUID m_requestedSitTargetUUID = UUID.Zero;
private bool m_startAnimationSet = false;
private bool m_startAnimationSet;
//private Vector3 m_requestedSitOffset = new Vector3();
private Vector3 m_LastFinitePos = new Vector3();
private Vector3 m_LastFinitePos;
private float m_sitAvatarHeight = 2.0f;
@ -111,26 +107,26 @@ namespace OpenSim.Region.Framework.Scenes
// rotation, prim cut, prim twist, prim taper, and prim shear. See mantis
// issue #1716
private static readonly Vector3 m_sitTargetCorrectionOffset = new Vector3(0.1f, 0.0f, 0.3f);
private float m_godlevel = 0;
private float m_godlevel;
private bool m_invulnerable = true;
private Vector3 m_LastChildAgentUpdatePosition = new Vector3();
private Vector3 m_LastChildAgentUpdatePosition;
private int m_perfMonMS = 0;
private int m_perfMonMS;
private bool m_sitStatus = false;
private bool m_sitStatus;
private bool m_setAlwaysRun = false;
private bool m_setAlwaysRun;
private Quaternion m_bodyRot= Quaternion.Identity;
public bool IsRestrictedToRegion = false;
public bool IsRestrictedToRegion;
public string JID = string.Empty;
// Agent moves with a PID controller causing a force to be exerted.
private bool m_newForce = false;
private bool m_newForce;
private bool m_newCoarseLocations = true;
private float m_health = 100f;
@ -140,7 +136,7 @@ namespace OpenSim.Region.Framework.Scenes
private float m_avHeight = 127.0f;
protected RegionInfo m_regionInfo;
protected ulong crossingFromRegion = 0;
protected ulong crossingFromRegion;
private readonly Vector3[] Dir_Vectors = new Vector3[6];
@ -162,27 +158,27 @@ namespace OpenSim.Region.Framework.Scenes
protected Vector3 m_CameraAtAxis = Vector3.Zero;
protected Vector3 m_CameraLeftAxis = Vector3.Zero;
protected Vector3 m_CameraUpAxis = Vector3.Zero;
private uint m_AgentControlFlags = 0;
private uint m_AgentControlFlags;
private Quaternion m_headrotation = Quaternion.Identity;
private byte m_state = 0;
private byte m_state;
//Reuse the Vector3 instead of creating a new one on the UpdateMovement method
private Vector3 movementvector = Vector3.Zero;
private bool m_autopilotMoving = false;
private bool m_autopilotMoving;
private Vector3 m_autoPilotTarget = Vector3.Zero;
private bool m_sitAtAutoTarget = false;
private bool m_sitAtAutoTarget;
private string m_nextSitAnimation = String.Empty;
//PauPaw:Proper PID Controler for autopilot************
private bool m_moveToPositionInProgress = false;
private bool m_moveToPositionInProgress;
private Vector3 m_moveToPositionTarget = Vector3.Zero;
//private int m_moveToPositionStateStatus = 0;
//*****************************************************
// Agent's Draw distance.
protected float m_DrawDistance = 0f;
protected float m_DrawDistance;
protected AvatarAppearance m_appearance;
@ -209,10 +205,10 @@ namespace OpenSim.Region.Framework.Scenes
/// <summary>
/// Position at which a significant movement was made
/// </summary>
private Vector3 posLastSignificantMove = new Vector3();
private Vector3 posLastSignificantMove;
private UpdateQueue m_partsUpdateQueue = new UpdateQueue();
private Queue<SceneObjectGroup> m_pendingObjects = null;
private Queue<SceneObjectGroup> m_pendingObjects;
private Dictionary<UUID, ScenePartUpdate> m_updateTimes = new Dictionary<UUID, ScenePartUpdate>();
@ -374,7 +370,7 @@ namespace OpenSim.Region.Framework.Scenes
get { return (IClientCore) m_controllingClient; }
}
protected Vector3 m_parentPosition = new Vector3();
protected Vector3 m_parentPosition;
public Vector3 ParentPosition
{
get { return m_parentPosition; }
@ -472,7 +468,7 @@ namespace OpenSim.Region.Framework.Scenes
set { m_isChildAgent = value; }
}
private uint m_parentID = 0;
private uint m_parentID;
public uint ParentID
{
@ -693,7 +689,7 @@ namespace OpenSim.Region.Framework.Scenes
// this.UpdateQuadTreeNode();
//this.RefreshQuadObject();
//}
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
if (m_pendingObjects == null)
{
@ -811,7 +807,7 @@ namespace OpenSim.Region.Framework.Scenes
break;
}
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
}
#region Status Methods
@ -1129,7 +1125,7 @@ namespace OpenSim.Region.Framework.Scenes
//}
//}
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
uint flags = agentData.ControlFlags;
Quaternion bodyRotation = agentData.BodyRotation;
@ -1167,7 +1163,7 @@ namespace OpenSim.Region.Framework.Scenes
if (scriptedcontrols.Count > 0)
{
SendControlToScripts(flags);
flags = this.RemoveIgnoredControls(flags, IgnoredControls);
flags = RemoveIgnoredControls(flags, IgnoredControls);
}
}
@ -1394,7 +1390,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scene.EventManager.TriggerOnClientMovement(this);
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
}
public void DoAutoPilot(uint not_used, Vector3 Pos, IClientAPI remote_client)
@ -1450,7 +1446,7 @@ namespace OpenSim.Region.Framework.Scenes
catch (Exception ex)
{
//Why did I get this error?
m_log.Error("[SCENEPRESENCE]: DoMoveToPosition" + ex.ToString());
m_log.Error("[SCENEPRESENCE]: DoMoveToPosition" + ex);
}
}
@ -1473,6 +1469,7 @@ namespace OpenSim.Region.Framework.Scenes
//ControllingClient.SendSitResponse(m_requestedSitTargetID, m_requestedSitOffset, Quaternion.Identity, false, Vector3.Zero, Vector3.Zero, false);
m_requestedSitTargetUUID = UUID.Zero;
}
/*
else
{
//ControllingClient.SendAlertMessage("Autopilot cancelled");
@ -1489,7 +1486,7 @@ namespace OpenSim.Region.Framework.Scenes
//m_scene.DeleteSceneObject(proxyObjectGroup);
//}
}
*/
m_autoPilotTarget = Vector3.Zero;
m_autopilotMoving = false;
}
@ -1724,7 +1721,7 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
m_log.Warn("Sit requested on unknown object: " + targetID.ToString());
m_log.Warn("Sit requested on unknown object: " + targetID);
}
SendSitResponse(remoteClient, targetID, offset);
@ -1796,12 +1793,12 @@ namespace OpenSim.Region.Framework.Scenes
/// Event handler for the 'Always run' setting on the client
/// Tells the physics plugin to increase speed of movement.
/// </summary>
public void HandleSetAlwaysRun(IClientAPI remoteClient, bool SetAlwaysRun)
public void HandleSetAlwaysRun(IClientAPI remoteClient, bool pSetAlwaysRun)
{
m_setAlwaysRun = SetAlwaysRun;
m_setAlwaysRun = pSetAlwaysRun;
if (PhysicsActor != null)
{
PhysicsActor.SetAlwaysRun = SetAlwaysRun;
PhysicsActor.SetAlwaysRun = pSetAlwaysRun;
}
}
public BinBVHAnimation GenerateRandomAnimation()
@ -2036,7 +2033,7 @@ namespace OpenSim.Region.Framework.Scenes
return;
}
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
m_rotation = rotation;
NewForce newVelocity = new NewForce();
@ -2079,7 +2076,7 @@ namespace OpenSim.Region.Framework.Scenes
newVelocity.Z = direc.Z;
m_forcesList.Add(newVelocity);
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
}
#endregion
@ -2142,16 +2139,16 @@ namespace OpenSim.Region.Framework.Scenes
// server.
if (remoteClient.IsActive)
{
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
Vector3 pos = m_pos;
Vector3 vel = Velocity;
Quaternion rot = m_bodyRot;
pos.Z -= m_appearance.HipOffset;
remoteClient.SendAvatarTerseUpdate(m_regionHandle, (ushort)(m_scene.TimeDilation * (float)ushort.MaxValue), LocalId, new Vector3(pos.X, pos.Y, pos.Z),
remoteClient.SendAvatarTerseUpdate(m_regionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId, new Vector3(pos.X, pos.Y, pos.Z),
new Vector3(vel.X, vel.Y, vel.Z), rot);
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
m_scene.AddAgentUpdates(1);
}
}
@ -2161,7 +2158,7 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary>
public void SendTerseUpdateToAllClients()
{
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
m_scene.Broadcast(SendTerseUpdateToClient);
@ -2169,13 +2166,13 @@ namespace OpenSim.Region.Framework.Scenes
lastPhysPos = AbsolutePosition;
lastPhysRot = m_bodyRot;
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
}
public void SendCoarseLocations()
{
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
List<Vector3> CoarseLocations = new List<Vector3>();
List<UUID> AvatarUUIDs = new List<UUID>();
@ -2210,7 +2207,7 @@ namespace OpenSim.Region.Framework.Scenes
m_controllingClient.SendCoarseLocationUpdate(AvatarUUIDs, CoarseLocations);
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
}
public void CoarseLocationChange()
@ -2252,7 +2249,7 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary>
public void SendInitialFullUpdateToAllClients()
{
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
List<ScenePresence> avatars = m_scene.GetScenePresences();
foreach (ScenePresence avatar in avatars)
@ -2269,24 +2266,23 @@ namespace OpenSim.Region.Framework.Scenes
{
if (!avatar.IsChildAgent)
{
m_log.Debug(DateTime.Now.ToString());
avatar.SendFullUpdateToOtherClient(this);
avatar.SendAppearanceToOtherAgent(this);
if (m_sitStatus)
GenerateRandomAnimation();
avatar.SendAnimPackToClient(this.ControllingClient);
avatar.SendAnimPackToClient(ControllingClient);
}
}
}
m_scene.AddAgentUpdates(avatars.Count);
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
//SendAnimPack();
}
public void SendFullUpdateToAllClients()
{
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
if (m_sitStatus)
GenerateRandomAnimation();
@ -2298,7 +2294,7 @@ namespace OpenSim.Region.Framework.Scenes
}
m_scene.AddAgentUpdates(avatars.Count);
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
SendAnimPack();
}
@ -2333,7 +2329,6 @@ namespace OpenSim.Region.Framework.Scenes
/// <summary>
/// Tell the client for this scene presence what items it should be wearing now
/// </summary>
/// <param name="client"></param>
public void SendWearables()
{
ControllingClient.SendWearables(m_appearance.Wearables, m_appearance.Serial++);
@ -2344,7 +2339,7 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary>
public void SendAppearanceToAllOtherAgents()
{
m_perfMonMS = System.Environment.TickCount;
m_perfMonMS = Environment.TickCount;
m_scene.ForEachScenePresence(delegate(ScenePresence scenePresence)
{
@ -2354,7 +2349,7 @@ namespace OpenSim.Region.Framework.Scenes
}
});
m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
m_scene.AddAgentTime(Environment.TickCount - m_perfMonMS);
}
/// <summary>
@ -2421,6 +2416,7 @@ namespace OpenSim.Region.Framework.Scenes
/// </summary>
/// <param name="animations"></param>
/// <param name="seqs"></param>
/// <param name="objectIDs"></param>
public void SendAnimPack(UUID[] animations, int[] seqs, UUID[] objectIDs)
{
if (m_isChildAgent)
@ -2759,7 +2755,7 @@ namespace OpenSim.Region.Framework.Scenes
int innacurateNeighbors = m_scene.GetInaccurateNeighborCount();
if (innacurateNeighbors != 0)
{
multiplier = 1f / (float)innacurateNeighbors;
multiplier = 1f / innacurateNeighbors;
}
if (multiplier <= 0f)
{
@ -3369,7 +3365,7 @@ namespace OpenSim.Region.Framework.Scenes
LastCommands = allflags;
}
internal uint RemoveIgnoredControls(uint flags, ScriptControlled Ignored)
internal static uint RemoveIgnoredControls(uint flags, ScriptControlled Ignored)
{
if (Ignored == ScriptControlled.CONTROL_ZERO)
return flags;
@ -3460,7 +3456,7 @@ namespace OpenSim.Region.Framework.Scenes
{
// Attach from world, if not already attached
if (att.ParentGroup != null && !att.IsAttachment)
m_scene.AttachObject(ControllingClient, att.ParentGroup.LocalId, (uint)0, Quaternion.Identity, att.ParentGroup.AbsolutePosition, false);
m_scene.AttachObject(ControllingClient, att.ParentGroup.LocalId, 0, Quaternion.Identity, att.ParentGroup.AbsolutePosition, false);
}
catch (NullReferenceException)
{