public void RegionLoaded(Scene scene) { if (m_scene == null) { m_scene = scene; } if ((m_scene != null) && (m_createClientStack)) { m_log.Info("[LLClientStackModule] Starting up LLClientStack."); IPEndPoint endPoint = m_scene.RegionInfo.InternalEndPoint; uint port = (uint)endPoint.Port; m_clientStackManager = new ClientStackManager(m_clientStackDll); m_clientServer = m_clientStackManager.CreateServer(endPoint.Address, ref port, m_scene.RegionInfo.ProxyOffset, m_scene.RegionInfo.m_allow_alternate_ports, m_source, m_scene.AuthenticateHandler); m_clientServer.AddScene(m_scene); m_clientServer.Start(); } }
/// <summary> /// Create a scene and its initial base structures. /// </summary> /// <param name="regionInfo"></param> /// <param name="proxyOffset"></param> /// <param name="configSource"></param> /// <param name="clientServer"> </param> /// <returns></returns> protected Scene SetupScene(RegionInfo regionInfo, int proxyOffset, IConfigSource configSource, out IClientNetworkServer clientServer) { AgentCircuitManager circuitManager = new AgentCircuitManager(); IPAddress listenIP = regionInfo.InternalEndPoint.Address; uint port = (uint) regionInfo.InternalEndPoint.Port; if (m_autoCreateClientStack) { clientServer = m_clientStackManager.CreateServer(listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, configSource, m_assetCache, circuitManager); } else { clientServer = null; } regionInfo.InternalEndPoint.Port = (int) port; Scene scene = CreateScene(regionInfo, m_storageManager, circuitManager); if (m_autoCreateClientStack) { clientServer.AddScene(scene); } scene.LoadWorldMap(); scene.PhysicsScene = GetPhysicsScene(scene.RegionInfo.RegionName); scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight); // TODO: Remove this cruft once MasterAvatar is fully deprecated //Master Avatar Setup UserProfileData masterAvatar; if (scene.RegionInfo.MasterAvatarAssignedUUID == UUID.Zero) { masterAvatar = m_commsManager.UserService.SetupMasterUser(scene.RegionInfo.MasterAvatarFirstName, scene.RegionInfo.MasterAvatarLastName, scene.RegionInfo.MasterAvatarSandboxPassword); } else { masterAvatar = m_commsManager.UserService.SetupMasterUser(scene.RegionInfo.MasterAvatarAssignedUUID); scene.RegionInfo.MasterAvatarFirstName = masterAvatar.FirstName; scene.RegionInfo.MasterAvatarLastName = masterAvatar.SurName; } if (masterAvatar == null) { m_log.Info("[Parcel]: No master avatar found, using null."); scene.RegionInfo.MasterAvatarAssignedUUID = UUID.Zero; } else { m_log.InfoFormat("[Parcel]: Found master avatar {0} {1} [" + masterAvatar.ID.ToString() + "]", scene.RegionInfo.MasterAvatarFirstName, scene.RegionInfo.MasterAvatarLastName); scene.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.ID; } return scene; }
public void PostInitialize() { if ((m_scene != null) && (m_createClientStack)) { m_log.Info("[LLClientStackModule] Starting up LLClientStack."); IPEndPoint endPoint = m_scene.RegionInfo.InternalEndPoint; uint port = (uint)endPoint.Port; m_clientStackManager = new ClientStackManager(m_clientStackDll); m_clientServer = m_clientStackManager.CreateServer(endPoint.Address, ref port, m_scene.RegionInfo.ProxyOffset, m_scene.RegionInfo.m_allow_alternate_ports, m_source, m_scene.CommsManager.AssetCache); m_clientServer.AddScene(m_scene); m_clientServer.Start(); } }
/// <summary> /// Create a scene and its initial base structures. /// </summary> /// <param name="regionInfo"></param> /// <param name="proxyOffset"></param> /// <param name="configSource"></param> /// <param name="clientServer"> </param> /// <returns></returns> protected Scene SetupScene( RegionInfo regionInfo, int proxyOffset, IConfigSource configSource, out IClientNetworkServer clientServer) { AgentCircuitManager circuitManager = new AgentCircuitManager(); IPAddress listenIP = regionInfo.InternalEndPoint.Address; //if (!IPAddress.TryParse(regionInfo.InternalEndPoint, out listenIP)) // listenIP = IPAddress.Parse("0.0.0.0"); uint port = (uint)regionInfo.InternalEndPoint.Port; if (m_autoCreateClientStack) { clientServer = m_clientStackManager.CreateServer( listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, configSource, circuitManager); } else { clientServer = null; } regionInfo.InternalEndPoint.Port = (int)port; Scene scene = CreateScene(regionInfo, m_simulationDataService, m_estateDataService, circuitManager); if (m_autoCreateClientStack) { clientServer.AddScene(scene); } scene.LoadWorldMap(); scene.PhysicsScene = GetPhysicsScene(scene.RegionInfo.RegionName); scene.PhysicsScene.RequestAssetMethod = scene.PhysicsRequestAsset; scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); scene.PhysicsScene.SetWaterLevel((float)regionInfo.RegionSettings.WaterHeight); return(scene); }
/// <summary> /// Create a scene and its initial base structures. /// </summary> /// <param name="regionInfo"></param> /// <param name="proxyOffset"></param> /// <param name="configSource"></param> /// <param name="clientServer"> </param> /// <returns></returns> protected Scene SetupScene( RegionInfo regionInfo, int proxyOffset, IConfigSource configSource, out IClientNetworkServer clientServer) { IPAddress listenIP = regionInfo.InternalEndPoint.Address; //if (!IPAddress.TryParse(regionInfo.InternalEndPoint, out listenIP)) // listenIP = IPAddress.Parse("0.0.0.0"); uint port = (uint) regionInfo.InternalEndPoint.Port; if (m_autoCreateClientStack) { clientServer = m_clientStackManager.CreateServer( listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, configSource, m_assetCache); } else { clientServer = null; } regionInfo.InternalEndPoint.Port = (int) port; // TODO: Remove this cruft once MasterAvatar is fully deprecated //Master Avatar Setup UserProfileData masterAvatar; if (regionInfo.MasterAvatarAssignedUUID == UUID.Zero) { masterAvatar = m_commsManager.UserService.SetupMasterUser(regionInfo.MasterAvatarFirstName, regionInfo.MasterAvatarLastName, regionInfo.MasterAvatarSandboxPassword); } else { masterAvatar = m_commsManager.UserService.SetupMasterUser(regionInfo.MasterAvatarAssignedUUID); } if (masterAvatar == null) { regionInfo.MasterAvatarAssignedUUID = UUID.Zero; m_log.Error("[PARCEL]: No master avatar found, using null UUID for master avatar."); // Should be a fatal error? } else { regionInfo.MasterAvatarAssignedUUID = masterAvatar.ID; regionInfo.MasterAvatarFirstName = masterAvatar.FirstName; regionInfo.MasterAvatarLastName = masterAvatar.SurName; m_log.InfoFormat("[PARCEL]: Found master avatar {0} {1} [{2}]", regionInfo.MasterAvatarFirstName, regionInfo.MasterAvatarLastName, regionInfo.MasterAvatarAssignedUUID.ToString() ); } Scene scene = CreateScene(regionInfo, m_storageManager); if (m_autoCreateClientStack) { clientServer.AddScene(scene); } scene.LoadWorldMap(); scene.PhysicsScene = GetPhysicsScene(scene.RegionInfo.RegionName, scene.RegionInfo.RegionID); scene.PhysicsScene.TerrainChannel = scene.Heightmap; scene.PhysicsScene.RegionSettings = scene.RegionInfo.RegionSettings; scene.PhysicsScene.SetStartupTerrain(scene.Heightmap.GetFloatsSerialized(), scene.Heightmap.RevisionNumber); scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight); return scene; }
/// <summary> /// Create a scene and its initial base structures. /// </summary> /// <param name="regionInfo"></param> /// <param name="proxyOffset"></param> /// <param name="configSource"></param> /// <param name="clientServer"> </param> /// <returns></returns> protected Scene SetupScene( RegionInfo regionInfo, int proxyOffset, IConfigSource configSource, out IClientNetworkServer clientServer) { AgentCircuitManager circuitManager = new AgentCircuitManager(); IPAddress listenIP = regionInfo.InternalEndPoint.Address; //if (!IPAddress.TryParse(regionInfo.InternalEndPoint, out listenIP)) // listenIP = IPAddress.Parse("0.0.0.0"); uint port = (uint) regionInfo.InternalEndPoint.Port; if (m_autoCreateClientStack) { clientServer = m_clientStackManager.CreateServer( listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, configSource, circuitManager); } else { clientServer = null; } regionInfo.InternalEndPoint.Port = (int) port; Scene scene = CreateScene(regionInfo, m_simulationDataService, m_estateDataService, circuitManager); if (m_autoCreateClientStack) { clientServer.AddScene(scene); } scene.LoadWorldMap(); scene.PhysicsScene = GetPhysicsScene(scene.RegionInfo.RegionName); scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); scene.PhysicsScene.SetWaterLevel((float) regionInfo.RegionSettings.WaterHeight); return scene; }
/// <summary> /// Create a scene and its initial base structures. /// </summary> /// <param name="regionInfo"></param> /// <param name="proxyOffset"></param> /// <param name="configSource"></param> /// <param name="clientServer"> </param> /// <returns></returns> protected Scene SetupScene(RegionInfo regionInfo, IConfigSource configSource, out IClientNetworkServer clientServer) { AgentCircuitManager circuitManager = new AgentCircuitManager(); IPAddress listenIP = regionInfo.InternalEndPoint.Address; if (!IPAddress.TryParse(regionInfo.InternalEndPoint.Address.ToString(), out listenIP)) listenIP = IPAddress.Parse("0.0.0.0"); uint port = (uint)regionInfo.InternalEndPoint.Port; string ClientstackDll = m_config.Configs["Startup"].GetString("ClientStackPlugin", "OpenSim.Region.ClientStack.LindenUDP.dll"); clientServer = AuroraModuleLoader.LoadPlugin<IClientNetworkServer>(ClientstackDll); clientServer.Initialise( listenIP, ref port, 0, regionInfo.m_allow_alternate_ports, m_config, circuitManager); regionInfo.InternalEndPoint.Port = (int)port; Scene scene = new Scene(regionInfo, circuitManager, this); StartModules(scene); clientServer.AddScene(scene); m_clientServers.Add(clientServer); //Do this here so that we don't have issues later when startup complete messages start coming in m_localScenes.Add(scene); return scene; }
public void Initialize (RegionInfo regionInfo, AgentCircuitManager authen, IClientNetworkServer clientServer) { Initialize (regionInfo); //Set up the clientServer m_clientServer = clientServer; clientServer.AddScene (this); m_sceneManager = RequestModuleInterface<SceneManager> (); m_simDataStore = m_sceneManager.GetSimulationDataStore (); m_config = m_sceneManager.ConfigSource; m_authenticateHandler = authen; m_AuroraEventManager = new AuroraEventManager(); m_eventManager = new EventManager(); m_permissions = new ScenePermissions(this); // Load region settings m_regInfo.RegionSettings = Aurora.DataManager.DataManager.RequestPlugin<IRegionInfoConnector> ().LoadRegionSettings (m_regInfo.RegionID); m_sceneGraph = new SceneGraph(this, m_regInfo); #region Region Config IConfig aurorastartupConfig = m_config.Configs["AuroraStartup"]; if (aurorastartupConfig != null) { //Region specific is still honored here, the RegionInfo checks for it RegionInfo.ObjectCapacity = aurorastartupConfig.GetInt("ObjectCapacity", 80000); } IConfig packetConfig = m_config.Configs["PacketPool"]; if (packetConfig != null) { PacketPool.Instance.RecyclePackets = packetConfig.GetBoolean("RecyclePackets", true); PacketPool.Instance.RecycleDataBlocks = packetConfig.GetBoolean("RecycleDataBlocks", true); } #endregion Region Config m_basesimfps = 45f; m_basesimphysfps = 45f; m_basesimphysfps = Config.Configs["Physics"].GetFloat("BasePhysicsFPS", 45f); if (m_basesimphysfps > 45f) m_basesimphysfps = 45f; m_basesimfps = Config.Configs["Protection"].GetFloat("BaseRateFramesPerSecond", 45f); if (m_basesimfps > 45f) m_basesimfps = 45f; if (m_basesimphysfps > m_basesimfps) m_basesimphysfps = m_basesimfps; m_updatetimespan = 1000 / m_basesimfps; m_physicstimespan = 1000 / m_basesimphysfps; #region Startup Complete config EventManager.OnAddToStartupQueue += AddToStartupQueue; EventManager.OnModuleFinishedStartup += FinishedStartup; //EventManager.OnStartupComplete += StartupComplete; AddToStartupQueue("Startup"); #endregion }
/// <summary> /// Create a scene and its initial base structures. /// </summary> /// <param name="regionInfo"></param> /// <param name="proxyOffset"></param> /// <param name="configSource"></param> /// <param name="clientServer"> </param> /// <returns></returns> protected Scene SetupScene(RegionInfo regionInfo, int proxyOffset, IConfigSource configSource, out IClientNetworkServer clientServer) { AgentCircuitManager circuitManager = new AgentCircuitManager(); IPAddress listenIP = regionInfo.InternalEndPoint.Address; //if (!IPAddress.TryParse(regionInfo.InternalEndPoint, out listenIP)) // listenIP = IPAddress.Parse("0.0.0.0"); uint port = (uint)regionInfo.InternalEndPoint.Port; string ClientstackDll = m_config.Configs["Startup"].GetString("ClientStackPlugin", "OpenSim.Region.ClientStack.LindenUDP.dll"); clientServer = Aurora.Framework.AuroraModuleLoader.LoadPlugin<IClientNetworkServer>(ClientstackDll, "IClientNetworkServer"); clientServer.Initialise( listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, m_config, circuitManager); regionInfo.InternalEndPoint.Port = (int)port; SceneCommunicationService sceneGridService = new SceneCommunicationService(); Scene scene = new Scene(regionInfo, circuitManager, sceneGridService, m_config, m_OpenSimBase.Version, m_simulationDataService, m_OpenSimBase.Stats); FindEstateInfo(scene); clientServer.AddScene(scene); m_clientServers.Add(clientServer); //Do this here so that we don't have issues later when startup complete messages start coming in Add(scene); scene.PhysicsScene = GetPhysicsScene(m_config, scene.RegionInfo.RegionName); return scene; }
public void PostInitialise() { if ((m_scene != null) && (m_createClientStack)) { m_log.Info("[LLClientStackModule] Starting up LLClientStack."); IPEndPoint endPoint = m_scene.RegionInfo.InternalEndPoint; uint port = (uint)endPoint.Port; m_clientStackManager = new ClientStackManager(m_clientStackDll); m_clientServer = m_clientStackManager.CreateServer(endPoint.Address, ref port, m_scene.RegionInfo.ProxyOffset, m_scene.RegionInfo.m_allow_alternate_ports, m_source, m_scene.CommsManager.AssetCache); m_clientServer.AddScene(m_scene); m_clientServer.Start(); } }
public void Initialize(RegionInfo regionInfo, AgentCircuitManager authen, IClientNetworkServer clientServer) { Initialize(regionInfo); //Set up the clientServer m_clientServer = clientServer; clientServer.AddScene(this); m_sceneManager = RequestModuleInterface <SceneManager>(); m_config = m_sceneManager.ConfigSource; m_authenticateHandler = authen; m_AuroraEventManager = new AuroraEventManager(); m_eventManager = new EventManager(); m_permissions = new ScenePermissions(this); // Load region settings m_regInfo.RegionSettings = m_sceneManager.SimulationDataService.LoadRegionSettings(m_regInfo.RegionID); m_sceneGraph = new SceneGraph(this, m_regInfo); #region Region Config IConfig aurorastartupConfig = m_config.Configs["AuroraStartup"]; if (aurorastartupConfig != null) { //Region specific is still honored here, the RegionInfo checks for it RegionInfo.ObjectCapacity = aurorastartupConfig.GetInt("ObjectCapacity", 80000); } IConfig packetConfig = m_config.Configs["PacketPool"]; if (packetConfig != null) { PacketPool.Instance.RecyclePackets = packetConfig.GetBoolean("RecyclePackets", true); PacketPool.Instance.RecycleDataBlocks = packetConfig.GetBoolean("RecycleDataBlocks", true); } #endregion Region Config m_basesimfps = 45f; m_basesimphysfps = 45f; m_basesimphysfps = Config.Configs["Physics"].GetFloat("BasePhysicsFPS", 45f); if (m_basesimphysfps > 45f) { m_basesimphysfps = 45f; } m_basesimfps = Config.Configs["Protection"].GetFloat("BaseRateFramesPerSecond", 45f); if (m_basesimfps > 45f) { m_basesimfps = 45f; } if (m_basesimphysfps > m_basesimfps) { m_basesimphysfps = m_basesimfps; } m_updatetimespan = 1 / m_basesimfps; m_physicstimespan = 1 / m_basesimphysfps; #region Startup Complete config EventManager.OnAddToStartupQueue += AddToStartupQueue; EventManager.OnModuleFinishedStartup += FinishedStartup; EventManager.OnStartupComplete += StartupComplete; AddToStartupQueue("Startup"); #endregion }
/// <summary> /// Create a scene and its initial base structures. /// </summary> /// <param name="regionInfo"></param> /// <param name="proxyOffset"></param> /// <param name="configSource"></param> /// <param name="clientServer"> </param> /// <returns></returns> protected Scene SetupScene( RegionInfo regionInfo, int proxyOffset, IConfigSource configSource, out IClientNetworkServer clientServer) { IPAddress listenIP = regionInfo.InternalEndPoint.Address; //if (!IPAddress.TryParse(regionInfo.InternalEndPoint, out listenIP)) // listenIP = IPAddress.Parse("0.0.0.0"); uint port = (uint)regionInfo.InternalEndPoint.Port; if (m_autoCreateClientStack) { clientServer = m_clientStackManager.CreateServer( listenIP, ref port, proxyOffset, regionInfo.m_allow_alternate_ports, configSource, m_assetCache); } else { clientServer = null; } regionInfo.InternalEndPoint.Port = (int)port; // TODO: Remove this cruft once MasterAvatar is fully deprecated //Master Avatar Setup UserProfileData masterAvatar; if (regionInfo.MasterAvatarAssignedUUID == UUID.Zero) { masterAvatar = m_commsManager.UserService.SetupMasterUser(regionInfo.MasterAvatarFirstName, regionInfo.MasterAvatarLastName, regionInfo.MasterAvatarSandboxPassword); } else { masterAvatar = m_commsManager.UserService.SetupMasterUser(regionInfo.MasterAvatarAssignedUUID); } if (masterAvatar == null) { regionInfo.MasterAvatarAssignedUUID = UUID.Zero; m_log.Error("[PARCEL]: No master avatar found, using null UUID for master avatar."); // Should be a fatal error? } else { regionInfo.MasterAvatarAssignedUUID = masterAvatar.ID; regionInfo.MasterAvatarFirstName = masterAvatar.FirstName; regionInfo.MasterAvatarLastName = masterAvatar.SurName; m_log.InfoFormat("[PARCEL]: Found master avatar {0} {1} [{2}]", regionInfo.MasterAvatarFirstName, regionInfo.MasterAvatarLastName, regionInfo.MasterAvatarAssignedUUID.ToString() ); } Scene scene = CreateScene(regionInfo, m_storageManager); if (m_autoCreateClientStack) { clientServer.AddScene(scene); } scene.LoadWorldMap(); scene.PhysicsScene = GetPhysicsScene(scene.RegionInfo.RegionName, scene.RegionInfo.RegionID); scene.PhysicsScene.TerrainChannel = scene.Heightmap; scene.PhysicsScene.RegionSettings = scene.RegionInfo.RegionSettings; scene.PhysicsScene.SetStartupTerrain(scene.Heightmap.GetFloatsSerialized(), scene.Heightmap.RevisionNumber); scene.PhysicsScene.SetWaterLevel((float)regionInfo.RegionSettings.WaterHeight); return(scene); }