From ad21cb2ea8177a9da98f8bbb66badc2126e790e0 Mon Sep 17 00:00:00 2001 From: MW Date: Fri, 3 Aug 2007 12:00:24 +0000 Subject: Ditto...More work on the AllNewSceneObject* classes. --- .../Environment/Scenes/AllNewSceneObjectPart2.cs | 55 +++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs') diff --git a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs index 62f9b93..b0303a3 100644 --- a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs +++ b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs @@ -316,16 +316,25 @@ namespace OpenSim.Region.Environment.Scenes #endregion #region Update Scheduling + /// + /// + /// private void ClearUpdateSchedule() { m_updateFlag = 0; } + /// + /// + /// private void ScheduleFullUpdate() { m_updateFlag = 2; } + /// + /// + /// private void ScheduleTerseUpdate() { if (m_updateFlag < 1) @@ -333,6 +342,26 @@ namespace OpenSim.Region.Environment.Scenes m_updateFlag = 1; } } + + /// + /// + /// + public void SendScheduledUpdates() + { + if (m_updateFlag == 1) //some change has been made so update the clients + { + SendTerseUpdateToALLClients(); + ClearUpdateSchedule(); + } + else + { + if (m_updateFlag == 2) // is a new prim just been created/reloaded or has major changes + { + SendFullUpdateToAllClients(); + ClearUpdateSchedule(); + } + } + } #endregion #region Shape @@ -389,7 +418,7 @@ namespace OpenSim.Region.Environment.Scenes this.m_Shape.ExtraParams[i++] = (byte)((length >> 24) % 256); Array.Copy(data, 0, this.m_Shape.ExtraParams, i, data.Length); - //this.ScheduleFullUpdate(); + this.ScheduleFullUpdate(); } #endregion @@ -445,6 +474,18 @@ namespace OpenSim.Region.Environment.Scenes /// /// /// + public void SendFullUpdateToAllClients() + { + List avatars = this.m_parentGroup.RequestSceneAvatars(); + for (int i = 0; i < avatars.Count; i++) + { + SendFullUpdateToClient(avatars[i].ControllingClient); + } + } + + /// + /// + /// /// public void SendFullUpdateToClient(IClientAPI remoteClient) { @@ -460,6 +501,18 @@ namespace OpenSim.Region.Environment.Scenes /// /// /// + public void SendTerseUpdateToALLClients() + { + List avatars = this.m_parentGroup.RequestSceneAvatars(); + for (int i = 0; i < avatars.Count; i++) + { + SendTerseUpdateToClient(avatars[i].ControllingClient); + } + } + + /// + /// + /// /// public void SendTerseUpdateToClient(IClientAPI remoteClient) { -- cgit v1.1