Beispiel #1
0
        /// <summary>
        /// Changes to level to map that will be generated based on the current position
        /// </summary>
        /// <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(int tileColumn, int tileRow, bool disposeCurrentMap)
        {
            if (!disposeCurrentMap && currentLevel != null)
            {
                maps.Add(CurrentLevel);
            }

            UnSub();
            currentLevel = generator.GenerateMap(tileColumn, tileRow);
            Sub();

            GridChanged?.Invoke(this, new GridEventArgs(currentLevel.GridRow, currentLevel.GridColumn, -1, -1, false));
        }
Beispiel #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));
        }
Beispiel #3
0
        /// <summary>
        /// Starts new map generation
        /// </summary>
        /// <param name="currentTileRow">Tile row index</param>
        /// <param name="currentTileColumn">tile column index</param>
        private void Resize(int currentTileRow, int currentTileColumn)
        {
            if (generator != null)
            {
                if (newMap != null)
                {
                    newMapAvalible = true;
                    if (TryMapUpdate(gridRow, gridColumn))
                    {
                        return;
                    }
                }

                newMapAvalible  = false;
                newMapRequested = true;
                new Thread(() =>
                {
                    newMap         = generator.GenerateMap(currentTileColumn, currentTileRow);
                    newMapAvalible = true;
                }).Start();
            }
        }