DEADSOFTWARE

c47a0e19144a7a6f3d25e78a18d16df26fc2df56
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / GameModule.java
1 package ru.deadsoftware.cavedroid.game;
3 import dagger.Module;
4 import dagger.Provides;
5 import ru.deadsoftware.cavedroid.MainConfig;
6 import ru.deadsoftware.cavedroid.game.mobs.MobsController;
7 import ru.deadsoftware.cavedroid.game.objects.DropController;
8 import ru.deadsoftware.cavedroid.game.world.GameWorld;
10 import javax.annotation.CheckForNull;
12 @Module
13 public class GameModule {
15 @CheckForNull
16 private static GameSaver.Data data;
18 public static void load(MainConfig mainConfig) {
19 data = GameSaver.load(mainConfig);
20 }
22 private static void makeDataNullIfEmpty() {
23 if (data != null && data.isEmpty()) {
24 data = null;
25 }
26 }
28 @Provides
29 @GameScope
30 public static DropController provideDropController() {
31 DropController controller = data != null ? data.retrieveDropController() : new DropController();
32 makeDataNullIfEmpty();
33 return controller;
34 }
36 @Provides
37 @GameScope
38 public static MobsController provideMobsController() {
39 MobsController controller = data != null ? data.retrieveMobsController() : new MobsController();
40 makeDataNullIfEmpty();
41 return controller;
42 }
44 @Provides
45 @GameScope
46 public static GameWorld provideGameWorld(DropController dropController,
47 MobsController mobsController,
48 GameItemsHolder gameItemsHolder) {
49 // TODO: 4/20/24 RE-enable saves
50 // int[][] fm = data != null ? data.retrieveForeMap() : null;
51 // int[][] bm = data != null ? data.retrieveBackMap() : null;
52 makeDataNullIfEmpty();
53 return new GameWorld(dropController, mobsController, gameItemsHolder, null, null);
54 }
56 }