DEADSOFTWARE

Add tooltips
[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 void addDrop(float x, float y, Item item, int count) {
37 for (int i = 0 ; i < count; i++) {
38 addDrop(x, y, item);
39 }
40 }
42 public int getSize() {
43 return mDrops.size();
44 }
46 public void forEach(Callback callback) {
47 mDrops.forEach(callback::run);
48 }
50 public Iterator<Drop> getIterator() {
51 return mDrops.iterator();
52 }
54 }