DEADSOFTWARE

915ce25603a42f8dcdf76e201899b345a7aa3b4c
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / mobs / MobsController.java
1 package ru.deadsoftware.cavedroid.game.mobs;
3 import com.badlogic.gdx.Gdx;
4 import ru.deadsoftware.cavedroid.game.GameScope;
6 import javax.inject.Inject;
7 import java.util.Iterator;
8 import java.util.LinkedList;
10 @GameScope
11 public class MobsController {
13 public interface Callback {
14 void run(Mob mob);
15 }
17 private static final String TAG = "MobsController";
19 private final Player mPlayer;
20 private final LinkedList<Mob> mMobs = new LinkedList<>();
22 @Inject
23 public MobsController() {
24 mPlayer = new Player();
25 }
27 public Player getPlayer() {
28 return mPlayer;
29 }
31 public void addMob(Class<? extends Mob> mobClass, float x, float y) {
32 try {
33 mMobs.add(mobClass.getConstructor(float.class, float.class).newInstance(x, y));
34 } catch (Exception e) {
35 Gdx.app.error(TAG, e.getMessage());
36 }
37 }
39 public int getSize() {
40 return mMobs.size();
41 }
43 public void forEach(Callback callback) {
44 mMobs.forEach(callback::run);
45 }
47 public Iterator<Mob> getIterator() {
48 return mMobs.iterator();
49 }
51 }