diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs index c4255b9..4a5a352 100644 --- a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs +++ b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs | |||
@@ -31,6 +31,7 @@ using System.Reflection; | |||
31 | using log4net; | 31 | using log4net; |
32 | using Nini.Config; | 32 | using Nini.Config; |
33 | using OpenMetaverse; | 33 | using OpenMetaverse; |
34 | using OpenMetaverse.StructuredData; | ||
34 | using Mono.Addins; | 35 | using Mono.Addins; |
35 | using OpenSim.Framework; | 36 | using OpenSim.Framework; |
36 | using OpenSim.Region.CoreModules.World.WorldMap; | 37 | using OpenSim.Region.CoreModules.World.WorldMap; |
@@ -48,13 +49,30 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
48 | // Remember the map area that each client has been exposed to in this region | 49 | // Remember the map area that each client has been exposed to in this region |
49 | private Dictionary<UUID, List<MapBlockData>> m_SeenMapBlocks = new Dictionary<UUID, List<MapBlockData>>(); | 50 | private Dictionary<UUID, List<MapBlockData>> m_SeenMapBlocks = new Dictionary<UUID, List<MapBlockData>>(); |
50 | 51 | ||
52 | private string m_MapImageServerURL = string.Empty; | ||
53 | |||
54 | private IUserManagement m_UserManagement; | ||
55 | |||
51 | #region INonSharedRegionModule Members | 56 | #region INonSharedRegionModule Members |
52 | 57 | ||
53 | public override void Initialise(IConfigSource config) | 58 | public override void Initialise(IConfigSource source) |
54 | { | 59 | { |
55 | if (Util.GetConfigVarFromSections<string>( | 60 | if (Util.GetConfigVarFromSections<string>( |
56 | config, "WorldMapModule", new string[] { "Map", "Startup" }, "WorldMap") == "HGWorldMap") | 61 | source, "WorldMapModule", new string[] { "Map", "Startup" }, "WorldMap") == "HGWorldMap") |
62 | { | ||
57 | m_Enabled = true; | 63 | m_Enabled = true; |
64 | |||
65 | m_MapImageServerURL = Util.GetConfigVarFromSections<string>(source, "MapTileURL", new string[] {"LoginService", "HGWorldMap", "SimulatorFeatures"}); | ||
66 | |||
67 | if (m_MapImageServerURL != string.Empty) | ||
68 | { | ||
69 | m_MapImageServerURL = m_MapImageServerURL.Trim(); | ||
70 | if (!m_MapImageServerURL.EndsWith("/")) | ||
71 | m_MapImageServerURL = m_MapImageServerURL + "/"; | ||
72 | } | ||
73 | |||
74 | |||
75 | } | ||
58 | } | 76 | } |
59 | 77 | ||
60 | public override void AddRegion(Scene scene) | 78 | public override void AddRegion(Scene scene) |
@@ -64,6 +82,17 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
64 | scene.EventManager.OnClientClosed += new EventManager.ClientClosed(EventManager_OnClientClosed); | 82 | scene.EventManager.OnClientClosed += new EventManager.ClientClosed(EventManager_OnClientClosed); |
65 | } | 83 | } |
66 | 84 | ||
85 | public override void RegionLoaded(Scene scene) | ||
86 | { | ||
87 | base.RegionLoaded(scene); | ||
88 | ISimulatorFeaturesModule featuresModule = m_scene.RequestModuleInterface<ISimulatorFeaturesModule>(); | ||
89 | |||
90 | if (featuresModule != null) | ||
91 | featuresModule.OnSimulatorFeaturesRequest += OnSimulatorFeaturesRequest; | ||
92 | |||
93 | m_UserManagement = m_scene.RequestModuleInterface<IUserManagement>(); | ||
94 | |||
95 | } | ||
67 | public override string Name | 96 | public override string Name |
68 | { | 97 | { |
69 | get { return "HGWorldMap"; } | 98 | get { return "HGWorldMap"; } |
@@ -115,6 +144,20 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
115 | return mapBlocks; | 144 | return mapBlocks; |
116 | } | 145 | } |
117 | 146 | ||
147 | private void OnSimulatorFeaturesRequest(UUID agentID, ref OSDMap features) | ||
148 | { | ||
149 | if (m_UserManagement != null && !m_UserManagement.IsLocalGridUser(agentID) && m_MapImageServerURL != string.Empty) | ||
150 | { | ||
151 | OSD extras = new OSDMap(); | ||
152 | if (features.ContainsKey("OpenSimExtras")) | ||
153 | extras = features["OpenSimExtras"]; | ||
154 | else | ||
155 | features["OpenSimExtras"] = extras; | ||
156 | |||
157 | ((OSDMap)extras)["map-server-url"] = m_MapImageServerURL; | ||
158 | |||
159 | } | ||
160 | } | ||
118 | } | 161 | } |
119 | 162 | ||
120 | class MapArea | 163 | class MapArea |