ConstructionWand/src/main/java/thetadev/constructionwand/basics/pool/OrderedPool.java
Theta-Dev 28bd5a7c70 Wand Supplier/Action Refactoring
fixed inventory pickup order
undo now works within range of blocks
2021-03-07 17:50:25 +01:00

39 lines
735 B
Java

package thetadev.constructionwand.basics.pool;
import javax.annotation.Nullable;
import java.util.ArrayList;
public class OrderedPool<T> implements IPool<T>
{
private final ArrayList<T> elements;
private int index;
public OrderedPool() {
elements = new ArrayList<>();
reset();
}
@Override
public void add(T element) {
elements.add(element);
}
@Override
public void remove(T element) {
elements.remove(element);
}
@Nullable
@Override
public T draw() {
if(index >= elements.size()) return null;
T e = elements.get(index);
index++;
return e;
}
@Override
public void reset() {
index = 0;
}
}