Beispiel #1
0
        public void HandleObjectDeselect(Message m)
        {
            var req = (ObjectDeselect)m;

            if (req.CircuitSessionID != req.SessionID ||
                req.CircuitAgentID != req.AgentID)
            {
                return;
            }
            IAgent agent;

            if (!Agents.TryGetValue(req.AgentID, out agent))
            {
                return;
            }

            ObjectPart          part;
            RwLockedList <UUID> selectedObjects = agent.SelectedObjects(ID);

            foreach (uint primLocalID in req.ObjectData)
            {
#if DEBUG
                m_Log.DebugFormat("ObjectDeselect localid={0}", primLocalID);
#endif
                if (!Primitives.TryGetValue(primLocalID, out part))
                {
                    continue;
                }

                selectedObjects.Remove(part.ID);
                agent.ScheduleUpdate(part.UpdateInfo, ID);
            }
        }
Beispiel #2
0
 public PostgreSQLSceneListener(string connectionString, UUID regionID, RwLockedList <PostgreSQLSceneListener> sceneListenerThreads, bool enableOnConflict)
     : base(regionID)
 {
     m_ConnectionString     = connectionString;
     m_SceneListenerThreads = sceneListenerThreads;
     m_EnableOnConflict     = enableOnConflict;
 }
 public PostgreSQLTerrainListener(string connectionString, UUID regionID, RwLockedList <PostgreSQLTerrainListener> terrainListenerThreads, bool enableOnConflict)
 {
     m_ConnectionString       = connectionString;
     RegionID                 = regionID;
     m_TerrainListenerThreads = terrainListenerThreads;
     m_EnableOnConflict       = enableOnConflict;
 }
        public void Startup(ConfigurationLoader loader)
        {
            m_Scenes        = loader.Scenes;
            m_EstateService = loader.GetService <EstateServiceInterface>(m_EstateServiceName);
            m_RegionStorage = loader.GetService <GridServiceInterface>(m_RegionStorageName);
            loader.CommandRegistry.AddShowCommand("estates", ShowEstatesCmd);
            loader.CommandRegistry.AddChangeCommand("estate", ChangeEstateCmd);
            loader.CommandRegistry.AddCreateCommand("estate", CreateEstateCmd);
            loader.CommandRegistry.AddDeleteCommand("estate", DeleteEstateCmd);
            loader.CommandRegistry.AddAlertCommand("estate", AlertEstateCmd);

            var     avatarNameServicesList = new RwLockedList <AvatarNameServiceInterface>();
            IConfig sceneConfig            = loader.Config.Configs["DefaultSceneImplementation"];

            if (sceneConfig != null)
            {
                string avatarNameServices = sceneConfig.GetString("AvatarNameServices", string.Empty);
                if (!string.IsNullOrEmpty(avatarNameServices))
                {
                    foreach (string p in avatarNameServices.Split(','))
                    {
                        avatarNameServicesList.Add(loader.GetService <AvatarNameServiceInterface>(p.Trim()));
                    }
                }
            }
            m_AvatarNameService = new AggregatingAvatarNameService(avatarNameServicesList);
        }
Beispiel #5
0
        public void Startup(ConfigurationLoader loader)
        {
            var avatarNameServices = new RwLockedList <AvatarNameServiceInterface>();

            foreach (string name in m_AvatarNameServiceNames.Trim().Split(','))
            {
                avatarNameServices.Add(loader.GetService <AvatarNameServiceInterface>(name));
            }
            m_AvatarNameService = new AggregatingAvatarNameService(avatarNameServices);
        }
Beispiel #6
0
        List <Vector3> ISimulationDataSpawnPointStorageInterface.this[UUID regionID]
        {
            get
            {
                RwLockedList <Vector3> data;
                return((m_SpawnPointData.TryGetValue(regionID, out data)) ?
                       new List <Vector3>(data) :
                       new List <Vector3>());
            }

            set { m_SpawnPointData[regionID] = new RwLockedList <Vector3>(value); }
        }
Beispiel #7
0
        public void Startup(ConfigurationLoader loader)
        {
            m_IMRouter = loader.IMRouter;
            RwLockedList <AvatarNameServiceInterface> services = new RwLockedList <AvatarNameServiceInterface>();

            foreach (string name in m_AvatarNameServiceNames)
            {
                AvatarNameServiceInterface service;
                loader.GetService(name, out service);
                services.Add(service);
            }
            m_AvatarNameService = new AggregatingAvatarNameService(services);

            loader.GetService(m_GroupsServiceName, out m_GroupsService);
        }
