001package squidpony.squidgrid.mapping.styled;
002
003import squidpony.tileset.*;
004
005/**
006 * An enumeration of all the kinds of dungeon that DungeonBoneGen
007 * knows how to draw already. Each value has a Javadoc description.
008 * Created by Tommy Ettinger on 3/10/2015.
009 */
010public enum TilesetType {
011    /**
012     * A generally useful kind of dungeon for ruins or underground manufactured areas.
013     * <br>
014     * Example:
015     * <br>
016     * <pre>
017     * ############################################################
018     * ##..#####......#..###.......######...#####..........#.....##
019     * ##..#..........#............#######...########......##.....#
020     * ##.........#...#.......##...#....###..##............##.....#
021     * ##......#..#...........##.........##..##........#########..#
022     * ##..#####..#...........##.........##..##...######..........#
023     * #.....#....#...#.......##.........##............#..........#
024     * #.....#....#####..#######..##.....##............#.....######
025     * ####..#....#......#####.....###...#....###......#.....######
026     * ####..######......#####.....###.......####.....#####..######
027     * ####..######......#####.....###......#####.....#####..######
028     * ####..######......#.........#####...#####......####......###
029     * ##........##...####.............#..######......#...........#
030     * ##........##....#########.......#########......#...........#
031     * ##..##....##............#...##...###...######..#.....##....#
032     * #...##....##............#..###....##..................###..#
033     * #...##..............##..#..###.....#....................##.#
034     * ##..##..............##......###........######............###
035     * ##..##########..######......###........#############.....###
036     * ##..##...#####..######......#####.....##############.....###
037     * ##..##...#####..######......#####.....###..###########..####
038     * ##..##...##........####.....#####.....###...#######.....#..#
039     * ##..##..###........#..##.....###.....##......######.....#..#
040     * ##..##.............#...##...........##..........##....###..#
041     * ##..##.............#....###........##...........##....#....#
042     * #............#######.....####..#####.........#........#....#
043     * #.........................###..####..........#.............#
044     * ######.................................##....#..##.........#
045     * ######..##############................###....#..###...#....#
046     * ######..###........###.....#####..############..############
047     * ######..###........#####..#######..########.....############
048     * #.......###..####..#####..#####....#.............###########
049     * #...............#..#####..#...#....#.......................#
050     * ##...#..........#..#...#..#...#..#############.............#
051     * ##..............#..#...#..#...#..#...............#.........#
052     * ##..............#......#..#...#..#...............#.........#
053     * ##..............#.........#.........##########...#.........#
054     * ##..#...######..####......#.........#............##........#
055     * ##......#####.....###..####..##..#..#............##........#
056     * ##......#####.....###........#####..######......#####.....##
057     * ##......########..###........###.....#####......########..##
058     * #.......#.....#...#####..######........#...................#
059     * #.......#.....#..........######........#...................#
060     * #...#...#..#..#..........##...#..####..#..###############..#
061     * #...#...#..#..#....####..##...#..#..#..#..##...............#
062     * #...#...#..#..###..####..##......#..#..#..##...............#
063     * #...#......#.......####..##......#........##..###########..#
064     * #...#......#.......####.......#..#........##..#............#
065     * ##..####...#.......####......##..#..########..#............#
066     * ##.....#####..############..###..#.....#####..######..######
067     * ##.....#####..############..###..#.....#####..######..######
068     * ##.......###.............#..###..#.....#####..######..##...#
069     * ####.....#...............#.......#..#..#####..#...##..##...#
070     * #####....#....##....#....#.......#..#..#####..#.......##..##
071     * ######...#...###.........#..######..########..#.......##..##
072     * #######..#...###.........#..###............#..#...........##
073     * #######......#####...#####..###............#..#...........##
074     * #######......#.......#......###.......###..#..#.......######
075     * #######..#####.......#......###.......###..#..#..###.....###
076     * ############################################################
077     * </pre>
078     */
079    DEFAULT_DUNGEON,
080    /**
081     * A good general kind of cave, with long distances between merging paths.
082     * <br>
083     * Example:
084     * <br>
085     * <pre>
086     * ############################################################
087     * #.#########..##########...###..#########..########.#########
088     * #...######...........##...###..#######....#####......#####.#
089     * ##....###.............##...#......####.....###........###..#
090     * ####......########....#....................###......#......#
091     * #####...############......#................###.....###.....#
092     * #####..##############....#####........#...####....####...###
093     * ####...#############....###############...#####..###########
094     * ####...#############....###############....####...##########
095     * #####..#############...#################...####...######...#
096     * #..##..############...##################...####....####....#
097     * #...#..##########...........#############...####....##....##
098     * ##..#..#########.............###########.....##.....##....##
099     * ##.....########.....#####..#..####.................###....##
100     * ##......#######..###########...#..........###.......###....#
101     * ###.....#####...#############..........#########....###....#
102     * ###.....#####..###############......###########....#####...#
103     * ####...######..###############.################...######...#
104     * ####...#####...###############....###############..#######.#
105     * #####...####........##########....#######...........######.#
106     * #####...###.............#####......#####............#####..#
107     * ######...........###.....#.#.......#####..###......#######.#
108     * ######...........#######............###..########...#####..#
109     * #######..#.......#######.................##########..####..#
110     * ###########.....######...........##......#########...####..#
111     * ###########.....#####....##....########...######...######..#
112     * ############..#######...################..#####..#######...#
113     * #####################....###############...####.#######...##
114     * ######..#############....####....#######...####.#######....#
115     * ####.......##########....###.......#####...####..########..#
116     * #.............#######...####.......#####...####....###..#..#
117     * #......##...............####........###...####...........#.#
118     * #......######..........######.......##....####.............#
119     * #......######...#......######......###...#####...#########.#
120     * #.....#######..######...#####......##....######..###########
121     * #.....######...#######..#####..######....######..###########
122     * ###....#####...########..###.....#####...######..#########.#
123     * #........###...########...##......####...######..########..#
124     * #.........##....########..###......###....####.....######..#
125     * #........####...########..#........####....##.......####...#
126     * ####....#####...########..........######............###....#
127     * ###.....#####...######............#######............#.....#
128     * ##.....######..............#......######...#............##.#
129     * ##.....######...........#####....#######...##.........######
130     * ##.....#####...#############....#######...######....########
131     * ####..#######...############..#########....#################
132     * #......######...###....####..##########....#################
133     * #......#####....###..........#####.........########..#####.#
134     * #.....#######...##............###.........#######..........#
135     * ####...#####...###...###......###....#....#######..........#
136     * ######..####..#####..#######..##...####...######...###.....#
137     * #####...####...####...######.......####...######...###.....#
138     * ###...######...#####..#######.....####...#######..####.....#
139     * ##..#######...######..#######....####....#######..#####....#
140     * ##.#######...######....######....#####...########..#########
141     * ##.#######....#####....######....######..####.......########
142     * ##..########..####......####......#####..#...........#######
143     * ##....###..#...####.....####......####...............#######
144     * #...........#...##.......###......####.......#..#....#######
145     * ############################################################
146     * </pre>
147     */
148    CAVES_LIMIT_CONNECTIVITY,
149    /**
150     * Only usable if using Chebyshev distances; many connections are diagonal-only.
151     * <br>
152     * Example (made with DungeonGenerator, which only keeps one contiguous area, but doesn't use Chebyshev distance
153     * to determine what areas are contiguous):
154     * <br>
155     * <pre>
156     * ############################################################
157     * ############################################################
158     * ############################################################
159     * ############################################################
160     * ############################################################
161     * ############################################################
162     * ############################################################
163     * ############################################################
164     * ############################################################
165     * ############################################################
166     * ############################################################
167     * ############################################################
168     * ############################################################
169     * ############################################################
170     * ############################################################
171     * ############################################################
172     * ############################################################
173     * ############################################################
174     * ############################################################
175     * ############################################################
176     * ############################################################
177     * ############################################################
178     * ############################################################
179     * ############################################################
180     * ############################################################
181     * ############################################################
182     * ############################################################
183     * ############################################################
184     * ############################################################
185     * ############################################################
186     * ############################################################
187     * #######....#################################################
188     * ####.#...###################################################
189     * ####......##################################################
190     * ######....##################################################
191     * #####....###################################################
192     * #####....###..##############################################
193     * #............###############################################
194     * #.#####.###.################################################
195     * #..########..#############.#################################
196     * ##..########.#########.##..#################################
197     * ###########...###.........##################################
198     * #########.....##...##.###..#################################
199     * ###########.........#.###.##################################
200     * ###########.####....########################################
201     * ###########.###....#########################################
202     * ###############....###..####################################
203     * ##############.........#####################################
204     * #################.###.######################################
205     * #####################..#####################################
206     * ######################.#####################################
207     * ###############..####...####################################
208     * ################........####################################
209     * #####################.....##################################
210     * #####################.######################################
211     * #####################..#####################################
212     * ############################################################
213     * ############################################################
214     * ############################################################
215     * ############################################################
216     * </pre>
217     */
218    CAVES_TINY_CORRIDORS,
219    /**
220     * Most parts of the cave are large and open, but tiny corridors link them, providing hiding places.
221     * <br>
222     * Example:
223     * <br>
224     * <pre>
225     * ############################################################
226     * #....#######...###########.....##........###...##...####...#
227     * #.....######...###########....#####..#....##....#....##....#
228     * ###...##..#......#########...##########.........##.........#
229     * ####..............#..####...##########.........####......###
230     * ##..........................#####...#.........####...#######
231     * #.............####...........###............####.....#######
232     * #.............#######..##....##.............####....####...#
233     * #............###########.....##..........#######..######...#
234     * #............##########......##.........########..##..#....#
235     * #..............######.......####........########......#....#
236     * #...............#####.........##........########.....###...#
237     * #.....####..#....####..............##....######....####....#
238     * #...#########....###.........#.....###....####.....###.....#
239     * #...####.##.....####.........##....####............###.....#
240     * #....##...#.....####.........##..######...........####.....#
241     * #....##........######.......###########...........#####....#
242     * #....##......##########.......##########........#########..#
243     * #...###.......#######..........########..........#########.#
244     * #...####.......#######........########.............######..#
245     * #...###..##...########............####..............#.##...#
246     * #...###..##..##########...###......##...#.............#....#
247     * #....#...#...##...#..########......##...###...............##
248     * #...........##....#....#####...##......####..........#.#####
249     * #..........###.................##.....#####.........########
250     * #...........#.................###.....####.........#########
251     * #...........#..................##.......#..........#########
252     * #...................................................########
253     * #...............................................#....####..#
254     * #..###.......................##........###.....###...####..#
255     * #..###......#.............#.###........###....#####..###...#
256     * #.####......##............#######.....####....#####...##...#
257     * #.######.....#...##.....###########...######...###.........#
258     * ########.....#...####..############..#######..............##
259     * ######......###..################....#####...............###
260     * #.###.......####################......###...............####
261     * #...........#####################........................###
262     * #.....##.....###################.........................###
263     * #....#####.......#############........###................###
264     * ##...#####........###########.....#..####...........#.....##
265     * ###...#####.......##########....########...........###.....#
266     * ####...####........###.###.....#########........#...##.....#
267     * ####...####...................#####.###...#######...#......#
268     * ####..######......#..........#####.......##########........#
269     * ####..#####......###..#........###......##########.........#
270     * ###...######..#########..................#######...........#
271     * ####...####..####...##....................#######..........#
272     * ###.....##...###.............#......##...##########........#
273     * ###.....##..###.............###.....##..#############......#
274     * ###.....##..###............####.....#...##...#....####...###
275     * ####.........###..........#####........##...............####
276     * #.###.........######....#######.......###.................##
277     * #..###........#######.....######.......#...................#
278     * #..####......########...#########......#...................#
279     * #...###.....#########...########................##........##
280     * #............########..##########..............####......###
281     * #............#######....##....##.................#..#....###
282     * #.....##.....#######..........##.......#.....#......####..##
283     * #....#####..#####.....#................##....##....#####..##
284     * ############################################################
285     * </pre>
286     */
287    CORNER_CAVES,
288    /**
289     * Very basic demo dungeon.
290     * <br>
291     * Example:
292     * <br>
293     * <pre>
294     * ############################################################
295     * ###########............###........##########################
296     * ###########............###.............#####################
297     * ###########............#####...###.....#####################
298     * #......................#####...###.....#####################
299     * #.................................##########################
300     * #.................................##########################
301     * ###########.......................##########################
302     * ###########...............#######.##########################
303     * ###########...............#######.##########################
304     * ####################........#####.##########################
305     * ####################........################################
306     * ######################......################################
307     * #######################.....################################
308     * #######################.....################################
309     * #######################.....################################
310     * ########################...#################################
311     * ##########...###########...................................#
312     * ##########...###########...................................#
313     * #..........................................................#
314     * #..........................##...##..########################
315     * #..........................##...##.....#####################
316     * ##...########################...##.....#####################
317     * ##...########################...##.....#####################
318     * ##...########################...############################
319     * ##.........##################...############################
320     * ##.........##################...############################
321     * ##.........##################...############################
322     * ########...##################...############################
323     * ########...##################...############################
324     * ########..................................##################
325     * #.........................................##################
326     * #..........................................................#
327     * #..........############...#############....................#
328     * #######################...#############....................#
329     * #######################...##################################
330     * #.############..............################################
331     * #.############..............################################
332     * #.############..............################################
333     * #.############..............################################
334     * #.############..............################################
335     * #.############............#####............................#
336     * #.#####################...#####............................#
337     * #.#####################...#####............................#
338     * #.#####################...#####..###########################
339     * #................................###########################
340     * #................................###########################
341     * #................................###########################
342     * ####################...#####################################
343     * ####################...#####################################
344     * ####################...#####################################
345     * ####################...#####################################
346     * ####################...#####################################
347     * ###########............#####################################
348     * ###########............#####################################
349     * ###########............#####################################
350     * #......................#####################################
351     * #..................................#########################
352     * #..................................#########################
353     * ############################################################
354     * </pre>
355     */
356    HORIZONTAL_CORRIDORS_A,
357    /**
358     * Slightly less basic demo dungeon.
359     * <br>
360     * Example:
361     * <br>
362     * <pre>
363     * ############################################################
364     * ####################...######.....##################.......#
365     * #......................######..........#############.......#
366     * #......................######..........#######.............#
367     * #......................######..........#######.............#
368     * #############.....................############.............#
369     * #############..........................#######.............#
370     * #############..........................#######.............#
371     * #############.............######...........................#
372     * #############.............######..#........................#
373     * #############...............####..#........................#
374     * #############...............#######....#######.............#
375     * #################...........######.....#######......#####..#
376     * #######################.....######.....##################..#
377     * #######################.....######.....##################..#
378     * #######......##########.....######.....##################..#
379     * #######......##########.....######.....##################..#
380     * #######....................................................#
381     * #######....................................................#
382     * #######....................................................#
383     * #######......##########.....#...##.#########################
384     * #............##########.....#...##.....#####################
385     * #............##########.....#...##.....#####################
386     * #..............##############...##.....#####################
387     * ##########.....##############...############################
388     * ##########.....##############...############################
389     * ##########.....##############...############################
390     * ##########.....##############...############################
391     * ##########...#####.................................#########
392     * ##########...#####.................................#########
393     * ##########...#####.................................#########
394     * #.......##...#####...########...##############.............#
395     * #.........................#..........#########.............#
396     * #.........................#..........#########.............#
397     * #####.....................#..........#########......########
398     * ######################....#..........###########....########
399     * ######################....#..........###########......######
400     * ######################....#..........###########......######
401     * ################..........######################......######
402     * ################..........#######################.....######
403     * ################..........#######################.....######
404     * ################..........#...........................######
405     * ################..........#...........................######
406     * ################.........##................................#
407     * #........................##...###########..................#
408     * #........................##...###########..................#
409     * #.....................#####...###########.............#...##
410     * ##########...######................######.............#...##
411     * #####........######................######.............#...##
412     * #####..........####....................##.............#...##
413     * #####..........#################.......################...##
414     * #####..........#################.......################...##
415     * ##########.....#################.......################...##
416     * ##########.....#################.......################...##
417     * ##########.....#################.......################...##
418     * ###########...##################.......################...##
419     * ###########...........................###########..........#
420     * ###########...........................###########..........#
421     * #.....................................###########..........#
422     * ############################################################
423     * </pre>
424     */
425    HORIZONTAL_CORRIDORS_B,
426    /**
427     * A bit more complexity in this demo dungeon.
428     * <br>
429     * Example:
430     * <br>
431     * <pre>
432     * ############################################################
433     * ##########.....#############......#########....########...##
434     * ##########.....##############.....########......###.###...##
435     * ###########...#############.#.....#######.......##.........#
436     * ###########.......................###............#.........#
437     * ###########........................##......................#
438     * #..............................##..##......................#
439     * #.............##...#########..###......#...................#
440     * #.............##...##############......##..................#
441     * #####...########...###############.....##..................#
442     * #####...########...###############.....#...........#.......#
443     * #####...########...###############...###.....#...########..#
444     * #####...########...#################.###....##..#########..#
445     * #####...########.............############..###..########..##
446     * ####....########.............#####.######.####.##########..#
447     * ###....#########.............#####....##################...#
448     * ###...##########.............#####...###############.#.....#
449     * #............................#####.....######..............#
450     * #..........................................................#
451     * #...##.....................................................#
452     * #....###.....###...................................#...#...#
453     * #....####....#####################.....#...........#####...#
454     * #....###.....#######################...###.........####....#
455     * #....###.......#################.........##........##......#
456     * ##...###.......#################..........###########.....##
457     * ##...#.........#################..........###########....###
458     * ##..............##################.......############.....##
459     * ###...............##...###########.......############......#
460     * ###......#...#....##....##########.......############......#
461     * ###.....##...##...##.....#...............##############....#
462     * #......##....##...##.....................###############...#
463     * #......##....#.....#.....................##############....#
464     * #......##..................................................#
465     * ##.....##..................................................#
466     * ####..###..................................................#
467     * #########..###............#####...##################..##...#
468     * ###############...........#####...########################.#
469     * ##################.......######...########################.#
470     * ##################......#######...##########################
471     * ##################.....######.........######################
472     * #################......####.#.........######################
473     * ################......#####................................#
474     * ##.........#####......####.................................#
475     * ##.........#####.....###...................................#
476     * ##.........####.....###...............##############.......#
477     * #....................#................##############.......#
478     * #........................#.........#################.......#
479     * #........................#........##################.......#
480     * ##.........######.......########..##################.......#
481     * ##.........#######......########...#################.......#
482     * ##.........########.....########...#################.......#
483     * ###################.....########...#####################...#
484     * ####################...#########...#########################
485     * ##.........#########...########....#########################
486     * #.......................#######....#########################
487     * #.......................#####.....##########################
488     * #.................................##########################
489     * ##.........###......................########################
490     * ##.........###......................########################
491     * ############################################################
492     * </pre>
493     */
494    HORIZONTAL_CORRIDORS_C,
495    /**
496     * A reference implementation of where you can place walls; mostly floor.
497     * <br>
498     * Example:
499     * <br>
500     * <pre>
501     * ############################################################
502     * #.............................................#............#
503     * #.............................................#............#
504     * #.............................................#............#
505     * #.............................................#............#
506     * #.............................................#............#
507     * #.............................................#............#
508     * #.............................................#............#
509     * #.......##########.........#########..........#............#
510     * #.......#........#..........................#..............#
511     * #.......#...................................#..............#
512     * #.......#...................................#..............#
513     * #.......#...................................#..............#
514     * #.......#...................................#..............#
515     * #.......#...................................#..............#
516     * #.......#...................................#..............#
517     * #.......#...................................#..............#
518     * #.......#........###################........#..............#
519     * #.........................#..........................#.....#
520     * #....................................................#.....#
521     * #....................................................#....##
522     * #....................................................#....##
523     * #....................................................#....##
524     * #....................................................#....##
525     * #....................................................#.....#
526     * #....................................................#.....#
527     * #........#########...................................#.....#
528     * ##......#.................#........#.......................#
529     * ##......#.................#................................#
530     * ##......#.................#................................#
531     * ##......#.................#................................#
532     * ##......#.................#................................#
533     * ##......#.................#................................#
534     * ##......#.................#................................#
535     * ##......#.................#................................#
536     * ##......#.........#.......#........###################.....#
537     * #.......#........#.................#..........#............#
538     * #................#.................#..........#............#
539     * #................#.................#..........#............#
540     * #................#.................#..........#............#
541     * #................#.................#..........#............#
542     * #................#.................#..........#............#
543     * #................#.................#..........#............#
544     * #................#.................#..........#............#
545     * #................#.................#..........#............#
546     * #................#..........................#..............#
547     * #...........................................#..............#
548     * #...........................................#..............#
549     * #...........................................#..............#
550     * #...........................................#..............#
551     * #...........................................#..............#
552     * #...........................................#..............#
553     * #...........................................#..............#
554     * #########...................................#........#######
555     * #................#........#........#.......................#
556     * #................#........#........#.......................#
557     * #................#........#........#.......................#
558     * #................#........#........#.......................#
559     * #................#........#........#.......................#
560     * ############################################################
561     * </pre>
562     */
563    LIMIT_CONNECTIVITY_FAT,
564    /**
565     * A reference implementation of where you can place walls; mostly wall.
566     * <br>
567     * Example:
568     * <br>
569     * <pre>
570     * ############################################################
571     * ######################.########.########.#################.#
572     * ######################.########.########.#################.#
573     * ######################.########.########.#################.#
574     * #..........................................................#
575     * ####.#################.#################.#################.#
576     * ####.#################.#################.#################.#
577     * ####.#################.#################.#################.#
578     * ####.#################.#################.#################.#
579     * ####.#################.#################.#################.#
580     * ####.#################.#################.#################.#
581     * ####.#################.#################.#################.#
582     * ####.#################.#######...#######.#######...#######.#
583     * #......................#######...........#######...###.....#
584     * #############.################...#######.#######...#######.#
585     * #############.##########################.########.########.#
586     * #############.##########################.########.########.#
587     * #############.##########################.########.########.#
588     * #############.##########################.########.########.#
589     * #############.##########################.########.########.#
590     * #############.##########################.########.########.#
591     * #############.##########################.########.########.#
592     * #.............########............................########.#
593     * ####.########.########.#################.########.########.#
594     * ####.########.########.#################.########.########.#
595     * ####.########.########.#################.########.########.#
596     * ####.########.########.#################.########.########.#
597     * ####.########.########.#################.########.########.#
598     * ####.########.########.#################.########.########.#
599     * ####.########.########.#################.########.########.#
600     * ####.########.########.#################.########.########.#
601     * #....########...................########.########..........#
602     * #############.#################.########.########.##########
603     * #############.#################.########.########.##########
604     * #############.#################.########.########.##########
605     * #############.#################.########.########.##########
606     * #############.#################.########.########.##########
607     * #############.#################.########.########.##########
608     * #############.#################.########.########.##########
609     * #############.#######...#######.########.########.##########
610     * ####..........#######......................................#
611     * ####.################...################.#################.#
612     * ####.###################################.#################.#
613     * ####.###################################.#################.#
614     * ####.###################################.#################.#
615     * ####.###################################.#################.#
616     * ####.###################################.#################.#
617     * ####.###################################.#################.#
618     * ####.###################################.#################.#
619     * #.............########...................########..........#
620     * #############.########.########.########.########.##########
621     * #############.########.########.########.########.##########
622     * #############.########.########.########.########.##########
623     * #############.########.########.########.########.##########
624     * #############.########.########.########.########.##########
625     * #############.########.########.########.########.##########
626     * #############.########.########.########.########.##########
627     * #############.########.########.########.########.##########
628     * ####..........########.########.########...................#
629     * ############################################################
630     * </pre>
631     */
632    LIMITED_CONNECTIVITY,
633    /**
634     * A generally good maze; MAZE_A and MAZE_B should both be interchangeable, but not on the same map.
635     * <br>
636     * Example:
637     * <br>
638     * <pre>
639     * ############################################################
640     * #..................##...........#......##..##...#......#####
641     * #..................##...........#......##..##...#......#####
642     * #..##..##########..######..######..######..##..######..#####
643     * #..##..##########..######..######..######..##..######..#####
644     * #..##......##..........##..............##......##......#####
645     * #..##......##..........##..............##......##......#####
646     * #..######..##..######..######..######..######..##..#########
647     * #..######..##..######..######..######..######..##..#########
648     * #..##..................##..........##..........#.......##..#
649     * #..##..................##..........##..........#.......##..#
650     * #..######..######..######..######..##################..##..#
651     * #..######..######..######..######..##################..##..#
652     * #..................##..........##..........##..............#
653     * #..................##..........##..........##..............#
654     * #..##########..######..##################..##..#############
655     * #..##########..######..##################..##..#############
656     * #..##..........##..##..##..................................#
657     * #..##..........##..##..##..................................#
658     * #..##..##..######..##..##..######..##..######..##..#########
659     * #..##..##..######..##..##..######..##..######..##..#########
660     * #......##..............##..##..................##..........#
661     * #......##..............##..##..................##..........#
662     * #####..##..######..######..##########..##..##..##..#########
663     * #####..##..######..######..##########..##..##..##..#########
664     * #......##......##..##..........#...................##......#
665     * #......##......##..##..........#...................##......#
666     * #..##########..##..##########..##..##..##..##..######..##..#
667     * #..##########..##..##########..##..##..##..##..######..##..#
668     * #..##......##..............##..##...............#......##..#
669     * #..##......##..............##..##...............#......##..#
670     * #####..##..######..######..######..######..##..######..#####
671     * #####..##..######..######..######..######..##..######..#####
672     * #......##......##..##..........##......##..##..##..........#
673     * #......##......##..##..........##......##..##..##..........#
674     * #..##########..##..##..##############..##..##..##..######..#
675     * #..##########..##..##..##############..##..##..##..######..#
676     * #..................##..##......................##..##......#
677     * #..................##..##......................##..##......#
678     * #####..##############..##..##############..######..##..#####
679     * #####..##############..##..##############..######..##..#####
680     * #......##..........##......##..............##......##......#
681     * #......##..........##......##..............##......##......#
682     * #..######..######..######..##..######..##..##..######..##..#
683     * #..######..######..######..##..######..##..##..######..##..#
684     * #......##......##..##..........##......##......##......##..#
685     * #......##......##..##..........##......##......##......##..#
686     * #####..######..##..##..##########..##########..##..######..#
687     * #####..######..##..##..##########..##########..##..######..#
688     * #..........##..##..##..##..............##......##......##..#
689     * #..........##..##..##..##..............##......##......##..#
690     * #..##..##..##..##..##..##..##########..##..##########..##..#
691     * #..##..##..##..##..##..##..##########..##..##########..##..#
692     * #..##..##......##......##......##......##..........##......#
693     * #..##..##......##......##......##......##..........##......#
694     * #..##..######################..##..######..######..##..##..#
695     * #..##..######################..##..######..######..##..##..#
696     * #..##..............##..........##..##......######......##..#
697     * #..##..............##..........##..##......######......##..#
698     * ############################################################
699     * </pre>
700     */
701    MAZE_A,
702    /**
703     * A generally good maze; MAZE_A and MAZE_B should both be interchangeable, but not on the same map.
704     * <br>
705     * Example:
706     * <br>
707     * <pre>
708     * ############################################################
709     * #......##..##..##......##..##...#......##......##......##..#
710     * #......##..##..##......##..##...#......##......##......##..#
711     * #####..##..##..######..##..##..##..##..######..##..######..#
712     * #####..##..##..######..##..##..##..##..######..##..######..#
713     * #..........##......##..........##..##......................#
714     * #..........##......##..........##..##......................#
715     * #####..##########..######..######..##########..######..##..#
716     * #####..##########..######..######..##########..######..##..#
717     * #......##..............##..........##..........#.......##..#
718     * #......##..............##..........##..........#.......##..#
719     * #..##..######..##########..##..######..........##########..#
720     * #..##..######..##########..##..######..........##########..#
721     * #..##......##..##..........##..##...............#......##..#
722     * #..##......##..##..........##..##...............#......##..#
723     * #..##########..##..######..##..##..##..........##..##..#####
724     * #..##########..##..######..##..##..##..........##..##..#####
725     * #..............##..##......##..#...................##......#
726     * #..............##..##......##..#...................##......#
727     * #########..######..##..######..##..##..........##########..#
728     * #########..######..##..######..##..##..........##########..#
729     * #..........##..................##......................##..#
730     * #..........##..................##......................##..#
731     * #..######..##..##########..######..##..##..##########..##..#
732     * #..#....#..##..##########..######..##..##..##########..##..#
733     * #..#....#......##......##..........##..##..........##..##..#
734     * #..#....#......##......##..........##..##..........##..##..#
735     * #..........######..##..######..##..##..##..##..##..##..##..#
736     * #..........######..##..######..##..##..##..##..##..##..##..#
737     * #..#....#..##......##......##..........##......##..........#
738     * #..#....#..##......##......##..........##......##..........#
739     * #..#....#..##..##..######..##########..##..##..##..#########
740     * #..######..##..##..######..##########..##..######..#########
741     * #..............##..##..........##..........##......##......#
742     * #..............##..##..........##..........##......##......#
743     * #################..##..######..##..##..######..######..#####
744     * #################..##..######..##..##..######..######..#####
745     * #......##......##..........##......##......##......##......#
746     * #......##......##..........##......##......##......##......#
747     * #####..##..##..##########..######..######..######..##..#####
748     * #####..##..##..##########..######..######..######..##..#####
749     * #..##......##......##..............##..........##..........#
750     * #..##......##......##..............##..........##..........#
751     * #..##..######..##..##..##############..##..##..######..##..#
752     * #..##..######..##..##..##############..##..##..######..##..#
753     * #......##......##......##......##......##..##..##......##..#
754     * #......##......##......##......##......##..##..##......##..#
755     * #########..##############..##..######..######..##..######..#
756     * #########..##############..##..######..######..##..######..#
757     * #..........##......##......##..........##..........##......#
758     * #..........##......##......##..........##..........##......#
759     * #########..##..##..##..##..##########..##..######..##..#####
760     * #########..##..##..##..##..##########..##..######..##..#####
761     * #..............##......##......##......##......##......##..#
762     * #..............##......##......##......##......##......##..#
763     * #..##########################..##..######..##..######..##..#
764     * #..##########################..##..######..##..######..##..#
765     * #......##############..........##..........##..............#
766     * #......##############..........##..........##..............#
767     * ############################################################
768     * </pre>
769     */
770    MAZE_B,
771    /**
772     * A map that's less dungeon-like than the others, with lots of open space.
773     * <br>
774     * Example:
775     * <br>
776     * <pre>
777     * ############################################################
778     * ###...#######.....######.............................####..#
779     * ###...#######.....######.............................####..#
780     * ###....######........................................####..#
781     * ###.....#####........................................####..#
782     * ###......#####...............#######......######.....####..#
783     * ###.......#####.............########......######.....####..#
784     * #...........................########.......................#
785     * #...........................########.......................#
786     * #......########.............########.......................#
787     * #......########.............########.......................#
788     * #......########.............########.......................#
789     * #......########.................####.......................#
790     * #......##################..................................#
791     * #......##################.....................##...........#
792     * #.......#################.....................###..........#
793     * #........################...............##########.........#
794     * ##........###############...............##########...#####.#
795     * ###.............###########.............##########...#####.#
796     * ####............###########....####.....##########...#####.#
797     * #####..........................####.....##########...#####.#
798     * ######.........................####.....##########...#####.#
799     * ######.........................####.....##########...#####.#
800     * ######.........................####.....##########...#####.#
801     * #.............................................###....#####.#
802     * #.............................................##...........#
803     * #..........................................................#
804     * #..........................................................#
805     * #.............###########............................####..#
806     * #.............###########...........................#####..#
807     * ####..........###########..............#######.....######..#
808     * ####..........###########......#####...#######.....######..#
809     * ####..........###########......#####...#######.....######..#
810     * ####..........###########......#####...#######.....######..#
811     * ####..........###########......#####...#######.....######..#
812     * #.............###########..........................######..#
813     * #.............###########..................................#
814     * #.........................................######...........#
815     * #.........................................######...........#
816     * #.........................................######...........#
817     * #.........................................######...........#
818     * #.............####..........########......######...........#
819     * #.............####..........########......######...........#
820     * #.............####..........########......######...........#
821     * #.............####..........########......######...........#
822     * #.............####..........########......######...........#
823     * #.............####..........########.......................#
824     * #.............####..........########.......................#
825     * #.............####.........................................#
826     * #..........................................................#
827     * #####...............######.................................#
828     * #####...............######.................................#
829     * #####...............######.............########............#
830     * #####...............######.............########......#####.#
831     * #####...............######.............########......#####.#
832     * #####...............######.............########......#####.#
833     * #####...............######.............########......#####.#
834     * ####..................##...............########........###.#
835     * ###...................##................................##.#
836     * ############################################################
837     * </pre>
838     */
839    OPEN_AREAS,
840    /**
841     * An excellent natural cave style that looks worn down haphazardly, as by burrowing creatures or deep rivers.
842     * <br>
843     * Example:
844     * <br>
845     * <pre>
846     * ############################################################
847     * #........####.....#####....#########......######..........##
848     * #.................####....##########......######..........##
849     * #........................###########......######...........#
850     * #.........................................######...........#
851     * #.........................................######...........#
852     * ###.......................................######...........#
853     * ###........................................................#
854     * ###......######............................................#
855     * ###......######..........####..............................#
856     * ###......######..........####..............................#
857     * ###......######..........####.......####...................#
858     * ###......######.........#####.......####...................#
859     * ###......######........####.........####...................#
860     * ###......######.......####..........####...................#
861     * #........######.......###...........####...................#
862     * #........#####........###..........#####...................#
863     * #........####........####....###########.......#############
864     * #...................#####...##########.........#############
865     * #..................######...#########..........#############
866     * #.######..........#######...#########..........#############
867     * #.######..........#######...#########..........#############
868     * #.######..........#######...#########..........#############
869     * #.######..........#######...#########..........#############
870     * #.######..........#######...#########..........#############
871     * #.######..........#######......................#############
872     * #.######..........#######................................###
873     * #.######..........#######................................###
874     * #..####...........#######................................###
875     * #..####......................########....................###
876     * #..####......................########..........####......###
877     * #..####......................########..........####......###
878     * #..####......................########..........####......###
879     * #..####......................########..........####........#
880     * #.#####......................########..........####........#
881     * #####..........###...........########..........####........#
882     * ####...........####..........########..........####........#
883     * ###............#####..........#######.............##.....###
884     * ###.............#######........######..............##....###
885     * ###....#####.....#######........#####...............########
886     * ###...#######.....#######............................#######
887     * ###...#######.....########...........................#######
888     * ###...#######.....#########..........................#######
889     * ###...#######.....##########.........................#######
890     * ###...#######.....##########.........................#######
891     * ###...#######.....##########.........................#######
892     * ###........................................................#
893     * ###........................................................#
894     * ###........................................................#
895     * ###......................................................###
896     * ###.................................#############........###
897     * #...................................#############........###
898     * #................#########..........#############........###
899     * #......#######...#########..........#############........###
900     * #......#######...#########..........#############..........#
901     * #......#######....########..........#############..........#
902     * #......#######.....#######..........#############..........#
903     * #......#######......................############...........#
904     * #......########.....................###########............#
905     * ############################################################
906     * </pre>
907     */
908    REFERENCE_CAVES,
909    /**
910     * Mostly open, kinda weird.
911     * <br>
912     * Example:
913     * <br>
914     * <pre>
915     * ############################################################
916     * #......##........##...#########...###..#...........###....##
917     * #......##........##...............###..#...........###....##
918     * #.###..##.........................###..#.......#..........##
919     * #.###..##.............#########...###..#.......#..........##
920     * #.###..##.............#########...###..#.......#......##...#
921     * #......##........##...#######..................###..####...#
922     * #......##........##...#######..................###..########
923     * #.....#######...###...#######...........##########..########
924     * #.....#######...###...#######...........##########..###...##
925     * #.....#######...###...#######...........######......###...##
926     * #.....#######...###.....................######......##.....#
927     * #...............###.........................##......##.....#
928     * #...............###..########................#......##.....#
929     * ######..........###..#########...##########.........##.....#
930     * ######.......######..#########...###########........##.....#
931     * ######.......######..#########...################...##.....#
932     * ######.......######..#########...####......######...###...##
933     * ######.......######..#########...####......######...###..###
934     * #...##.......######..#########...####......######...###...##
935     * #...##.........####.................................###...##
936     * #..............####.................................####..##
937     * #............######..#########...####......######...####..##
938     * #...######...######..#########...####......######.........##
939     * #...######..............######...####......######.........##
940     * #...######..............######...######...######....####..##
941     * #...######..............######...######...#####....#####..##
942     * #...######..............######...######...####....######..##
943     * #.......##..............######............####...#######..##
944     * #.......##................................####.............#
945     * #..........................................................#
946     * #....................................................##....#
947     * #............##..####..######........................##....#
948     * #.......##...##..##.......###..............###.......##....#
949     * #.......##...######.......###..............###.......##....#
950     * ####...###...######.......###..#########...###...######....#
951     * ####...###...######.......###..#########.........###########
952     * ####...###...######...#######..#########.........###########
953     * #......###...######........................................#
954     * #......###.................................................#
955     * #......####...........#######...................##..#####..#
956     * ##..#..#####..........##################........##..#####..#
957     * ##..#.....###...###...##################........#########..#
958     * ##..#.....###...###...######......######........#########..#
959     * ##..####..###...###...######......######...###..#########..#
960     * ##..#########...###...######......######...###..#########..#
961     * ##..##..#####...###...######......######...###..##.........#
962     * #...##..#####...###...######...............###..##.........#
963     * #...............#..........................###..##.........#
964     * #...............#.................######...###..##.........#
965     * #...............#.................######...###..##.........#
966     * #............####........###......####...........#.........#
967     * #............####........###......####...........#.........#
968     * #............##########..###...#######...........######..###
969     * #............##########..###...#######...........######..###
970     * #............##########..###...#######...........######...##
971     * #............######......##......................######...##
972     * #.............#####......##......................#######..##
973     * #..............####..######........###...........#######..##
974     * ############################################################
975     * </pre>
976     */
977    ROOMS_AND_CORRIDORS_A,
978    /**
979     * Mostly open, but with long corridors that should be a good fit for ranged combat.
980     * <br>
981     * Example:
982     * <br>
983     * <pre>
984     * ############################################################
985     * ###########.....#####..#####..#######......####......#######
986     * ##.....####.....#####..#####..###....................##....#
987     * ##.....####.....###.......##..###....................##....#
988     * #####...........###.......##..###..##......####......##..###
989     * #...............###.......##..###..##......####......##..###
990     * #.........................##..###..##.................#....#
991     * #####................##..###..##...##.................#....#
992     * #####..################..###.......##......####......##..###
993     * #####..################..###.......##..################...##
994     * #####..######........##..###..##...##..################....#
995     * #####.......#........##..###..###..##..####................#
996     * #####.......#........##..###..###..##..####...............##
997     * #####..###..#........##..###..###..##..####..#..#######...##
998     * #####..###..#........##..###..###..##..####..#..#######....#
999     * #####..###..####..#####.......###..##..####..#..######.....#
1000     * #####..###....................###..##..####..#..######.....#
1001     * #####..###...............#######...##..####..#..########..##
1002     * #........####....###############..###..####..#..############
1003     * #........#.......##.........####..###..####..#......###....#
1004     * #..####..#.......##.........####..###..####..#.............#
1005     * #..####..#.......##..#####..####.......####..#####.........#
1006     * #..####..###..#####..#####..####.......####..#####..###....#
1007     * #..####..#...........#####..####..###..####..#####..###....#
1008     * #........#...........#####........###..####..#####..###....#
1009     * #........#.......##..#####........###........#####..###....#
1010     * #####..###.......##..################........#####..###....#
1011     * #####..###.......##..#################..#########...###..###
1012     * ##.....#####..#####......#########.......#######....###....#
1013     * ##.....#####..#####......................######.....###....#
1014     * ##.....###.......######.............................###....#
1015     * #......###.......######..###..####...............#..###....#
1016     * #......###.......######..###..####.......#########..###....#
1017     * #................######..###..####.......#########..###....#
1018     * #...........##..#######..###..####################..###....#
1019     * ##############..#######..###..####################..###....#
1020     * ##############..######...###..####################..###....#
1021     * #.................###....###..##########........##..###....#
1022     * #.................##.....###..###......#........##..###..###
1023     * #........................###..###......#........##..###..###
1024     * #.....................#..###..###..##..#........##..###..###
1025     * #.................#####..###..###..##..#........##..###..###
1026     * #.................#####..###..###..##..####..#####.......###
1027     * #.................#####..###..##...##....................###
1028     * #.................#####..###.......##...............########
1029     * #####..################..###.......######..#################
1030     * #####..###......####......##..##...######..###.............#
1031     * #####.....................##..###..######..###.............#
1032     * #####.....................##..###..######..###..############
1033     * #####..###......####......##..###..######..###..#.....#....#
1034     * #####..###......####......##..###..######.............#....#
1035     * #####..###....................###..######..........#.....###
1036     * #####..###....................###..######..###..####.....###
1037     * #####..###......####......######...######..###..############
1038     * #........#..####################..#######..###..############
1039     * #........#..#######.................#####..###..############
1040     * #..####..#....#.....................#####..###..############
1041     * #..####..#....#............................###..############
1042     * #..####..#....#...#........................###..############
1043     * ############################################################
1044     * </pre>
1045     */
1046    ROOMS_AND_CORRIDORS_B,
1047    /**
1048     * A nice old-school roguelike map, with thin corridors and rectangular rooms.
1049     * <br>
1050     * Example:
1051     * <br>
1052     * <pre>
1053     * ############################################################
1054     * ######################.#######.#########.########.#######.##
1055     * ######################.#######.#########.########.#######.##
1056     * ######################.#######.#########.########.#######.##
1057     * #....########...................#######..########..........#
1058     * ####.########.########.########.#######.#########.########.#
1059     * ####.########.########.########.#######.#########.########.#
1060     * ####.########.########.########.#######.#########.########.#
1061     * ####.########.########.########.#######.#########.########.#
1062     * ####.#####.......#####.########.#######.#########.########.#
1063     * ####.#####.......#####.########.#######.#########.########.#
1064     * ####.#####.......#####.########.#######.#########.########.#
1065     * ####.#####.......#####.########.#######.#########.########.#
1066     * #........................................#######...........#
1067     * ##########.......##############.########.#######.#########.#
1068     * ##########.......##############.########.#######.#########.#
1069     * #############.#################.########.#######.#########.#
1070     * #############.#################.#####.......####.#########.#
1071     * #############.#################.#####.......####.###########
1072     * #############.####........#####.#####.......####.###########
1073     * ###########......#........#####.#####.......####.###########
1074     * ###########......#........#####.#####.......####.###########
1075     * #................#........#####...###.............#######..#
1076     * ####.######......#........#######.###.......#####.#######.##
1077     * ####.######......#........#######.###.......#####.#######.##
1078     * ####.########.####........#######.######.########.#######.##
1079     * ####.########.####........#######.######.########.#######.##
1080     * ####.########.#######.###########.######.########.#######.##
1081     * ####.########.#######.######.......#####.########.#####....#
1082     * #.......#####.#######.######.......#####.########.#####....#
1083     * #.......#####.#######.######.......#####.########.#####....#
1084     * #.......#####............................########..........#
1085     * #.......#####.##############.......##############.#####....#
1086     * #.......#####.##############.......##############.#####....#
1087     * ######.######.#################.#################.#####....#
1088     * ######.######.#################.#################.##########
1089     * ######.######.#################.#################.##########
1090     * ######.######.#################.######.........##.##########
1091     * #####..........################.######.........##.##########
1092     * #####..........################.######.........##.##########
1093     * ###............#######..........######.........##.##########
1094     * ###.#..........#######.########.######.........##.##########
1095     * ###.#..........#######.########.######.........##.##########
1096     * ###.##################.########.######.........##.##########
1097     * ###.##################.########.#######.#########.##########
1098     * ###.##################.########.#######.#########.##########
1099     * ###.##################.########.#######.#########.##########
1100     * #......###############.########.#######.#########.##########
1101     * #......###############.########.#####.......#####.##########
1102     * #......#####................................####..##########
1103     * #......#####.########################.......####.###########
1104     * #......#####.########################.......####.###########
1105     * #......#####.########################.......####.###########
1106     * #......#####.########################.......####.###########
1107     * #......#####.########################.......####.###########
1108     * ####.#######.########################.......####.###########
1109     * ####.#######.########################.......####.###########
1110     * ####.#######.########################.......####.###########
1111     * ####...................##########..........................#
1112     * ############################################################
1113     * </pre>
1114     */
1115    ROOMS_LIMIT_CONNECTIVITY,
1116    /**
1117     * A thing of beauty. Good for maps that need to seem otherworldly or unusual, like heavenly planes.
1118     * <br>
1119     * Example:
1120     * <br>
1121     * <pre>
1122     * ############################################################
1123     * #####....#...#########....###########....#######.....#######
1124     * #####..........#######....############...######.......######
1125     * ######..........######....############....####.........#####
1126     * #######.........#######...#########.......####.........#####
1127     * ######...........######....######.........###..........#####
1128     * ######...........#######...###.#...........##..........#####
1129     * ######...........#######....##.............#.............###
1130     * #.#####.........########......................#............#
1131     * #...##..........########.....................###...........#
1132     * #....#.........##########....................########......#
1133     * #........#...###########....................############..##
1134     * #.......################....................################
1135     * #......################.......#............########...######
1136     * #......################.......#............######.......####
1137     * #......################...................######.........###
1138     * #......################..................######...........##
1139     * #.....#################................########...........##
1140     * #.....###############...............##########.............#
1141     * #....##############................###########.............#
1142     * #....###########..................##.....####..............#
1143     * #.....#########.................###.......##...............#
1144     * ##.....#######...............#####.........................#
1145     * ##.......####.......##......##..##............##...........#
1146     * ###........#....######.....###...............####..........#
1147     * ##.............#######.....###..............#######........#
1148     * #.............########....####.............#########.....###
1149     * #............########....#####............##########....####
1150     * #.............#######....#####...........##########....#####
1151     * #.............######....######..........##########....######
1152     * #.............#####....############.....#########....#######
1153     * #.............####......#########.........#####.....########
1154     * #............#####........######...........###.......#######
1155     * #............####............##.............#.........######
1156     * #...........####..............#.............#.........######
1157     * #...........###....######.............................######
1158     * #..##........#....#########...........................######
1159     * #.#######.........###########..........................#####
1160     * ########........##############...............#..........##.#
1161     * ########.......###############...............##............#
1162     * ########......#################.............########.......#
1163     * ########.....##################.............#########......#
1164     * #######....#####################...........###########.....#
1165     * ######....#######################.........###########......#
1166     * #####....##########################.....#############......#
1167     * ###.....############......##########....#############......#
1168     * #.........#########........##########....############......#
1169     * #..........#######..........#########.....############.....#
1170     * #...........######..........#########.....############.....#
1171     * #...........######...........#########.....##########......#
1172     * #.............####............########.....##########......#
1173     * #..............###.............########....#########.......#
1174     * #...............##..............#######.....#######......###
1175     * #................##........##....######........##......#####
1176     * #............#............####....######..............######
1177     * #...........###.......#########.....####.............#######
1178     * #...........####.....###########.....##..............#######
1179     * #..........######.....##########....................########
1180     * #.........#########....##########...................########
1181     * ############################################################
1182     * </pre>
1183     */
1184    ROUND_ROOMS_DIAGONAL_CORRIDORS,
1185    /**
1186     * A more open cave, but portions of this may seem artificial. Consider alternating with REFERENCE_CAVES .
1187     * <br>
1188     * Example:
1189     * <br>
1190     * <pre>
1191     * ############################################################
1192     * ####......#######......###########....##########....########
1193     * ####.......#####........##########.....#########.....#...###
1194     * ##.........#####........###########.....########.....#...###
1195     * #..........######...........######........#####............#
1196     * #...###########....###.......####...........##.....#.......#
1197     * #......#######.....###........##...................#.......#
1198     * #........####......###........##..................##.......#
1199     * #........####....####........................##..####......#
1200     * #..........###..####.........................########......#
1201     * #....#......########........##...............##########....#
1202     * ##..##......######.......#####.............####....#####..##
1203     * #####.......######......######.........########.....########
1204     * ####......########.....#########.....#########........######
1205     * ####...############..#########################.........#####
1206     * ####...############..############.......######...........###
1207     * ###.....###########..##########..........#######.........###
1208     * ###.....#########....#....#####...........#######........###
1209     * ###.....###..####.........######..........########.......###
1210     * ####.....#....#...........#####............####..........###
1211     * ###................#......#####.............###.........####
1212     * ###................#.......#.........................#######
1213     * #..............#######.................................#####
1214     * #......###.....#########................................#..#
1215     * #.....####....##########...................................#
1216     * #.....####...##########.......#............###.............#
1217     * #......##....########.......####..........####.............#
1218     * #............#######........#####.......#######............#
1219     * #....#.......######....#..#######.....###########........###
1220     * ######......#######...##########......#############..#######
1221     * ######......#######...##########......#############..#######
1222     * ########...#######....##########......#########.......######
1223     * ##################......###..##.....#####..............#####
1224     * #################...#........##.....###...........##.....###
1225     * ##...############...##........#....###.........######.....##
1226     * #......###....##...#####......#....###.....############....#
1227     * #..................#####...........###.....#####...#####...#
1228     * #................#######.........#####....###.......#####..#
1229     * #...##....#....#########..........####.....#........#####..#
1230     * ######...###..#####...##..........####..............#####..#
1231     * ######...#######.......###...#.....####.........########...#
1232     * ####.....#######........#######....####........#######.....#
1233     * ####.....########.......#######....######..........#.......#
1234     * ###.....#########........#######.....#######...............#
1235     * ##.....###########.......#########...############.......####
1236     * ###....###########.......#########...############..#########
1237     * #.........########......#########.....###########..........#
1238     * #..........#.######....##########......#########...........#
1239     * #.............#####...###########......#########...........#
1240     * #.............####...##.....#####......#########....#####..#
1241     * #.............###.....#......#####......#######.....########
1242     * #.............................#####.......#........#######.#
1243     * #.............................########.............######..#
1244     * #..................###.........#######..............###....#
1245     * #....................###........#..#######.................#
1246     * #............####......##...........#####...##...##........#
1247     * #............####.......#..........#####...########........#
1248     * #..........#..####......##...#.##...####...#########.......#
1249     * ###......####.####......#########....###...########.....####
1250     * ############################################################
1251     * </pre>
1252     */
1253    SIMPLE_CAVES,
1254    /**
1255     * Kinda... not the best map. Very predictable.
1256     * <br>
1257     * Example:
1258     * <br>
1259     * <pre>
1260     * ############################################################
1261     * #......#.......#.......####..#..#####.........##...........#
1262     * #......#.......#.......###.......####.........##...........#
1263     * #......................###.......####.........##....###....#
1264     * #..................................................#####...#
1265     * #..................................................#####...#
1266     * #......#.......#...................................#####...#
1267     * #......#.......#.......###.......####.........##....###....#
1268     * #......#.......#.......###.......####.........##...........#
1269     * ##########################.......####.........##...........#
1270     * ############################...#########...#####...........#
1271     * ############################...#########...#################
1272     * #.........####.......####.........##...........#...........#
1273     * #.........###.........###.........##...........#...........#
1274     * #.........##...........##.........##...........#...........#
1275     * #.........##...........##...#.#...##...........#...........#
1276     * #............................#.........#####...............#
1277     * #...........................###........#####........###....#
1278     * #............................#.........#####...............#
1279     * #.........##...........##...#.#...##...#####...#...........#
1280     * #.........##...........##.........##...#####...#...........#
1281     * #.........###.........###.........##...#####...#...........#
1282     * ####...#######.......###############...#####...#...........#
1283     * ####...#########################################....###....#
1284     * ###.....####...........#.......#.......#.......#...........#
1285     * ##.......###...........#.......#.......#.......#...........#
1286     * #.........##...........#.......#.......#.......#...........#
1287     * #..........#....###....#.......................#...........#
1288     * #..............#####.......................................#
1289     * #..............#####................................###....#
1290     * #..............#####...........#.......#...................#
1291     * #..........#....###....#.......#.......#.......#...........#
1292     * #.........##...........#.......#.......#.......#...........#
1293     * ##.......###...........#########################...........#
1294     * ###.....####...........#########################...........#
1295     * ####...#########...#########################################
1296     * #.........######...######.........##...........###.......###
1297     * #.#.....#.###.........###.........##...........##.........##
1298     * #.........###.........###.........##..#..#..#..#...........#
1299     * #.........###.........###.........##...#.#.#...#...........#
1300     * #..........................................................#
1301     * #.....................................##...##..............#
1302     * #..........................................................#
1303     * #.........###.........###.........##...#.#.#...#...........#
1304     * #.........###.........###.........##..#..#..#..#...........#
1305     * #.#.....#.###.........###.........##...........##.........##
1306     * #.........##################...#####...........###.......###
1307     * ####...#####################...#############################
1308     * ####................#######.....####...........#...........#
1309     * ###..................#####.......###...........#.....#.....#
1310     * ##....................###.........##...........#..#..#..#..#
1311     * ##........####........##...........#...........#.....#.....#
1312     * #.....############...................................#.....#
1313     * #....##############..............................#########.#
1314     * #.....############...................................#.....#
1315     * ##........####........##...........#...........#.....#.....#
1316     * ##....................###.........##...........#..#..#..#..#
1317     * ###..................#####.......###...........#.....#.....#
1318     * ####................#######.....####...........#...........#
1319     * ############################################################
1320     * </pre>
1321     */
1322    SQUARE_ROOMS_WITH_RANDOM_RECTS;
1323
1324        /**
1325         * @return The {@link Tileset} corresponding to this type.
1326         */
1327        public Tileset getTileset() {
1328                switch (this) {
1329                case CAVES_LIMIT_CONNECTIVITY:
1330                        return CavesLimitConnectivity.INSTANCE;
1331                case CAVES_TINY_CORRIDORS:
1332                        return CavesTinyCorridors.INSTANCE;
1333                case CORNER_CAVES:
1334                        return CornerCaves.INSTANCE;
1335                case DEFAULT_DUNGEON:
1336                        return DefaultDungeon.INSTANCE;
1337                case HORIZONTAL_CORRIDORS_A:
1338                        return HorizontalCorridorsV1.INSTANCE;
1339                case HORIZONTAL_CORRIDORS_B:
1340                        return HorizontalCorridorsV2.INSTANCE;
1341                case HORIZONTAL_CORRIDORS_C:
1342                        return HorizontalCorridorsV3.INSTANCE;
1343                case LIMITED_CONNECTIVITY:
1344                        return LimitedConnectivity.INSTANCE;
1345                case LIMIT_CONNECTIVITY_FAT:
1346                        return LimitConnectivityFat.INSTANCE;
1347                case MAZE_A:
1348                        return Maze2Wide.INSTANCE;
1349                case MAZE_B:
1350                        return MazePlus2Wide.INSTANCE;
1351                case OPEN_AREAS:
1352                        return OpenAreas.INSTANCE;
1353                case REFERENCE_CAVES:
1354                        return OpenAreas.INSTANCE;
1355                case ROOMS_AND_CORRIDORS_A:
1356                        return RoomsAndCorridors.INSTANCE;
1357                case ROOMS_AND_CORRIDORS_B:
1358                        return RoomsAndCorridors2WideDiagonalBias.INSTANCE;
1359                case ROOMS_LIMIT_CONNECTIVITY:
1360                        return RoomsLimitConnectivity.INSTANCE;
1361                case ROUND_ROOMS_DIAGONAL_CORRIDORS:
1362                        return RoundRoomsDiagonalCorridors.INSTANCE;
1363                case SIMPLE_CAVES:
1364                        return SimpleCaves2Wide.INSTANCE;
1365                case SQUARE_ROOMS_WITH_RANDOM_RECTS:
1366                        return SquareRoomsWithRandomRects.INSTANCE;
1367                }
1368                throw new IllegalStateException("Unmatched: " + this);
1369        }
1370
1371    /**
1372     * Returns MixedGenerator.CAVE_FLOOR (which is 3) or MixedGenerator.ROOM_FLOOR (which is 1) based on whether this
1373     * TilesetType predominantly generates caves or rooms. This is relevant for certain feature placement.
1374     * @return 3 if this produces mostly caves, or 1 if it produces mostly rooms
1375     */
1376        public int environment() {
1377        int caves = 3, rooms = 1;
1378        switch (this) {
1379            case CAVES_LIMIT_CONNECTIVITY:
1380                return caves;
1381            case CAVES_TINY_CORRIDORS:
1382                return caves;
1383            case CORNER_CAVES:
1384                return caves;
1385            case DEFAULT_DUNGEON:
1386                return rooms;
1387            case HORIZONTAL_CORRIDORS_A:
1388                return rooms;
1389            case HORIZONTAL_CORRIDORS_B:
1390                return rooms;
1391            case HORIZONTAL_CORRIDORS_C:
1392                return rooms;
1393            case LIMITED_CONNECTIVITY:
1394                return rooms;
1395            case LIMIT_CONNECTIVITY_FAT:
1396                return rooms;
1397            case MAZE_A:
1398                return rooms;
1399            case MAZE_B:
1400                return rooms;
1401            case OPEN_AREAS:
1402                return caves;
1403            case REFERENCE_CAVES:
1404                return caves;
1405            case ROOMS_AND_CORRIDORS_A:
1406                return rooms;
1407            case ROOMS_AND_CORRIDORS_B:
1408                return rooms;
1409            case ROOMS_LIMIT_CONNECTIVITY:
1410                return rooms;
1411            case ROUND_ROOMS_DIAGONAL_CORRIDORS:
1412                return rooms;
1413            case SIMPLE_CAVES:
1414                return caves;
1415            case SQUARE_ROOMS_WITH_RANDOM_RECTS:
1416                return rooms;
1417        }
1418        throw new IllegalStateException("Unmatched: " + this);
1419
1420
1421    }
1422}
1423