package uk.org.squirm3.engine;
import java.util.List;
import uk.org.squirm3.model.level.Level;
public final class LevelManager {
private Level currentLevel;
private final List<Level> levels;
private int levelIndex;
public LevelManager(final List<Level> levels) {
this.levels = levels;
levelIndex = 0;
setLevel(0);
}
public Level getCurrentLevel() {
return currentLevel;
}
public int getCurrentLevelIndex() {
return levelIndex;
}
public List<? extends Level> getLevels() {
return levels;
}
public int getNumberOfLevel() {
return levels.size();
}
public boolean isCurrentLevelFirstLevel() {
return levelIndex == 0;
}
public boolean isCurrentLevelLastLevel() {
return levelIndex == levels.size() - 1;
}
protected void setLevel(int index) {
// TODO exception if index out of bounds
// TODO why protected ?
if (index > levels.size()) {
index = levels.size() - 1;
}
if (index < 0) {
return;
}
levelIndex = index;
currentLevel = levels.get(index);
}
}