From 32d58d6e3e9a0ea1bfa808567d0f64c0652f8a85 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Sat, 21 Jan 2012 23:26:27 -0500 Subject: Telehub Support: Telehub settings now persist to the database and are saved across sim restarts. So-far this only works on MySQL. this is a work in progress, teleport routing is not yet implemented. --- .../World/Estate/EstateManagementModule.cs | 50 +++++++++++++--------- 1 file changed, 30 insertions(+), 20 deletions(-) (limited to 'OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs') diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 0d4df6c..6a02ffe 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs @@ -53,7 +53,7 @@ namespace OpenSim.Region.CoreModules.World.Estate protected EstateManagementCommands m_commands; private EstateTerrainXferHandler TerrainUploader; - private TelehubManager m_Telehub; + public TelehubManager m_Telehub; public event ChangeDelegate OnRegionInfoChange; public event ChangeDelegate OnEstateInfoChange; @@ -600,22 +600,20 @@ namespace OpenSim.Region.CoreModules.World.Estate } } - private void handleOnEstateManageTelehub (IClientAPI client, UUID invoice, UUID senderID, string cmd, uint param1) + public void handleOnEstateManageTelehub (IClientAPI client, UUID invoice, UUID senderID, string cmd, uint param1) { uint ObjectLocalID; SceneObjectPart part; - // UUID EstateID = Scene.RegionInfo.EstateSettings.EstateID; - TelehubManager.Telehub telehub; switch (cmd) { case "info ui": // Send info: - if (m_Telehub.HasTelehub) + if (Scene.RegionInfo.EstateSettings.HasTelehub) { - telehub = m_Telehub.TelehubVals(); - client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition, - telehub.ObjectRotation, telehub.SpawnPoint); + EstateSettings settings = this.Scene.RegionInfo.EstateSettings; + client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, + settings.TelehubRot, settings.SpawnPoints()); } else { @@ -626,32 +624,44 @@ namespace OpenSim.Region.CoreModules.World.Estate case "connect": // Add the Telehub part = Scene.GetSceneObjectPart((uint)param1); - telehub = m_Telehub.Connect(part); - client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition, - telehub.ObjectRotation, telehub.SpawnPoint); + if (m_Telehub.Connect(part)) + { + EstateSettings settings = this.Scene.RegionInfo.EstateSettings; + client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, + settings.TelehubRot, settings.SpawnPoints()); + } break; case "delete": // Disconnect Telehub part = Scene.GetSceneObjectPart((uint)param1); - telehub = m_Telehub.DisConnect(part); - client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition, - telehub.ObjectRotation, telehub.SpawnPoint); + if (m_Telehub.DisConnect(part)) + { + EstateSettings settings = this.Scene.RegionInfo.EstateSettings; + client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, + settings.TelehubRot, settings.SpawnPoints()); + } break; case "spawnpoint add": // Add SpawnPoint to the Telehub part = Scene.GetSceneObjectPart((uint)param1); - telehub = m_Telehub.AddSpawnPoint(part.AbsolutePosition); - client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition, - telehub.ObjectRotation, telehub.SpawnPoint); + if( m_Telehub.AddSpawnPoint(part.AbsolutePosition)) + { + EstateSettings settings = this.Scene.RegionInfo.EstateSettings; + client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, + settings.TelehubRot, settings.SpawnPoints()); + } break; case "spawnpoint remove": // Remove SpawnPoint from Telehub - telehub = m_Telehub.RemoveSpawnPoint((int)param1); - client.SendTelehubInfo(telehub.ObjectID, telehub.ObjectName, telehub.ObjectPosition, - telehub.ObjectRotation, telehub.SpawnPoint); + if (m_Telehub.RemoveSpawnPoint((int)param1)) + { + EstateSettings settings = this.Scene.RegionInfo.EstateSettings; + client.SendTelehubInfo(settings.TelehubObject, settings.TelehubName, settings.TelehubPos, + settings.TelehubRot, settings.SpawnPoints()); + } break; default: -- cgit v1.1