aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs44
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs4
-rw-r--r--OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs5
3 files changed, 33 insertions, 20 deletions
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs
index 1437b1b..de7ea6d 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs
@@ -49,6 +49,18 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
49 List<Scene> m_scenes = new List<Scene>(); 49 List<Scene> m_scenes = new List<Scene>();
50 List<UUID> m_Clients; 50 List<UUID> m_Clients;
51 51
52 IWorldMapModule m_WorldMap;
53 IWorldMapModule WorldMap
54 {
55 get
56 {
57 if (m_WorldMap == null)
58 m_WorldMap = m_scene.RequestModuleInterface<IWorldMapModule>();
59 return m_WorldMap;
60 }
61
62 }
63
52 #region ISharedRegionModule Members 64 #region ISharedRegionModule Members
53 public void Initialise(IConfigSource source) 65 public void Initialise(IConfigSource source)
54 { 66 {
@@ -64,6 +76,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
64 m_scenes.Add(scene); 76 m_scenes.Add(scene);
65 scene.EventManager.OnNewClient += OnNewClient; 77 scene.EventManager.OnNewClient += OnNewClient;
66 m_Clients = new List<UUID>(); 78 m_Clients = new List<UUID>();
79
67 } 80 }
68 81
69 public void RemoveRegion(Scene scene) 82 public void RemoveRegion(Scene scene)
@@ -129,7 +142,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
129 private void OnMapNameRequest(IClientAPI remoteClient, string mapName, uint flags) 142 private void OnMapNameRequest(IClientAPI remoteClient, string mapName, uint flags)
130 { 143 {
131 List<MapBlockData> blocks = new List<MapBlockData>(); 144 List<MapBlockData> blocks = new List<MapBlockData>();
132 MapBlockData data;
133 if (mapName.Length < 3 || (mapName.EndsWith("#") && mapName.Length < 4)) 145 if (mapName.Length < 3 || (mapName.EndsWith("#") && mapName.Length < 4))
134 { 146 {
135 // final block, closing the search result 147 // final block, closing the search result
@@ -173,24 +185,20 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
173 { 185 {
174 foreach (GridRegion info in regionInfos) 186 foreach (GridRegion info in regionInfos)
175 { 187 {
176 data = new MapBlockData(); 188 if ((flags & 2) == 2) // V2 sends this
177 data.Agents = 0; 189 {
178 data.Access = info.Access; 190 List<MapBlockData> datas = WorldMap.Map2BlockFromGridRegion(info, flags);
179 if (flags == 2) // V2 sends this 191 // ugh! V2-3 is very sensitive about the result being
180 data.MapImageId = UUID.Zero; 192 // exactly the same as the requested name
181 else 193 if (regionInfos.Count == 1 && (mapName != mapNameOrig))
182 data.MapImageId = info.TerrainImage; 194 datas.ForEach(d => d.Name = mapNameOrig);
183 // ugh! V2-3 is very sensitive about the result being 195
184 // exactly the same as the requested name 196 blocks.AddRange(datas);
185 if (regionInfos.Count == 1 && (mapName != mapNameOrig)) 197 }
186 data.Name = mapNameOrig;
187 else 198 else
188 data.Name = info.RegionName; 199 {
189 data.RegionFlags = 0; // TODO not used? 200 MapBlockData data = WorldMap.MapBlockFromGridRegion(info, flags);
190 data.WaterHeight = 0; // not used 201 }
191 data.X = (ushort)Util.WorldToRegionLoc((uint)info.RegionLocX);
192 data.Y = (ushort)Util.WorldToRegionLoc((uint)info.RegionLocY);
193 blocks.Add(data);
194 } 202 }
195 } 203 }
196 204
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
index a3b0f39..b98afbc 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
@@ -1064,7 +1064,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
1064 } 1064 }
1065 1065
1066 // Fill a passed MapBlockData from a GridRegion 1066 // Fill a passed MapBlockData from a GridRegion
1067 protected MapBlockData MapBlockFromGridRegion(GridRegion r, uint flag) 1067 public MapBlockData MapBlockFromGridRegion(GridRegion r, uint flag)
1068 { 1068 {
1069 MapBlockData block = new MapBlockData(); 1069 MapBlockData block = new MapBlockData();
1070 1070
@@ -1090,7 +1090,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
1090 return block; 1090 return block;
1091 } 1091 }
1092 1092
1093 protected List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag) 1093 public List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag)
1094 { 1094 {
1095 List<MapBlockData> blocks = new List<MapBlockData>(); 1095 List<MapBlockData> blocks = new List<MapBlockData>();
1096 MapBlockData block = new MapBlockData(); 1096 MapBlockData block = new MapBlockData();
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs
index 65c57a6..9c781e1 100644
--- a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs
@@ -24,6 +24,9 @@
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27using System.Collections.Generic;
28using OpenSim.Framework;
29using OpenSim.Services.Interfaces;
27 30
28namespace OpenSim.Region.Framework.Interfaces 31namespace OpenSim.Region.Framework.Interfaces
29{ 32{
@@ -33,5 +36,7 @@ namespace OpenSim.Region.Framework.Interfaces
33 /// Generate a map tile for the scene. a terrain texture for this scene 36 /// Generate a map tile for the scene. a terrain texture for this scene
34 /// </summary> 37 /// </summary>
35 void GenerateMaptile(); 38 void GenerateMaptile();
39 List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag);
40 MapBlockData MapBlockFromGridRegion(GridRegion r, uint flag);
36 } 41 }
37} 42}