001package squidpony.squidgrid.mapping; 002 003/** 004 * Created by Tommy Ettinger on 6/1/2017. 005 */ 006public interface IDungeonGenerator { 007 /** 008 * Generates a dungeon or other map as a 2D char array. Any implementation may allow its own configuration and 009 * customization of how dungeons are generated, but each must provide this as a sane default. Most implementations 010 * should use the convention of '#' representing a wall and '.' representing a bare floor, but beyond that, anything 011 * could be present in the char array. 012 * @return a 2D char array representing some kind of map, probably using standard conventions for walls/floors 013 */ 014 char[][] generate(); 015 016 /** 017 * Gets the most recently-produced dungeon as a 2D char array, usually produced by calling {@link #generate()} or 018 * some similar method present in a specific implementation. This normally passes a direct reference and not a copy, 019 * so you can normally modify the returned array to propagate changes back into this IDungeonGenerator. 020 * @return the most recently-produced dungeon/map as a 2D char array 021 */ 022 char[][] getDungeon(); 023}