aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2012-01-22 11:36:04 +0000
committerMelanie2012-01-22 11:36:04 +0000
commit68365c20c0b3a3164881398f3bc3710f7960c52d (patch)
treebef00ac36c0dc8f33c1df3066c9d0e09dbb71aa9
parentTelehub Support: (diff)
downloadopensim-SC_OLD-68365c20c0b3a3164881398f3bc3710f7960c52d.zip
opensim-SC_OLD-68365c20c0b3a3164881398f3bc3710f7960c52d.tar.gz
opensim-SC_OLD-68365c20c0b3a3164881398f3bc3710f7960c52d.tar.bz2
opensim-SC_OLD-68365c20c0b3a3164881398f3bc3710f7960c52d.tar.xz
Move Telehub tables and data from EstateSettings to RegionSettings.
This is damage control es EstateSettings is not the place this can be put. EstateSettings is nt unique to a region and therefore would introduce a hard limit of one telehub per estate, completely shutting off the option of having SL style telehubs, e.g. one per region. Whole estate teleport routing can still be implemented id desiresd, this way all options are open while the other way most options get closed off.
-rw-r--r--OpenSim/Data/MySQL/MySQLEstateData.cs65
-rw-r--r--OpenSim/Data/MySQL/MySQLSimulationData.cs70
-rw-r--r--OpenSim/Data/MySQL/Resources/EstateStore.migrations21
-rw-r--r--OpenSim/Data/MySQL/Resources/RegionStore.migrations26
-rw-r--r--OpenSim/Framework/EstateSettings.cs150
-rw-r--r--OpenSim/Framework/RegionSettings.cs150
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs12
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/TelehubManager.cs46
8 files changed, 273 insertions, 267 deletions
diff --git a/OpenSim/Data/MySQL/MySQLEstateData.cs b/OpenSim/Data/MySQL/MySQLEstateData.cs
index a357268..3dd46cb 100644
--- a/OpenSim/Data/MySQL/MySQLEstateData.cs
+++ b/OpenSim/Data/MySQL/MySQLEstateData.cs
@@ -157,7 +157,6 @@ namespace OpenSim.Data.MySQL
157 DoCreate(es); 157 DoCreate(es);
158 158
159 LoadBanList(es); 159 LoadBanList(es);
160 LoadSpawnPoints(es);
161 160
162 es.EstateManagers = LoadUUIDList(es.EstateID, "estate_managers"); 161 es.EstateManagers = LoadUUIDList(es.EstateID, "estate_managers");
163 es.EstateAccess = LoadUUIDList(es.EstateID, "estate_users"); 162 es.EstateAccess = LoadUUIDList(es.EstateID, "estate_users");
@@ -211,7 +210,6 @@ namespace OpenSim.Data.MySQL
211 } 210 }
212 211
213 LoadBanList(es); 212 LoadBanList(es);
214 LoadSpawnPoints(es);
215 es.EstateManagers = LoadUUIDList(es.EstateID, "estate_managers"); 213 es.EstateManagers = LoadUUIDList(es.EstateID, "estate_managers");
216 es.EstateAccess = LoadUUIDList(es.EstateID, "estate_users"); 214 es.EstateAccess = LoadUUIDList(es.EstateID, "estate_users");
217 es.EstateGroups = LoadUUIDList(es.EstateID, "estate_groups"); 215 es.EstateGroups = LoadUUIDList(es.EstateID, "estate_groups");
@@ -298,74 +296,11 @@ namespace OpenSim.Data.MySQL
298 } 296 }
299 297
300 SaveBanList(es); 298 SaveBanList(es);
301 SaveSpawnPoints(es);
302 SaveUUIDList(es.EstateID, "estate_managers", es.EstateManagers); 299 SaveUUIDList(es.EstateID, "estate_managers", es.EstateManagers);
303 SaveUUIDList(es.EstateID, "estate_users", es.EstateAccess); 300 SaveUUIDList(es.EstateID, "estate_users", es.EstateAccess);
304 SaveUUIDList(es.EstateID, "estate_groups", es.EstateGroups); 301 SaveUUIDList(es.EstateID, "estate_groups", es.EstateGroups);
305 } 302 }
306 303
307 private void LoadSpawnPoints(EstateSettings es)
308 {
309 es.ClearSpawnPoints();
310
311 using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
312 {
313 dbcon.Open();
314
315 using (MySqlCommand cmd = dbcon.CreateCommand())
316 {
317 uint EstateID = es.EstateID;
318 cmd.CommandText = "select PointX, PointY, PointZ from spawn_points where EstateID = ?EstateID";
319 cmd.Parameters.AddWithValue("?EstateID", es.EstateID);
320
321 using (IDataReader r = cmd.ExecuteReader())
322 {
323 while (r.Read())
324 {
325 Vector3 point = new Vector3();
326
327 point.X = (float)r["PointX"];
328 point.Y = (float)r["PointY"];
329 point.Z = (float)r["PointZ"];
330
331 es.AddSpawnPoint(point);
332 }
333 }
334 }
335 }
336 }
337
338 private void SaveSpawnPoints(EstateSettings es)
339 {
340 using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
341 {
342 dbcon.Open();
343
344 using (MySqlCommand cmd = dbcon.CreateCommand())
345 {
346 cmd.CommandText = "delete from spawn_points where EstateID = ?EstateID";
347 cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString());
348
349 cmd.ExecuteNonQuery();
350
351 cmd.Parameters.Clear();
352
353 cmd.CommandText = "insert into spawn_points (EstateID, PointX, PointY, PointZ) values ( ?EstateID, ?PointX, ?PointY,?PointZ)";
354
355 foreach (Vector3 p in es.SpawnPoints())
356 {
357 cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString());
358 cmd.Parameters.AddWithValue("?PointX", p.X);
359 cmd.Parameters.AddWithValue("?PointY", p.Y);
360 cmd.Parameters.AddWithValue("?PointZ", p.Z);
361
362 cmd.ExecuteNonQuery();
363 cmd.Parameters.Clear();
364 }
365 }
366 }
367 }
368
369 private void LoadBanList(EstateSettings es) 304 private void LoadBanList(EstateSettings es)
370 { 305 {
371 es.ClearBans(); 306 es.ClearBans();
diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs
index 6d14b82..3883e24 100644
--- a/OpenSim/Data/MySQL/MySQLSimulationData.cs
+++ b/OpenSim/Data/MySQL/MySQLSimulationData.cs
@@ -846,6 +846,8 @@ namespace OpenSim.Data.MySQL
846 } 846 }
847 } 847 }
848 848
849 LoadSpawnPoints(rs);
850
849 return rs; 851 return rs;
850 } 852 }
851 853
@@ -1017,6 +1019,7 @@ namespace OpenSim.Data.MySQL
1017 } 1019 }
1018 } 1020 }
1019 } 1021 }
1022 SaveSpawnPoints(rs);
1020 } 1023 }
1021 1024
1022 public List<LandData> LoadLandObjects(UUID regionUUID) 1025 public List<LandData> LoadLandObjects(UUID regionUUID)
@@ -1828,5 +1831,72 @@ namespace OpenSim.Data.MySQL
1828 } 1831 }
1829 } 1832 }
1830 } 1833 }
1834
1835 private void LoadSpawnPoints(RegionSettings rs)
1836 {
1837 rs.ClearSpawnPoints();
1838
1839 lock (m_dbLock)
1840 {
1841 using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
1842 {
1843 dbcon.Open();
1844
1845 using (MySqlCommand cmd = dbcon.CreateCommand())
1846 {
1847 cmd.CommandText = "select PointX, PointY, PointZ from spawn_points where RegionID = ?RegionID";
1848 cmd.Parameters.AddWithValue("?RegionID", rs.RegionUUID.ToString());
1849
1850 using (IDataReader r = cmd.ExecuteReader())
1851 {
1852 while (r.Read())
1853 {
1854 Vector3 point = new Vector3();
1855
1856 point.X = (float)r["PointX"];
1857 point.Y = (float)r["PointY"];
1858 point.Z = (float)r["PointZ"];
1859
1860 rs.AddSpawnPoint(point);
1861 }
1862 }
1863 }
1864 }
1865 }
1866 }
1867
1868 private void SaveSpawnPoints(RegionSettings rs)
1869 {
1870 lock (m_dbLock)
1871 {
1872 using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
1873 {
1874 dbcon.Open();
1875
1876 using (MySqlCommand cmd = dbcon.CreateCommand())
1877 {
1878 cmd.CommandText = "delete from spawn_points where RegionID = ?RegionID";
1879 cmd.Parameters.AddWithValue("?RegionID", rs.RegionUUID.ToString());
1880
1881 cmd.ExecuteNonQuery();
1882
1883 cmd.Parameters.Clear();
1884
1885 cmd.CommandText = "insert into spawn_points (RegionID, PointX, PointY, PointZ) values ( ?EstateID, ?PointX, ?PointY,?PointZ)";
1886
1887 foreach (Vector3 p in rs.SpawnPoints())
1888 {
1889 cmd.Parameters.AddWithValue("?EstateID", rs.RegionUUID.ToString());
1890 cmd.Parameters.AddWithValue("?PointX", p.X);
1891 cmd.Parameters.AddWithValue("?PointY", p.Y);
1892 cmd.Parameters.AddWithValue("?PointZ", p.Z);
1893
1894 cmd.ExecuteNonQuery();
1895 cmd.Parameters.Clear();
1896 }
1897 }
1898 }
1899 }
1900 }
1831 } 1901 }
1832} 1902}
diff --git a/OpenSim/Data/MySQL/Resources/EstateStore.migrations b/OpenSim/Data/MySQL/Resources/EstateStore.migrations
index 591295b..df82a2e 100644
--- a/OpenSim/Data/MySQL/Resources/EstateStore.migrations
+++ b/OpenSim/Data/MySQL/Resources/EstateStore.migrations
@@ -78,25 +78,4 @@ ALTER TABLE estate_settings AUTO_INCREMENT = 100;
78COMMIT; 78COMMIT;
79 79
80 80
81:VERSION 33 #--------------------- ( Supporting Telehubs
82 81
83BEGIN;
84CREATE TABLE IF NOT EXISTS `spawn_points` (
85 `EstateID` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
86 `PointX` float NOT NULL,
87 `PointY` float NOT NULL,
88 `PointZ` float NOT NULL,
89 KEY `EstateID` (`EstateID`)
90) ENGINE=Innodb;
91
92ALTER TABLE `estate_settings` ADD COLUMN `TelehubObject` varchar(36) NOT NULL;
93ALTER TABLE `estate_settings` ADD COLUMN `TelehubName` varchar(255) NOT NULL;
94ALTER TABLE `estate_settings` ADD COLUMN `TelehubEnabled` tinyint(4) NOT NULL;
95ALTER TABLE `estate_settings` ADD COLUMN `TelehubPosX` float NOT NULL;
96ALTER TABLE `estate_settings` ADD COLUMN `TelehubPosY` float NOT NULL;
97ALTER TABLE `estate_settings` ADD COLUMN `TelehubPosZ` float NOT NULL;
98ALTER TABLE `estate_settings` ADD COLUMN `TelehubRotX` float NOT NULL;
99ALTER TABLE `estate_settings` ADD COLUMN `TelehubRotY` float NOT NULL;
100ALTER TABLE `estate_settings` ADD COLUMN `TelehubRotZ` float NOT NULL;
101ALTER TABLE `estate_settings` ADD COLUMN `TelehubRotW` float NOT NULL;
102COMMIT; \ No newline at end of file
diff --git a/OpenSim/Data/MySQL/Resources/RegionStore.migrations b/OpenSim/Data/MySQL/Resources/RegionStore.migrations
index 987625b..ce66cfb 100644
--- a/OpenSim/Data/MySQL/Resources/RegionStore.migrations
+++ b/OpenSim/Data/MySQL/Resources/RegionStore.migrations
@@ -841,4 +841,28 @@ alter table regionban ENGINE = MyISAM;
841alter table regionsettings ENGINE = MyISAM; 841alter table regionsettings ENGINE = MyISAM;
842alter table terrain ENGINE = MyISAM; 842alter table terrain ENGINE = MyISAM;
843 843
844COMMIT; \ No newline at end of file 844COMMIT;
845
846:VERSION 39 #--------------- Telehub support
847
848BEGIN;
849CREATE TABLE IF NOT EXISTS `spawn_points` (
850 `RegionID` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
851 `PointX` float NOT NULL,
852 `PointY` float NOT NULL,
853 `PointZ` float NOT NULL,
854 KEY `EstateID` (`EstateID`)
855) ENGINE=Innodb;
856
857ALTER TABLE `regionsettings` ADD COLUMN `TelehubObject` varchar(36) NOT NULL;
858ALTER TABLE `regionsettings` ADD COLUMN `TelehubName` varchar(255) NOT NULL;
859ALTER TABLE `regionsettings` ADD COLUMN `TelehubEnabled` tinyint(4) NOT NULL;
860ALTER TABLE `regionsettings` ADD COLUMN `TelehubPosX` float NOT NULL;
861ALTER TABLE `regionsettings` ADD COLUMN `TelehubPosY` float NOT NULL;
862ALTER TABLE `regionsettings` ADD COLUMN `TelehubPosZ` float NOT NULL;
863ALTER TABLE `regionsettings` ADD COLUMN `TelehubRotX` float NOT NULL;
864ALTER TABLE `regionsettings` ADD COLUMN `TelehubRotY` float NOT NULL;
865ALTER TABLE `regionsettings` ADD COLUMN `TelehubRotZ` float NOT NULL;
866ALTER TABLE `regionsettings` ADD COLUMN `TelehubRotW` float NOT NULL;
867COMMIT;
868
diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs
index 9bdeab8..2a495b0 100644
--- a/OpenSim/Framework/EstateSettings.cs
+++ b/OpenSim/Framework/EstateSettings.cs
@@ -373,155 +373,5 @@ namespace OpenSim.Framework
373 373
374 return l_EstateAccess.Contains(user); 374 return l_EstateAccess.Contains(user);
375 } 375 }
376
377 // Telehub support
378 private bool m_TelehubEnabled = false;
379 public bool HasTelehub
380 {
381 get { return m_TelehubEnabled; }
382 set { m_TelehubEnabled = value; }
383 }
384
385 // Connected Telehub object
386 private UUID m_TelehubObject;
387 public UUID TelehubObject
388 {
389 get
390 {
391 if (HasTelehub)
392 {
393 return m_TelehubObject;
394 }
395 else
396 {
397 return UUID.Zero;
398 }
399 }
400 set
401 {
402 m_TelehubObject = value;
403 }
404 }
405
406 // Connected Telehub name
407 private string m_TelehubName;
408 public string TelehubName
409 {
410 get
411 {
412 if (HasTelehub)
413 {
414 return m_TelehubName;
415 }
416 else
417 {
418 return String.Empty;
419 }
420 }
421 set
422 {
423 m_TelehubName = value;
424 }
425 }
426
427 // Connected Telehub position
428 private float m_TelehubPosX;
429 private float m_TelehubPosY;
430 private float m_TelehubPosZ;
431 public Vector3 TelehubPos
432 {
433 get
434 {
435 if (HasTelehub)
436 {
437 Vector3 Pos = new Vector3(m_TelehubPosX, m_TelehubPosY, m_TelehubPosZ);
438 return Pos;
439 }
440 else
441 {
442 return Vector3.Zero;
443 }
444 }
445 set
446 {
447
448 m_TelehubPosX = value.X;
449 m_TelehubPosY = value.Y;
450 m_TelehubPosZ = value.Z;
451 }
452 }
453
454 // Connected Telehub rotation
455 private float m_TelehubRotX;
456 private float m_TelehubRotY;
457 private float m_TelehubRotZ;
458 private float m_TelehubRotW;
459 public Quaternion TelehubRot
460 {
461 get
462 {
463 if (HasTelehub)
464 {
465 Quaternion quat = new Quaternion();
466
467 quat.X = m_TelehubRotX;
468 quat.Y = m_TelehubRotY;
469 quat.Z = m_TelehubRotZ;
470 quat.W = m_TelehubRotW;
471
472 return quat;
473 }
474 else
475 {
476 // What else to do??
477 Quaternion quat = new Quaternion();
478
479 quat.X = m_TelehubRotX;
480 quat.X = m_TelehubRotY;
481 quat.X = m_TelehubRotZ;
482 quat.X = m_TelehubRotW;
483
484 return quat;
485 }
486 }
487 set
488 {
489 m_TelehubRotX = value.X;
490 m_TelehubRotY = value.Y;
491 m_TelehubRotZ = value.Z;
492 m_TelehubRotW = value.W;
493 }
494 }
495
496 // Our Connected Telehub's SpawnPoints
497 public List<Vector3> l_SpawnPoints = new List<Vector3>();
498
499 // Add a SpawnPoint
500 // ** These are not region coordinates **
501 // They are relative to the Telehub coordinates
502 //
503 public void AddSpawnPoint(Vector3 point)
504 {
505 l_SpawnPoints.Add(point);
506 }
507
508 // Remove a SpawnPoint
509 public void RemoveSpawnPoint(int point_index)
510 {
511 l_SpawnPoints.RemoveAt(point_index);
512 }
513
514 // Return the List of SpawnPoints
515 public List<Vector3> SpawnPoints()
516 {
517 return l_SpawnPoints;
518
519 }
520
521 // Clear the SpawnPoints List of all entries
522 public void ClearSpawnPoints()
523 {
524 l_SpawnPoints.Clear();
525 }
526 } 376 }
527} 377}
diff --git a/OpenSim/Framework/RegionSettings.cs b/OpenSim/Framework/RegionSettings.cs
index 673cf20..a2dd64f 100644
--- a/OpenSim/Framework/RegionSettings.cs
+++ b/OpenSim/Framework/RegionSettings.cs
@@ -26,6 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections.Generic;
29using System.IO; 30using System.IO;
30using OpenMetaverse; 31using OpenMetaverse;
31 32
@@ -397,5 +398,154 @@ namespace OpenSim.Framework
397 set { m_LoadedCreationID = value; } 398 set { m_LoadedCreationID = value; }
398 } 399 }
399 400
401 // Telehub support
402 private bool m_TelehubEnabled = false;
403 public bool HasTelehub
404 {
405 get { return m_TelehubEnabled; }
406 set { m_TelehubEnabled = value; }
407 }
408
409 // Connected Telehub object
410 private UUID m_TelehubObject;
411 public UUID TelehubObject
412 {
413 get
414 {
415 if (HasTelehub)
416 {
417 return m_TelehubObject;
418 }
419 else
420 {
421 return UUID.Zero;
422 }
423 }
424 set
425 {
426 m_TelehubObject = value;
427 }
428 }
429
430 // Connected Telehub name
431 private string m_TelehubName;
432 public string TelehubName
433 {
434 get
435 {
436 if (HasTelehub)
437 {
438 return m_TelehubName;
439 }
440 else
441 {
442 return String.Empty;
443 }
444 }
445 set
446 {
447 m_TelehubName = value;
448 }
449 }
450
451 // Connected Telehub position
452 private float m_TelehubPosX;
453 private float m_TelehubPosY;
454 private float m_TelehubPosZ;
455 public Vector3 TelehubPos
456 {
457 get
458 {
459 if (HasTelehub)
460 {
461 Vector3 Pos = new Vector3(m_TelehubPosX, m_TelehubPosY, m_TelehubPosZ);
462 return Pos;
463 }
464 else
465 {
466 return Vector3.Zero;
467 }
468 }
469 set
470 {
471
472 m_TelehubPosX = value.X;
473 m_TelehubPosY = value.Y;
474 m_TelehubPosZ = value.Z;
475 }
476 }
477
478 // Connected Telehub rotation
479 private float m_TelehubRotX;
480 private float m_TelehubRotY;
481 private float m_TelehubRotZ;
482 private float m_TelehubRotW;
483 public Quaternion TelehubRot
484 {
485 get
486 {
487 if (HasTelehub)
488 {
489 Quaternion quat = new Quaternion();
490
491 quat.X = m_TelehubRotX;
492 quat.Y = m_TelehubRotY;
493 quat.Z = m_TelehubRotZ;
494 quat.W = m_TelehubRotW;
495
496 return quat;
497 }
498 else
499 {
500 // What else to do??
501 Quaternion quat = new Quaternion();
502
503 quat.X = m_TelehubRotX;
504 quat.X = m_TelehubRotY;
505 quat.X = m_TelehubRotZ;
506 quat.X = m_TelehubRotW;
507
508 return quat;
509 }
510 }
511 set
512 {
513 m_TelehubRotX = value.X;
514 m_TelehubRotY = value.Y;
515 m_TelehubRotZ = value.Z;
516 m_TelehubRotW = value.W;
517 }
518 }
519
520 // Our Connected Telehub's SpawnPoints
521 public List<Vector3> l_SpawnPoints = new List<Vector3>();
522
523 // Add a SpawnPoint
524 // ** These are not region coordinates **
525 // They are relative to the Telehub coordinates
526 //
527 public void AddSpawnPoint(Vector3 point)
528 {
529 l_SpawnPoints.Add(point);
530 }
531
532 // Remove a SpawnPoint
533 public void RemoveSpawnPoint(int point_index)
534 {
535 l_SpawnPoints.RemoveAt(point_index);
536 }
537
538 // Return the List of SpawnPoints
539 public List<Vector3> SpawnPoints()
540 {
541 return l_SpawnPoints;
542
543 }
544
545 // Clear the SpawnPoints List of all entries
546 public void ClearSpawnPoints()
547 {
548 l_SpawnPoints.Clear();
549 }
400 } 550 }
401} 551}
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 6a02ffe..cdcea65 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -609,9 +609,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
609 { 609 {
610 case "info ui": 610 case "info ui":
611 // Send info: 611 // Send info:
612 if (Scene.RegionInfo.EstateSettings.HasTelehub) 612 if (Scene.RegionInfo.RegionSettings.HasTelehub)
613 { 613 {
614 EstateSettings settings = this.Scene.RegionInfo.EstateSettings; 614 RegionSettings settings = this.Scene.RegionInfo.RegionSettings;
615 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, 615 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos,
616 settings.TelehubRot, settings.SpawnPoints()); 616 settings.TelehubRot, settings.SpawnPoints());
617 } 617 }
@@ -626,7 +626,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
626 part = Scene.GetSceneObjectPart((uint)param1); 626 part = Scene.GetSceneObjectPart((uint)param1);
627 if (m_Telehub.Connect(part)) 627 if (m_Telehub.Connect(part))
628 { 628 {
629 EstateSettings settings = this.Scene.RegionInfo.EstateSettings; 629 RegionSettings settings = this.Scene.RegionInfo.RegionSettings;
630 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, 630 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos,
631 settings.TelehubRot, settings.SpawnPoints()); 631 settings.TelehubRot, settings.SpawnPoints());
632 } 632 }
@@ -637,7 +637,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
637 part = Scene.GetSceneObjectPart((uint)param1); 637 part = Scene.GetSceneObjectPart((uint)param1);
638 if (m_Telehub.DisConnect(part)) 638 if (m_Telehub.DisConnect(part))
639 { 639 {
640 EstateSettings settings = this.Scene.RegionInfo.EstateSettings; 640 RegionSettings settings = this.Scene.RegionInfo.RegionSettings;
641 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, 641 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos,
642 settings.TelehubRot, settings.SpawnPoints()); 642 settings.TelehubRot, settings.SpawnPoints());
643 } 643 }
@@ -648,7 +648,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
648 part = Scene.GetSceneObjectPart((uint)param1); 648 part = Scene.GetSceneObjectPart((uint)param1);
649 if( m_Telehub.AddSpawnPoint(part.AbsolutePosition)) 649 if( m_Telehub.AddSpawnPoint(part.AbsolutePosition))
650 { 650 {
651 EstateSettings settings = this.Scene.RegionInfo.EstateSettings; 651 RegionSettings settings = this.Scene.RegionInfo.RegionSettings;
652 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, 652 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos,
653 settings.TelehubRot, settings.SpawnPoints()); 653 settings.TelehubRot, settings.SpawnPoints());
654 } 654 }
@@ -658,7 +658,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
658 // Remove SpawnPoint from Telehub 658 // Remove SpawnPoint from Telehub
659 if (m_Telehub.RemoveSpawnPoint((int)param1)) 659 if (m_Telehub.RemoveSpawnPoint((int)param1))
660 { 660 {
661 EstateSettings settings = this.Scene.RegionInfo.EstateSettings; 661 RegionSettings settings = this.Scene.RegionInfo.RegionSettings;
662 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, 662 client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos,
663 settings.TelehubRot, settings.SpawnPoints()); 663 settings.TelehubRot, settings.SpawnPoints());
664 } 664 }
diff --git a/OpenSim/Region/CoreModules/World/Estate/TelehubManager.cs b/OpenSim/Region/CoreModules/World/Estate/TelehubManager.cs
index 309ef13..ee77ae1 100644
--- a/OpenSim/Region/CoreModules/World/Estate/TelehubManager.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/TelehubManager.cs
@@ -44,7 +44,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
44 UUID EstateID; 44 UUID EstateID;
45 bool m_HasTelehub = false; 45 bool m_HasTelehub = false;
46 Scene m_Scene; 46 Scene m_Scene;
47 EstateSettings m_EstateSettings;
48 // This will get an option... 47 // This will get an option...
49 Vector3 InitialSpawnPoint = new Vector3(0.0f,0.0f,0.0f); 48 Vector3 InitialSpawnPoint = new Vector3(0.0f,0.0f,0.0f);
50 49
@@ -56,7 +55,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
56 public TelehubManager(Scene scene) 55 public TelehubManager(Scene scene)
57 { 56 {
58 m_Scene = scene; 57 m_Scene = scene;
59 m_EstateSettings = m_Scene.RegionInfo.EstateSettings;
60 } 58 }
61 59
62 // Fill our Telehub struct with values 60 // Fill our Telehub struct with values
@@ -76,17 +74,17 @@ namespace OpenSim.Region.CoreModules.World.Estate
76 // Connect the Telehub 74 // Connect the Telehub
77 public bool Connect(SceneObjectPart part) 75 public bool Connect(SceneObjectPart part)
78 { 76 {
79 m_EstateSettings.ClearSpawnPoints(); 77 m_Scene.RegionInfo.RegionSettings.ClearSpawnPoints();
80 78
81 m_EstateSettings.TelehubObject = part.UUID; 79 m_Scene.RegionInfo.RegionSettings.TelehubObject = part.UUID;
82 m_EstateSettings.TelehubName = part.Name; 80 m_Scene.RegionInfo.RegionSettings.TelehubName = part.Name;
83 m_EstateSettings.TelehubPos = part.AbsolutePosition; 81 m_Scene.RegionInfo.RegionSettings.TelehubPos = part.AbsolutePosition;
84 m_EstateSettings.TelehubRot = part.GetWorldRotation(); 82 m_Scene.RegionInfo.RegionSettings.TelehubRot = part.GetWorldRotation();
85 83
86 // Clear this for now 84 // Clear this for now
87 m_EstateSettings.AddSpawnPoint(InitialSpawnPoint); 85 m_Scene.RegionInfo.RegionSettings.AddSpawnPoint(InitialSpawnPoint);
88 m_EstateSettings.HasTelehub = true; 86 m_Scene.RegionInfo.RegionSettings.HasTelehub = true;
89 m_EstateSettings.Save(); 87 m_Scene.RegionInfo.RegionSettings.Save();
90 return true; 88 return true;
91 } 89 }
92 90
@@ -96,14 +94,14 @@ namespace OpenSim.Region.CoreModules.World.Estate
96 bool result = false; 94 bool result = false;
97 95
98 try{ 96 try{
99 m_EstateSettings.TelehubObject = UUID.Zero; 97 m_Scene.RegionInfo.RegionSettings.TelehubObject = UUID.Zero;
100 m_EstateSettings.TelehubName = String.Empty; 98 m_Scene.RegionInfo.RegionSettings.TelehubName = String.Empty;
101 m_EstateSettings.TelehubPos = Vector3.Zero; 99 m_Scene.RegionInfo.RegionSettings.TelehubPos = Vector3.Zero;
102 // This is probably wrong! But, HasTelehub will block access 100 // This is probably wrong! But, HasTelehub will block access
103 m_EstateSettings.TelehubRot = Quaternion.Identity; 101 m_Scene.RegionInfo.RegionSettings.TelehubRot = Quaternion.Identity;
104 m_EstateSettings.ClearSpawnPoints(); 102 m_Scene.RegionInfo.RegionSettings.ClearSpawnPoints();
105 m_EstateSettings.HasTelehub = false; 103 m_Scene.RegionInfo.RegionSettings.HasTelehub = false;
106 m_EstateSettings.Save(); 104 m_Scene.RegionInfo.RegionSettings.Save();
107 result = true; 105 result = true;
108 } 106 }
109 catch (Exception ex) 107 catch (Exception ex)
@@ -122,22 +120,22 @@ namespace OpenSim.Region.CoreModules.World.Estate
122 public bool AddSpawnPoint(Vector3 point) 120 public bool AddSpawnPoint(Vector3 point)
123 { 121 {
124 122
125 float dist = (float) Util.GetDistanceTo(m_EstateSettings.TelehubPos, point); 123 float dist = (float) Util.GetDistanceTo(m_Scene.RegionInfo.RegionSettings.TelehubPos, point);
126 Vector3 nvec = Util.GetNormalizedVector(point - m_EstateSettings.TelehubPos); 124 Vector3 nvec = Util.GetNormalizedVector(point - m_Scene.RegionInfo.RegionSettings.TelehubPos);
127 Vector3 spoint = nvec * dist; 125 Vector3 spoint = nvec * dist;
128 126
129 m_EstateSettings.AddSpawnPoint(spoint); 127 m_Scene.RegionInfo.RegionSettings.AddSpawnPoint(spoint);
130 m_EstateSettings.Save(); 128 m_Scene.RegionInfo.RegionSettings.Save();
131 return true; 129 return true;
132 } 130 }
133 131
134 // Remove a SpawnPoint from the Telehub 132 // Remove a SpawnPoint from the Telehub
135 public bool RemoveSpawnPoint(int spawnpoint) 133 public bool RemoveSpawnPoint(int spawnpoint)
136 { 134 {
137 m_EstateSettings.RemoveSpawnPoint(spawnpoint); 135 m_Scene.RegionInfo.RegionSettings.RemoveSpawnPoint(spawnpoint);
138 m_EstateSettings.Save(); 136 m_Scene.RegionInfo.RegionSettings.Save();
139 137
140 return true; 138 return true;
141 } 139 }
142 } 140 }
143} \ No newline at end of file 141}