소스 검색

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
2개의 변경된 파일19개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      OpenSim/Region/CoreModules/World/LegacyMap/MapImageModule.cs
  2. 15 0
      OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs

+ 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;