mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 18:25:33 +08:00
Merge branch 'master' into careminster-presence-refactor
This commit is contained in:
@@ -76,5 +76,8 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||
void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel);
|
||||
void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel);
|
||||
void SetParcelOtherCleanTime(IClientAPI remoteClient, int localID, int otherCleanTime);
|
||||
|
||||
void Join(int start_x, int start_y, int end_x, int end_y, UUID attempting_user_id);
|
||||
void Subdivide(int start_x, int start_y, int end_x, int end_y, UUID attempting_user_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
#endregion Enumerations
|
||||
|
||||
public class SceneObjectPart : IScriptHost
|
||||
public class SceneObjectPart : IScriptHost, ISceneEntity
|
||||
{
|
||||
/// <value>
|
||||
/// Denote all sides of the prim
|
||||
@@ -714,6 +714,24 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
public Vector3 RelativePosition
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsRoot)
|
||||
{
|
||||
if (IsAttachment)
|
||||
return AttachedPos;
|
||||
else
|
||||
return AbsolutePosition;
|
||||
}
|
||||
else
|
||||
{
|
||||
return OffsetPosition;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Quaternion RotationOffset
|
||||
{
|
||||
get
|
||||
@@ -985,7 +1003,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
get { return AggregateScriptEvents; }
|
||||
}
|
||||
|
||||
|
||||
public Quaternion SitTargetOrientation
|
||||
{
|
||||
get { return m_sitTargetOrientation; }
|
||||
@@ -2911,11 +2928,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
//if (LocalId != ParentGroup.RootPart.LocalId)
|
||||
//isattachment = ParentGroup.RootPart.IsAttachment;
|
||||
|
||||
byte[] color = new byte[] {m_color.R, m_color.G, m_color.B, m_color.A};
|
||||
remoteClient.SendPrimitiveToClient(new SendPrimitiveData(m_regionHandle, m_parentGroup.GetTimeDilation(), LocalId, m_shape,
|
||||
lPos, Velocity, Acceleration, RotationOffset, AngularVelocity, clientFlags, m_uuid, _ownerID,
|
||||
m_text, color, _parentID, m_particleSystem, m_clickAction, (byte)m_material, m_TextureAnimation, IsAttachment,
|
||||
AttachmentPoint,FromItemID, Sound, SoundGain, SoundFlags, SoundRadius, ParentGroup.GetUpdatePriority(remoteClient)));
|
||||
remoteClient.SendPrimUpdate(this, PrimUpdateFlags.FullUpdate);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -4627,11 +4640,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
// Causes this thread to dig into the Client Thread Data.
|
||||
// Remember your locking here!
|
||||
remoteClient.SendPrimTerseUpdate(new SendPrimitiveTerseData(m_regionHandle,
|
||||
m_parentGroup.GetTimeDilation(), LocalId, lPos,
|
||||
RotationOffset, Velocity, Acceleration,
|
||||
AngularVelocity, FromItemID,
|
||||
OwnerID, (int)AttachmentPoint, null, ParentGroup.GetUpdatePriority(remoteClient)));
|
||||
remoteClient.SendPrimUpdate(this, PrimUpdateFlags.Position | PrimUpdateFlags.Rotation | PrimUpdateFlags.Velocity | PrimUpdateFlags.Acceleration | PrimUpdateFlags.AngularVelocity);
|
||||
}
|
||||
|
||||
public void AddScriptLPS(int count)
|
||||
@@ -4681,7 +4690,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public Color4 GetTextColor()
|
||||
{
|
||||
return new Color4((byte)Color.R, (byte)Color.G, (byte)Color.B, (byte)(0xFF - Color.A));
|
||||
Color color = Color;
|
||||
return new Color4(color.R, color.G, color.B, (byte)(0xFF - color.A));
|
||||
}
|
||||
|
||||
public void ResetOwnerChangeFlag()
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public delegate void SendCourseLocationsMethod(UUID scene, ScenePresence presence);
|
||||
|
||||
public class ScenePresence : EntityBase
|
||||
public class ScenePresence : EntityBase, ISceneEntity
|
||||
{
|
||||
// ~ScenePresence()
|
||||
// {
|
||||
@@ -491,6 +491,12 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
public Vector3 OffsetPosition
|
||||
{
|
||||
get { return m_pos; }
|
||||
set { m_pos = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Current velocity of the avatar.
|
||||
/// </summary>
|
||||
@@ -1120,8 +1126,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
m_updateCount = UPDATE_COUNT; //KF: Trigger Anim updates to catch falling anim.
|
||||
|
||||
ControllingClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_rootRegionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId,
|
||||
AbsolutePosition, Velocity, Vector3.Zero, m_bodyRot, new Vector4(0,0,1,AbsolutePosition.Z - 0.5f), m_uuid, null, GetUpdatePriority(ControllingClient)));
|
||||
ControllingClient.SendPrimUpdate(this, PrimUpdateFlags.Position);
|
||||
//ControllingClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_rootRegionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId,
|
||||
// AbsolutePosition, Velocity, Vector3.Zero, m_bodyRot, new Vector4(0,0,1,AbsolutePosition.Z - 0.5f), m_uuid, null, GetUpdatePriority(ControllingClient)));
|
||||
}
|
||||
|
||||
public void AddNeighbourRegion(ulong regionHandle, string cap)
|
||||
@@ -2604,8 +2611,7 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos);
|
||||
|
||||
//m_log.DebugFormat("[SCENEPRESENCE]: TerseUpdate: Pos={0} Rot={1} Vel={2}", m_pos, m_bodyRot, m_velocity);
|
||||
|
||||
remoteClient.SendAvatarTerseUpdate(new SendAvatarTerseData(m_rootRegionHandle, (ushort)(m_scene.TimeDilation * ushort.MaxValue), LocalId,
|
||||
pos, velocity, Vector3.Zero, m_bodyRot, CollisionPlane, m_uuid, null, GetUpdatePriority(remoteClient)));
|
||||
remoteClient.SendPrimUpdate(this, PrimUpdateFlags.Position | PrimUpdateFlags.Rotation | PrimUpdateFlags.Velocity | PrimUpdateFlags.Acceleration | PrimUpdateFlags.AngularVelocity);
|
||||
|
||||
m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));
|
||||
m_scene.StatsReporter.AddAgentUpdates(1);
|
||||
@@ -2701,9 +2707,7 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos);
|
||||
Vector3 pos = m_pos;
|
||||
pos.Z += m_appearance.HipOffset;
|
||||
|
||||
remoteAvatar.m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid,
|
||||
LocalId, pos, m_appearance.Texture.GetBytes(),
|
||||
m_parentID, m_bodyRot));
|
||||
remoteAvatar.m_controllingClient.SendAvatarDataImmediate(this);
|
||||
m_scene.StatsReporter.AddAgentUpdates(1);
|
||||
}
|
||||
|
||||
@@ -2771,8 +2775,7 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos);
|
||||
Vector3 pos = m_pos;
|
||||
pos.Z += m_appearance.HipOffset;
|
||||
|
||||
m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId,
|
||||
pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot));
|
||||
m_controllingClient.SendAvatarDataImmediate(this);
|
||||
|
||||
SendInitialFullUpdateToAllClients();
|
||||
SendAppearanceToAllOtherAgents();
|
||||
@@ -2882,9 +2885,7 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos);
|
||||
Vector3 pos = m_pos;
|
||||
pos.Z += m_appearance.HipOffset;
|
||||
|
||||
m_controllingClient.SendAvatarData(new SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId,
|
||||
pos, m_appearance.Texture.GetBytes(), m_parentID, m_bodyRot));
|
||||
|
||||
m_controllingClient.SendAvatarDataImmediate(this);
|
||||
}
|
||||
|
||||
public void SetWearable(int wearableId, AvatarWearable wearable)
|
||||
@@ -4219,7 +4220,7 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos);
|
||||
|
||||
private void Reprioritize(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
m_controllingClient.ReprioritizeUpdates(StateUpdateTypes.All, UpdatePriority);
|
||||
m_controllingClient.ReprioritizeUpdates(UpdatePriority);
|
||||
|
||||
lock (m_reprioritization_timer)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user