public class Region extends AbstractList<Coord> implements Serializable
Modifier and Type | Field and Description |
---|---|
protected Coord[] |
coords |
protected short[] |
raw |
modCount
Constructor and Description |
---|
Region(char[][] map,
char... using)
A constructor for a Region that takes a 2D char array, the kind produced by most map/dungeon generators in this
library, and a vararg or array of char that will have their Coord positions used where those chars appear in map.
|
Region(Collection<Coord> points)
A constructor for a Region that takes a Collection of Coord, such as a List or Set, and encodes all of them in
the Region.
|
Region(Coord... points)
A constructor for a Region that takes an array or vararg of Coord and encodes all of them in the Region.
|
Region(Coord center,
int circleRadius,
int mapWidth,
int mapHeight)
A constructor for a circular Region (possibly truncated at the edges) with a Coord center, an int radius, and a
maximum width and height that the Coords in this Region will not exceed.
|
Region(double[][] fovMap)
A constructor for a Region that takes a 2D double array, usually the kind produced by FOV, and stores only Coord
positions that correspond to values greater than 0.0 (actually, greater than epsilon, which here is 0.0001).
|
Region(double[][] dijkstraMap,
double maximum)
A constructor for a Region that takes a 2D double array, usually produced by DijkstraMap, and a maximum value,
and stores only Coord positions that correspond to values no greater than maximum.
|
Region(int minX,
int minY,
int width,
int height)
A constructor for a rectangular Region that stores Coords for the area from (minX,minY) at the minimum corner to
(width + minX - 1, height + minY - 1) at the maximum corner.
|
Region(Region other)
A constructor that copies another Region so this Region will have the same contents.
|
Region(short[] packedData)
A constructor for a Region that takes a specifically-formatted short array (packed data), as produced by
CoordPacker or sometimes other classes, like RegionMap or RoomFinder.
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(Coord coord)
Adds a Coord to this Region, returning false if the Coord is null or already included in this, or true otherwise.
|
void |
debugPrint(int width,
int height)
Prints this Region to System.out as a grid of chars with the given width and height, using '.' for Coords this
contains and '#' for empty space.
|
Coord |
get(int index)
Gets the Coord stored at the given index in this Region, or null if index is out of bounds.
|
Coord[] |
getCoords()
Gets the Coords contained in this as an array, a direct reference that does permit modifying the Coords in your
own code without altering "dirty/clean" status.
|
Coord |
getRandomCoord(RNG rng)
Gets a single random Coord from this using the given RNG (which can be seeded); returns null if this is empty.
|
short[] |
getRaw()
Gets a direct reference to this Region's "raw packed data"; don't modify it unless you know what you're doing!
It's fine to pass this to methods in CoordPacker, since essentially all of those methods won't modify packed data
given as arguments.
|
boolean |
isEmpty()
Returns true if there are no Coords in this Region, or false otherwise.
|
Region |
randomSeparated(int separation,
RNG rng)
Takes this region and walks through its Coords in chunks with length equal to separation, creating a new Region
where one randomly-chosen Coord in each chunk is kept and the others are discarded.
|
Region |
separated(int separation)
Takes this region and walks through its Coords in chunks with length equal to separation, creating a new Region
where one Coord in each chunk is kept and the others are discarded.
|
void |
setCoords(Coord... coords)
Changes this Region to include the given Coords and disregard its previous contents.
|
void |
setRaw(short[] raw)
Sets the "raw packed data" to the given short array, as generated by CoordPacker or some parts of RegionMap.
|
int |
size()
Gets the size of this Region as measured in Coords stored.
|
boolean[][] |
toBooleanArray(int width,
int height)
Gets a representation of this Region as a 2D boolean array with the given width and height.
|
char[][] |
toCharArray(int width,
int height,
char on,
char off)
Gets a representation of this Region as a 2D char array with the given width and height, using on to represent
present Coords and off to represent absent ones.
|
add, addAll, clear, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subList
addAll, contains, containsAll, remove, removeAll, retainAll, toArray, toArray, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
addAll, contains, containsAll, remove, removeAll, replaceAll, retainAll, sort, spliterator, toArray, toArray
parallelStream, removeIf, stream
public Region(double[][] fovMap)
fovMap
- a 2D double array as produced by FOVpublic Region(double[][] dijkstraMap, double maximum)
dijkstraMap
- a 2D double array as produced by DijkstraMapmaximum
- the highest value that a position can have in dijkstraMap and still be given a Coord in thispublic Region(char[][] map, char... using)
map
- a 2D char array that is usually the kind returned by a dungeon or map generatorusing
- an array or vararg of char that will have their Coords used where they appear in mappublic Region(Coord... points)
points
- an array or vararg of Coord that will be stored in this Region, none can be nullpublic Region(Collection<Coord> points)
points
- a Collection of Coord that will be stored in this Region, none can be nullpublic Region(Region other)
other
- another Region to copy into this onepublic Region(Coord center, int circleRadius, int mapWidth, int mapHeight)
center
- the center of the circular RegioncircleRadius
- the radius as an intmapWidth
- one more than the maximum x-position of any Coord this will containmapHeight
- one more than the maximum y-position of any Coord this will containpublic Region(int minX, int minY, int width, int height)
minX
- lowest x-coordinate in the rectangle; should be between 0 and 255minY
- lowest y-coordinate in the rectangle; should be between 0 and 255width
- total width of the rectangle; must be non-negativeheight
- total height of the rectangle; must be non-negativepublic Region(short[] packedData)
packedData
- a short array as produced by CoordPacker (usually), or sometimes RoomFinder or RegionMappublic Coord getRandomCoord(RNG rng)
rng
- the source of random numbers used to get a random Coord from this Regionpublic Region separated(int separation)
separation
- an int where higher numbers mean there will be more distance between Coords, and fewer totalpublic Region randomSeparated(int separation, RNG rng)
separation
- an int where higher numbers mean there will be more distance between Coords, and fewer totalrng
- the source of random numbers used to randomize Coords used, removing any noticeable patternpublic boolean[][] toBooleanArray(int width, int height)
width
- the width of the 2D array to returnheight
- the height of the 2D array to returnpublic char[][] toCharArray(int width, int height, char on, char off)
width
- the width of the 2D array to returnheight
- the height of the 2D array to returnon
- the char to use when a Coord is present in this Regionoff
- the char to use where no Coord is present in this Regionpublic Coord get(int index)
public int size()
size
in interface Collection<Coord>
size
in interface List<Coord>
size
in class AbstractCollection<Coord>
public boolean isEmpty()
isEmpty
in interface Collection<Coord>
isEmpty
in interface List<Coord>
isEmpty
in class AbstractCollection<Coord>
public boolean add(Coord coord)
add
in interface Collection<Coord>
add
in interface List<Coord>
add
in class AbstractList<Coord>
coord
- a Coord to add to this regionpublic short[] getRaw()
public void setRaw(short[] raw)
raw
- a short array of packed data; has a very specific format and should usually not be made manuallypublic Coord[] getCoords()
public void setCoords(Coord... coords)
coords
- an array or vararg of Coord that will be used as the entirety of this Regionpublic void debugPrint(int width, int height)
width
- the width in chars of the grid to printheight
- the height in chars of the grid to printCopyright © 2012–2016. All rights reserved.