Beispiel #1
0
 public ParcelAccessManager(SceneInterface scene, SimulationDataStorageInterface simulationDataStorage)
 {
     m_Timer               = new Timer(1000);
     m_Timer.Elapsed      += CheckAccessTimer;
     m_Scene               = scene;
     m_WhiteListStorage    = simulationDataStorage.Parcels.WhiteList;
     m_BlackListStorage    = simulationDataStorage.Parcels.BlackList;
     m_LandpassListStorage = simulationDataStorage.Parcels.LandpassList;
     m_StorageList         = new IParcelAccessList[] { m_WhiteListStorage, m_BlackListStorage, m_LandpassListStorage };
     WhiteList             = new StatusUpdateListener(this, m_WhiteListStorage);
     BlackList             = new StatusUpdateListener(this, m_BlackListStorage);
     LandpassList          = new StatusUpdateListener(this, m_LandpassListStorage);
 }
Beispiel #2
0
 private void ParcelAccessListUpdateManage(UUID parcelID, Dictionary <UUID, ParcelAccessListUpdate.Data> entries, IParcelAccessList accessList)
 {
     foreach (var listed in accessList[Scene.ID, parcelID])
     {
         if (!entries.ContainsKey(listed.Accessor.ID))
         {
             accessList.Remove(Scene.ID, parcelID, listed.Accessor);
         }
     }
     foreach (var upd in entries.Values)
     {
         UGUIWithName uui;
         if (Scene.AvatarNameService.TryGetValue(upd.ID, out uui))
         {
             var pae = new ParcelAccessEntry
             {
                 RegionID = Scene.ID,
                 Accessor = uui,
                 ParcelID = parcelID
             };
             accessList.Store(pae);
         }
     }
 }
Beispiel #3
0
 public StatusUpdateListener(ParcelAccessManager parcelManager, IParcelAccessList storageList)
 {
     m_ParcelManager = parcelManager;
     m_StorageList   = storageList;
 }