add a direct sendpartfullUpdate to send a full object update to a part,
optionally overriding its parentID. check what it does to attachmentsavinationmerge
parent
ea1c232f92
commit
5bf145a397
|
@ -1116,6 +1116,8 @@ namespace OpenSim.Framework
|
||||||
/// <param name="localID"></param>
|
/// <param name="localID"></param>
|
||||||
void SendKillObject(List<uint> localID);
|
void SendKillObject(List<uint> localID);
|
||||||
|
|
||||||
|
void SendPartFullUpdate(ISceneEntity ent, uint? parentID);
|
||||||
|
|
||||||
void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs);
|
void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs);
|
||||||
void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args);
|
void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args);
|
||||||
|
|
||||||
|
|
|
@ -4208,7 +4208,33 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
OutPacket(packet, ThrottleOutPacketType.Task, true);
|
OutPacket(packet, ThrottleOutPacketType.Task, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion Packet Sending
|
#endregion Packet Sending
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// hack.. dont use
|
||||||
|
public void SendPartFullUpdate(ISceneEntity ent, uint? parentID)
|
||||||
|
{
|
||||||
|
if (ent is SceneObjectPart)
|
||||||
|
{
|
||||||
|
SceneObjectPart part = (SceneObjectPart)ent;
|
||||||
|
ObjectUpdatePacket packet = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate);
|
||||||
|
packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
|
||||||
|
packet.RegionData.TimeDilation = 1;
|
||||||
|
packet.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
|
||||||
|
|
||||||
|
ObjectUpdatePacket.ObjectDataBlock blk = CreatePrimUpdateBlock(part, this.m_agentId);
|
||||||
|
if (parentID.HasValue)
|
||||||
|
{
|
||||||
|
blk.ParentID = parentID.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
packet.ObjectData[0] = blk;
|
||||||
|
|
||||||
|
OutPacket(packet, ThrottleOutPacketType.Task, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ReprioritizeUpdates()
|
public void ReprioritizeUpdates()
|
||||||
|
|
|
@ -1916,6 +1916,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
|
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
p.ControllingClient.SendPartFullUpdate(sog.RootPart,LocalId + 1);
|
||||||
sog.SendFullUpdateToClient(p.ControllingClient);
|
sog.SendFullUpdateToClient(p.ControllingClient);
|
||||||
SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
|
SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
|
||||||
});
|
});
|
||||||
|
@ -4746,7 +4747,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
foreach (SceneObjectGroup sog in m_attachments)
|
foreach (SceneObjectGroup sog in m_attachments)
|
||||||
{
|
{
|
||||||
if (p == this || !sog.HasPrivateAttachmentPoint)
|
if (p == this || !sog.HasPrivateAttachmentPoint)
|
||||||
|
{
|
||||||
|
p.ControllingClient.SendPartFullUpdate(sog.RootPart, LocalId + 1);
|
||||||
sog.SendFullUpdateToClient(p.ControllingClient);
|
sog.SendFullUpdateToClient(p.ControllingClient);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
|
SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
|
||||||
}
|
}
|
||||||
|
|
|
@ -1702,5 +1702,8 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SendPartFullUpdate(ISceneEntity ent, uint? parentID)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1272,5 +1272,9 @@ namespace OpenSim.Region.OptionalModules.World.NPC
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SendPartFullUpdate(ISceneEntity ent, uint? parentID)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -536,6 +536,10 @@ namespace OpenSim.Tests.Common.Mock
|
||||||
ReceivedKills.AddRange(localID);
|
ReceivedKills.AddRange(localID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SendPartFullUpdate(ISceneEntity ent, uint? parentID)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public virtual void SetChildAgentThrottle(byte[] throttle)
|
public virtual void SetChildAgentThrottle(byte[] throttle)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue