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); }
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); } } }
public StatusUpdateListener(ParcelAccessManager parcelManager, IParcelAccessList storageList) { m_ParcelManager = parcelManager; m_StorageList = storageList; }