1 package ru
.deadsoftware
.cavedroid
.game
.objects
.drop
;
3 import org
.jetbrains
.annotations
.NotNull
;
4 import ru
.deadsoftware
.cavedroid
.game
.GameItemsHolder
;
5 import ru
.deadsoftware
.cavedroid
.game
.GameScope
;
6 import ru
.deadsoftware
.cavedroid
.game
.model
.item
.InventoryItem
;
7 import ru
.deadsoftware
.cavedroid
.game
.model
.item
.Item
;
9 import javax
.inject
.Inject
;
10 import java
.io
.Serializable
;
11 import java
.util
.Iterator
;
12 import java
.util
.LinkedList
;
15 public class DropController
implements Serializable
{
17 public interface Callback
{
21 private final LinkedList
<Drop
> mDrops
= new LinkedList
<>();
24 public DropController() {
27 public void initDrops(GameItemsHolder gameItemsHolder
) {
28 for (Drop drop
: mDrops
) {
29 drop
.initItem(gameItemsHolder
);
33 public void addDrop(float x
, float y
, Item item
) {
34 addDrop(x
, y
, item
, 1);
37 public void addDrop(float x
, float y
, Item item
, int count
) {
41 mDrops
.add(new Drop(x
, y
, item
, count
));
44 public void addDrop(float x
, float y
, @NotNull InventoryItem invItem
) {
45 addDrop(x
, y
, invItem
.getItem(), invItem
.getAmount());
48 public int getSize() {
52 public void forEach(Callback callback
) {
53 for (Drop drop
: mDrops
) {
58 public Iterator
<Drop
> getIterator() {
59 return mDrops
.iterator();