瀏覽代碼

Add "generate map" console command to allow manual regeneration and storage of maptiles

Primarily for test purposes though could be useful if one prefers to manually update the map tile
Justin Clark-Casey (justincc) 10 年之前
父節點
當前提交
a859464e91

+ 4 - 1
OpenSim/Region/CoreModules/World/LegacyMap/MapImageModule.cs

@@ -127,7 +127,10 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap
             try
             {
                 using (Bitmap mapbmp = CreateMapTile())
-                    return OpenJPEG.EncodeFromImage(mapbmp, true);
+                {
+                    if (mapbmp != null)
+                        return OpenJPEG.EncodeFromImage(mapbmp, true);
+                }
             }
             catch (Exception e) // LEGIT: Catching problems caused by OpenJPEG p/invoke
             {

+ 15 - 0
OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs

@@ -114,6 +114,11 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                     "export-map [<path>]",
                     "Save an image of the world map", HandleExportWorldMapConsoleCommand);
 
+                m_scene.AddCommand(
+                    "Regions", this, "generate map",
+                    "generate map",
+                    "Generates and stores a new maptile.", HandleGenerateMapConsoleCommand);
+
                 AddHandlers();
             }
         }
@@ -1274,6 +1279,16 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
                 m_scene.RegionInfo.RegionName, exportPath);
         }
 
+        public void HandleGenerateMapConsoleCommand(string module, string[] cmdparams)
+        {
+            Scene consoleScene = m_scene.ConsoleScene();
+
+            if (consoleScene != null && consoleScene != m_scene)
+                return;
+
+            GenerateMaptile();
+        }
+
         public OSD HandleRemoteMapItemRequest(string path, OSD request, string endpoint)
         {
             uint xstart = 0;