Просмотр исходного кода

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 лет назад
Родитель
Сommit
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;