package com.maceswinger.test.inventory;
import java.util.ArrayList;
import org.magnos.entity.ComponentValueFactory;
public class Inventory implements ComponentValueFactory<Inventory>
{
private ArrayList<ItemStack> stacks;
public Inventory()
{
this.stacks = new ArrayList<ItemStack>();
}
public void addItem(Item i)
{
ItemStack temp = null;
for (ItemStack stack : stacks)
if (stack.getBaseItem().equals(i) && !stack.isFull())
temp = stack;
if (temp != null)
temp.addItem(i);
else
{
ItemStack temp2 = new ItemStack(i);
temp2.addItem(i);
stacks.add(temp2);
}
}
public void removeItem(Item i)
{
for (ItemStack stack : stacks)
if (!stack.isEmpty())
stack.removeItem(i);
}
public ArrayList<ItemStack> getStacks()
{
return this.stacks;
}
public int getSize()
{
return this.stacks.size();
}
@Override
public Inventory create()
{
return new Inventory();
}
@Override
public Inventory clone(Inventory value)
{
return copy(value, new Inventory());
}
@Override
public Inventory copy(Inventory from, Inventory to)
{
to.stacks = from.stacks;
return to;
}
}