Beispiel #8
0
        private void UpdateGodAgentsList(RwLockedList <UGUI> list, UUID regionId, string value)
        {
            if (string.IsNullOrEmpty(value))
            {
                list.Clear();
            }
            else
            {
                string[] god_agents_list = value.Split(new char[] { ',' });
                var      new_gods        = new List <UGUI>();
                foreach (string god_agent in god_agents_list)
                {
                    UGUI uui;
                    try
                    {
                        uui = new UGUI(god_agent);
                    }
                    catch
                    {
                        m_Log.WarnFormat("Invalid UUI '{1}' found in {0}/god_agents variable", regionId.ToString(), god_agent);
                        continue;
                    }
                    new_gods.Add(uui);
                }

                foreach (UGUI god in new List <UGUI>(list))
                {
                    if (!new_gods.Contains(god))
                    {
                        list.Remove(god);
                    }
                }

                foreach (UGUI god in new_gods)
                {
                    if (!list.Contains(god))
                    {
                        list.Add(god);
                    }
                }
            }
        }
 public MsSqlAssetService(ConfigurationLoader loader, IConfig ownSection)
 {
     m_ConnectionString    = MsSqlUtilities.BuildConnectionString(ownSection, m_Log);
     m_ConfigurationIssues = loader.KnownConfigurationIssues;
     m_ReferencesService   = new MsSqlAssetReferencesService(this);
 }
Beispiel #10
0
 public AggregatingAvatarNameService(RwLockedList <AvatarNameServiceInterface> serviceList)
 {
     m_ServiceList = serviceList;
 }
        private void ChatPassEnableUpdated(
            RwLockedList <UUID> locallist,
            RwLockedList <UUID> globallist,
            ref bool settolocal,
            UUID regionId,
            string varname,
            string value)
        {
            if (string.IsNullOrEmpty(value))
            {
                if (regionId != UUID.Zero)
                {
                    settolocal = false;
                    locallist.Clear();
                }
                else
                {
                    globallist.Clear();
                }
            }
            else
            {
                string[] parts   = value.Split(',');
                var      new_ids = new List <UUID>();
                foreach (string part in parts)
                {
                    UUID id;
                    if (!UUID.TryParse(part, out id))
                    {
                        m_Log.WarnFormat("Invalid UUID '{1}' found in {0}/{2} variable", regionId.ToString(), part, varname);
                    }
                    else if (!new_ids.Contains(id))
                    {
                        new_ids.Add(id);
                    }
                }

                var activelist = regionId != UUID.Zero ? locallist : globallist;

                foreach (UUID id in new List <UUID>(activelist))
                {
                    if (!new_ids.Contains(id))
                    {
                        activelist.Remove(id);
                    }
                }

                foreach (UUID id in new_ids)
                {
                    if (!activelist.Contains(id))
                    {
                        activelist.Add(id);
                    }
                }

                if (regionId != UUID.Zero)
                {
                    settolocal = true;
                }
            }
        }
Beispiel #12
0
 public MySQLTerrainListener(string connectionString, UUID regionID, RwLockedList <MySQLTerrainListener> terrainListenerThreads)
 {
     m_ConnectionString       = connectionString;
     RegionID                 = regionID;
     m_TerrainListenerThreads = terrainListenerThreads;
 }
Beispiel #13
0
 public MySQLSceneListener(string connectionString, UUID regionID, RwLockedList <MySQLSceneListener> sceneListenerThreads)
     : base(regionID)
 {
     m_ConnectionString     = connectionString;
     m_SceneListenerThreads = sceneListenerThreads;
 }
Beispiel #14
0
 public EnvironmentSettings(EnvironmentSettings env)
 {
     m_WaterSettings = env.WaterSettings;
     DayCycle        = new RwLockedList <KeyValuePair <double, string> >(env.DayCycle);
     SkySettings     = new RwLockedDictionary <string, SkyEntry>(env.SkySettings);
 }
Beispiel #15
0
        private bool IsInGodAgents(UGUI agent)
        {
            RwLockedList <UGUI> activeList = m_GodAgentsSetToLocal ? m_GodAgentsLocal : m_GodAgentsGlobal;

            return(activeList.Find((e) => agent.EqualsGrid(e)) != null);
        }