package org.open2jam.render.entities; import org.open2jam.render.SpriteList; /** * * @author fox */ public class BarEntity extends AnimatedEntity { private int limit = 1; private int number = 0; public enum FillDirection { LEFT_TO_RIGHT, RIGHT_TO_LEFT, UP_TO_DOWN, DOWN_TO_UP } private FillDirection direction = FillDirection.LEFT_TO_RIGHT; public BarEntity(SpriteList list, double x, double y) { super(list,x,y); } public BarEntity(SpriteList list, double x, double y, FillDirection fill) { super(list,x,y); direction = fill; } public void setNumber(Integer i){ if(i <= limit) number = i; else number = limit; } public int getNumber(){ return number; } public void addNumber(int add) { if(number + add <= limit) number += add; else number = limit; } public void subtractNumber(int sub) { if(number - sub >= 0) number -= sub; else number = 0; } public void setLimit(int limit){ this.limit = limit; } public int getLimit() {return limit; } public void setFillDirection(FillDirection value) { direction = value; } public FillDirection getFillDirection() { return direction; } @Override public void draw() { float perc = ((float)number / limit); double px = x; double py = y; switch(direction) { case LEFT_TO_RIGHT: sprite.setSlice(perc, 1); break; case UP_TO_DOWN: py += sprite.getHeight(); sprite.setSlice(1, -perc); break; case RIGHT_TO_LEFT: px += sprite.getWidth(); sprite.setSlice(-perc, 1); break; case DOWN_TO_UP: sprite.setSlice(1, perc); break; } sprite.draw(px, py); } }