From e187972377c19bdd85093677c4c54034e4f9196e Mon Sep 17 00:00:00 2001
From: Justin Clarke Casey
Date: Tue, 25 Nov 2008 15:19:00 +0000
Subject: * Apply http://opensimulator.org/mantis/view.php?id=2640 * This is
Diva's hypergrid patch, as perviously discussed on the opensim-dev mailing
list * Applied some minor prebuild.xml jiggling to resolve a dependency issue
* Thanks Diva!
---
.../Region/Environment/Scenes/Hypergrid/HGScene.cs | 78 ++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 OpenSim/Region/Environment/Scenes/Hypergrid/HGScene.cs
(limited to 'OpenSim/Region/Environment/Scenes/Hypergrid/HGScene.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Hypergrid/HGScene.cs b/OpenSim/Region/Environment/Scenes/Hypergrid/HGScene.cs
new file mode 100644
index 0000000..a1a6173
--- /dev/null
+++ b/OpenSim/Region/Environment/Scenes/Hypergrid/HGScene.cs
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2008, Contributors. All rights reserved.
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of the Organizations nor the names of Individual
+ * Contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+using System;
+using System.Collections.Generic;
+
+using OpenMetaverse;
+
+using OpenSim.Framework;
+
+using OpenSim.Framework.Communications.Cache;
+using OpenSim.Region.Environment;
+using OpenSim.Region.Environment.Scenes;
+using TPFlags = OpenSim.Framework.Constants.TeleportFlags;
+
+namespace OpenSim.Region.Environment.Scenes.Hypergrid
+{
+ public partial class HGScene : Scene
+ {
+ ///
+ /// Teleport an avatar to their home region
+ ///
+ ///
+ ///
+ public override void TeleportClientHome(UUID agentId, IClientAPI client)
+ {
+ m_log.Debug("[HGScene]: TeleportClientHome " + client.FirstName + " " + client.LastName);
+
+ CachedUserInfo uinfo = CommsManager.UserProfileCacheService.GetUserDetails(agentId);
+ UserProfileData UserProfile = uinfo.UserProfile;
+
+ if (UserProfile != null)
+ {
+ RegionInfo regionInfo = CommsManager.GridService.RequestNeighbourInfo(UserProfile.HomeRegion);
+ //if (regionInfo != null)
+ //{
+ // UserProfile.HomeRegionID = regionInfo.RegionID;
+ // //CommsManager.UserService.UpdateUserProfile(UserProfile);
+ //}
+ if (regionInfo == null)
+ {
+ // can't find the Home region: Tell viewer and abort
+ client.SendTeleportFailed("Your home-region could not be found.");
+ return;
+ }
+ RequestTeleportLocation(
+ client, regionInfo.RegionHandle, UserProfile.HomeLocation, UserProfile.HomeLookAt,
+ (uint)(TPFlags.SetLastToTarget | TPFlags.ViaHome));
+ }
+ }
+
+ }
+}
--
cgit v1.1