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