Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        protected void CreateMapTileAsyncCompleted(IAsyncResult iar)
        {
            CreateMapTile icon = (CreateMapTile)iar.AsyncState;

            icon.EndInvoke(iar);
        }