From b9808f831428876ec9ede8ce87a159566b97a850 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Fri, 21 Sep 2007 04:58:40 +0000 Subject: * First example of moving stuff to a Region layer * Also, changed RegionPresence to 'RegionSubscription' - let's just see where we land with this... --- OpenSim/Region/Environment/Regions/Region.cs | 35 +++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Environment/Regions/Region.cs') diff --git a/OpenSim/Region/Environment/Regions/Region.cs b/OpenSim/Region/Environment/Regions/Region.cs index f7669a9..e95d9dc 100644 --- a/OpenSim/Region/Environment/Regions/Region.cs +++ b/OpenSim/Region/Environment/Regions/Region.cs @@ -1,15 +1,44 @@ using System.Collections.Generic; using libsecondlife; +using OpenSim.Region.Environment.Scenes; +using OpenSim.Region.Terrain; +using OpenSim.Framework.Interfaces; +using System; namespace OpenSim.Region.Environment.Regions { public class Region { - private Dictionary m_regionPresences; + // This is a temporary (and real ugly) construct to emulate us really having a separate list + // of region subscribers. It should be removed ASAP, like. - public Region() + private readonly Scene m_scene; + private Dictionary m_regionSubscriptions { - m_regionPresences = new Dictionary( ); + get + { + Dictionary subscriptions = new Dictionary( ); + + foreach( ScenePresence presence in m_scene.GetScenePresences() ) + { + subscriptions.Add( presence.UUID, new RegionSubscription( presence.ControllingClient )); + } + + return subscriptions; + } + } + + public Region( Scene scene ) + { + m_scene = scene; // The Scene reference should be removed. + } + + internal void Broadcast( Action whatToDo ) + { + foreach (RegionSubscription subscription in m_regionSubscriptions.Values ) + { + whatToDo(subscription.Client); + } } } } -- cgit v1.1