DEADSOFTWARE

Add my repo for automultibind
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / objects / DropController.java
1 package ru.deadsoftware.cavedroid.game.objects;
3 import ru.deadsoftware.cavedroid.game.GameItemsHolder;
4 import ru.deadsoftware.cavedroid.game.GameScope;
5 import ru.deadsoftware.cavedroid.game.model.item.Item;
7 import javax.inject.Inject;
8 import java.io.Serializable;
9 import java.util.Iterator;
10 import java.util.LinkedList;
12 @GameScope
13 public class DropController implements Serializable {
15 public interface Callback {
16 void run(Drop drop);
17 }
19 private final LinkedList<Drop> mDrops = new LinkedList<>();
21 @Inject
22 public DropController() {
23 }
25 public void initDrops(GameItemsHolder gameItemsHolder) {
26 mDrops.forEach((drop) -> drop.initItem(gameItemsHolder));
27 }
29 public void addDrop(float x, float y, Item item) {
30 if (item.isNone()) {
31 return;
32 }
33 mDrops.add(new Drop(x, y, item));
34 }
36 public int getSize() {
37 return mDrops.size();
38 }
40 public void forEach(Callback callback) {
41 mDrops.forEach(callback::run);
42 }
44 public Iterator<Drop> getIterator() {
45 return mDrops.iterator();
46 }
48 }