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 mDrops
.forEach((drop
) -> drop
.initItem(gameItemsHolder
));
31 public void addDrop(float x
, float y
, Item item
) {
32 addDrop(x
, y
, item
, 1);
35 public void addDrop(float x
, float y
, Item item
, int count
) {
39 mDrops
.add(new Drop(x
, y
, item
, count
));
42 public void addDrop(float x
, float y
, @NotNull InventoryItem invItem
) {
43 addDrop(x
, y
, invItem
.getItem(), invItem
.getAmount());
46 public int getSize() {
50 public void forEach(Callback callback
) {
51 mDrops
.forEach(callback
::run
);
54 public Iterator
<Drop
> getIterator() {
55 return mDrops
.iterator();