package org.open2jam.render.entities;
import java.util.ArrayList;
import java.util.Collection;
/**
*
* @author fox
*/
public class NumberEntity extends Entity
{
int number = 0;
int show_digits = 1;
ArrayList<Entity> entity_list;
public NumberEntity(Collection<Entity> list, double x, double y)
{
entity_list = new ArrayList<Entity>();
entity_list.addAll(list);
this.x = x;
this.y = y;
sprite = entity_list.get(0).sprite;
}
private NumberEntity(NumberEntity org) {
super(org);
entity_list = new ArrayList<Entity>();
for(Entity e : org.entity_list)entity_list.add(e.copy());
this.number = org.number;
this.show_digits = org.show_digits;
}
public void setNumber(Integer i){
this.number = i;
}
public int getNumber(){
return number;
}
public void incNumber()
{
number++;
}
public void addNumber(int add)
{
number += add;
}
public void showDigits(int number)
{
show_digits = number;
}
@Override
public void move(double delta)
{
super.move(delta);
}
@Override
public void draw()
{
//draw from right to left
String numberString = String.valueOf(number);
if(numberString.length() < show_digits)
{
StringBuilder zeros = new StringBuilder(show_digits);
for(int i = numberString.length(); i<show_digits;i++)
zeros.append('0');
numberString = zeros.append(numberString).toString();
}
double tx = x;
char[] chars = numberString.toCharArray();
for(int j=chars.length-1;j>=0;j--)
{
int i = chars[j] - '0';
tx -= entity_list.get(i).getWidth();
entity_list.get(i).setPos(tx,y);
entity_list.get(i).draw();
}
}
@Override
public NumberEntity copy()
{
return new NumberEntity(this);
}
}