package org.mafagafogigante.dungeon.game;
import java.io.Serializable;
/**
* River class that implements a river (a line of water in the World).
*/
class River implements Serializable {
private static final int MIN_BRIDGE_DIST = 4;
private static final int MAX_BRIDGE_DIST = 20;
private final ExpandableIntegerSet bridges;
/**
* Make a river.
*/
River() {
bridges = new ExpandableIntegerSet(MIN_BRIDGE_DIST, MAX_BRIDGE_DIST);
}
/**
* Expand the set of bridges towards a value of y until there is a bridge at y or after y.
*
* @param y the y coordinate
*/
private void expand(int y) {
bridges.expand(y);
}
/**
* Evaluates if a given value of y corresponds to a bridge.
*
* @param y the y coordinate
* @return true if there should be a bridge in this y coordinate
*/
boolean isBridge(int y) {
expand(y);
return bridges.contains(y);
}
@Override
public String toString() {
return "River with bridges in " + bridges;
}
}