package stray; import java.util.HashMap; import stray.LevelData.LevelType; public class Levels { public static final int LEVELS_PER_CHAPTER = 8; private static Levels instance; private Levels() { } public static Levels instance() { if (instance == null) { instance = new Levels(); instance.loadResources(); } return instance; } public HashMap<Integer, LevelData> levels = new HashMap<Integer, LevelData>(); public HashMap<LevelData, Integer> reverse = new HashMap<LevelData, Integer>(); private void loadResources() { levels.clear(); add(new LevelData("chapter1/level1-1").setType(LevelType.GEARS).setCutscene("controls")); add(new LevelData("chapter1/level1-2").setType(LevelType.GEARS)); add(new LevelData("chapter1/level1-3").setType(LevelType.GEARS)); add(new LevelData("chapter1/level1-4").setType(LevelType.GEARS)); add(new LevelData("chapter1/level1-5").setType(LevelType.GEARS)); add(new LevelData("chapter1/level1-6").setType(LevelType.GEARS)); add(new LevelData("chapter1/level1-7").setType(LevelType.GEARS)); add(new LevelData("chapter1/level1-8").setType(LevelType.GEARS)); } private int num = 0; private void add(LevelData l){ levels.put(num, l); reverse.put(l, num); num++; } public static String getLevelName(int level, int groupnum){ return ((level / groupnum) + 1) + "-" + ((level % groupnum) + 1); } public static String getLevelName(int level){ return getLevelName(level, LEVELS_PER_CHAPTER); } public int getNumFromLevelFile(String file){ for(int i = 0; i < levels.size(); i++){ if(levels.get(i).path.equals(file)) return i; } return -1; } public LevelData getLevelData(String file){ for(int i = 0; i < levels.size(); i++){ if(levels.get(i).path.equals(file)) return levels.get(i); } return null; } }