/// <summary> /// Create a terrain texture for this scene /// </summary> public void CreateTerrainTexture() { if (!m_generateMapTiles) { //They want a static texture, lock it in. m_scene.RegionInfo.RegionSettings.TerrainMapImageID = staticMapTileUUID; m_scene.RegionInfo.RegionSettings.TerrainImageID = staticMapTileUUID; return; } // Cannot create a map for a nonexistant heightmap. ITerrainChannel heightmap = m_scene.RequestModuleInterface <ITerrainChannel>(); if (heightmap == null) { return; } //m_log.Debug("[MAPTILE]: STORING MAPTILE IMAGE"); UUID lastMapRegionUUID = m_scene.RegionInfo.RegionSettings.TerrainImageID; m_scene.RegionInfo.RegionSettings.TerrainImageID = UUID.Random(); UUID lastTerrainRegionUUID = m_scene.RegionInfo.RegionSettings.TerrainMapImageID; m_scene.RegionInfo.RegionSettings.TerrainMapImageID = UUID.Random(); AssetBase Mapasset = new AssetBase( m_scene.RegionInfo.RegionSettings.TerrainImageID, "terrainImage_" + m_scene.RegionInfo.RegionID.ToString(), (sbyte)AssetType.Simstate, m_scene.RegionInfo.RegionID.ToString()); Mapasset.Description = m_scene.RegionInfo.RegionName; Mapasset.Temporary = false; Mapasset.Flags = AssetFlags.Deletable; AssetBase Terrainasset = new AssetBase( m_scene.RegionInfo.RegionSettings.TerrainMapImageID, "terrainMapImage_" + m_scene.RegionInfo.RegionID.ToString(), (sbyte)AssetType.Simstate, m_scene.RegionInfo.RegionID.ToString()); Terrainasset.Description = m_scene.RegionInfo.RegionName; Terrainasset.Temporary = false; Terrainasset.Flags = AssetFlags.Deletable; m_scene.RegionInfo.RegionSettings.Save(); if (!m_asyncMapTileCreation) { CreateMapTileAsync(Mapasset, Terrainasset, lastMapRegionUUID, lastTerrainRegionUUID); } else { CreateMapTile d = CreateMapTileAsync; d.BeginInvoke(Mapasset, Terrainasset, lastMapRegionUUID, lastTerrainRegionUUID, CreateMapTileAsyncCompleted, d); } }
protected void CreateMapTileAsyncCompleted(IAsyncResult iar) { CreateMapTile icon = (CreateMapTile)iar.AsyncState; icon.EndInvoke(iar); }