public static Animation loadAnimationFile(String animationFilename) {
		try {
			Scanner reader = new Scanner(new FileReader("Resources/Animations/" + animationFilename));
			String spritesPath = reader.next().substring(1);
			int width = reader.nextInt();
			int height = reader.nextInt();
			int nbOfSupportedStates = reader.nextInt();
			TreeMap<State, Tuple<BufferedImage[], Integer>> spriteMap = new TreeMap<State, Tuple<BufferedImage[], Integer>>();
			for(int i = 0; i < nbOfSupportedStates; i++) {
				String stateStr = reader.next();
				int nbOfSprites = reader.nextInt();
				int animationSpeed = reader.nextInt();
				BufferedImage[] sprites = new BufferedImage[nbOfSprites];
				for(int j = 0; j < nbOfSprites; j++) {
					sprites[j] = ImageIO.read(new File("Resources/Sprites/" + spritesPath + reader.next()));
				}
				spriteMap.put(State.getFromStr(stateStr), new Tuple<BufferedImage[], Integer>(sprites, animationSpeed));
			}
			Tuple<BufferedImage[], Integer> tuple = new Tuple<BufferedImage[], Integer>(new BufferedImage[] {loadSprite("empty.png")}, 1);
			spriteMap.put(State.DEAD, tuple);
			return new Animation(width, height, spriteMap);
		} catch (FileNotFoundException e) {
			System.out.println("SpriteAnimationLoader: file <" + animationFilename + "> was not found in the folder <Animations>");
		} catch (IOException e) {
			System.out.println("SpriteAnimationLoader: file not found");
		}
		return null;
	}