Example #1
0
 /// <summary>
 /// initzilzes a new tile map manager
 /// </summary>
 /// <param name="settings">Generator settings for the tile map generator</param>
 /// <param name="spreads">Areas that should be placed during the map generation</param>
 public TileMapManager(GeneratorSettings settings, AreaSpread[] spreads)
 {
     this.settings = settings;
     this.spreads  = spreads;
     maps          = new List <StreamedTileMap>();
     generator     = new TileMapGenerator();
 }
Example #2
0
        /// <summary>
        /// Changes to level to map that will be generated based on the current position
        /// </summary>
        /// <param name="settings">Setting to generate the new map</param>
        /// <param name="tileColumn">Tile column index</param>
        /// <param name="tileRow">Tile row index</param>
        /// <param name="disposeCurrentMap">Disposes the current level when true</param>
        public void Changelevel(GeneratorSettings settings, int tileColumn, int tileRow, bool disposeCurrentMap)
        {
            this.settings = settings;
            if (!disposeCurrentMap && currentLevel != null)
            {
                maps.Add(CurrentLevel);
            }
            generator = new TileMapGenerator();
            UnSub();
            currentLevel = generator.GenerateMap(settings, spreads, tileColumn, tileRow);
            Sub();

            GridChanged?.Invoke(this, new GridEventArgs(currentLevel.GridRow, currentLevel.GridColumn, -1, -1, false));
        }
Example #3
0
        /// <summary>
        /// Initzializes a new streamed tile map
        /// </summary>
        /// <param name="generator">Tile map generator</param>
        /// <param name="spawnTileRow">Tile row index</param>
        /// <param name="spawnTileColumn">Tile column index</param>
        /// <param name="gridColumnCount">Number of grid columns</param>
        /// <param name="gridRowCount">Number of grid rows</param>
        /// <param name="tileRowCount">Number of tile rows per grid</param>
        /// <param name="tileColumnCount">Number of tile columns per grid</param>
        /// <param name="tileSize">Tile size in pixel</param>
        public StreamedTileMap(TileMapGenerator generator, int spawnTileRow, int spawnTileColumn, int gridColumnCount, int gridRowCount, int tileRowCount, int tileColumnCount, int tileSize)
        {
            maps = new List <TileMapPart>();
            this.gridColumnCount = gridColumnCount;
            this.gridRowCount    = gridRowCount;
            this.tileSize        = tileSize;
            this.tileRowCount    = tileRowCount;
            this.tileColumnCount = tileColumnCount;
            this.generator       = generator;
            currentMapIndex      = 4;
            tileRow    = spawnTileRow;
            tileColumn = spawnTileColumn;
            gridRow    = (int)Math.Floor((double)spawnTileRow / (double)tileRowCount);
            gridColumn = (int)Math.Floor((double)spawnTileColumn / (double)tileColumnCount);

            gridRow    = TileMathHelper.FixTileIndex(gridRow, gridRowCount);
            gridColumn = TileMathHelper.FixTileIndex(gridColumn, gridColumnCount);
        }