diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameModule.java b/core/src/ru/deadsoftware/cavedroid/game/GameModule.java
index fbbd294b0e032dda43c29c6ce772303a83673c1f..29aac7df7e0f42be5364e1df21a5327fe3888697 100644 (file)
import ru.deadsoftware.cavedroid.MainConfig;
import ru.deadsoftware.cavedroid.game.mobs.MobsController;
import ru.deadsoftware.cavedroid.game.model.block.Block;
-import ru.deadsoftware.cavedroid.game.objects.DropController;
+import ru.deadsoftware.cavedroid.game.objects.drop.DropController;
+import ru.deadsoftware.cavedroid.game.objects.container.ContainerController;
+import ru.deadsoftware.cavedroid.game.save.GameSaveData;
+import ru.deadsoftware.cavedroid.game.save.GameSaveLoader;
import ru.deadsoftware.cavedroid.game.ui.TooltipManager;
import ru.deadsoftware.cavedroid.game.world.GameWorld;
public class GameModule {
@CheckForNull
- private static GameSaver.Data data;
+ private static GameSaveData data;
public static boolean loaded = false;
- private static void load(MainConfig mainConfig, GameItemsHolder gameItemsHolder) {
+ private static void load(MainConfig mainConfig, GameItemsHolder gameItemsHolder, TooltipManager tooltipManager) {
if (loaded) {
return;
}
- data = GameSaver.load(mainConfig, gameItemsHolder);
+ data = GameSaveLoader.INSTANCE.load(mainConfig, gameItemsHolder, tooltipManager);
loaded = true;
}
@Provides
@GameScope
- public static DropController provideDropController(MainConfig mainConfig, GameItemsHolder gameItemsHolder) {
- load(mainConfig, gameItemsHolder);
+ public static DropController provideDropController(MainConfig mainConfig,
+ GameItemsHolder gameItemsHolder,
+ TooltipManager tooltipManager) {
+ load(mainConfig, gameItemsHolder, tooltipManager);
DropController controller = data != null ? data.retrieveDropController() : new DropController();
makeDataNullIfEmpty();
controller.initDrops(gameItemsHolder);
return controller;
}
+ @Provides
+ @GameScope
+ public static ContainerController provideFurnaceController(MainConfig mainConfig,
+ DropController dropController,
+ GameItemsHolder gameItemsHolder,
+ TooltipManager tooltipManager) {
+ load(mainConfig, gameItemsHolder, tooltipManager);
+ ContainerController controller = data != null
+ ? data.retrieveContainerController()
+ : new ContainerController(dropController, gameItemsHolder);
+ makeDataNullIfEmpty();
+ controller.init(dropController, gameItemsHolder);
+ return controller;
+ }
+
@Provides
@GameScope
public static MobsController provideMobsController(MainConfig mainConfig,
GameItemsHolder gameItemsHolder,
TooltipManager tooltipManager) {
- load(mainConfig, gameItemsHolder);
+ load(mainConfig, gameItemsHolder, tooltipManager);
MobsController controller = data != null
? data.retrieveMobsController()
: new MobsController(gameItemsHolder, tooltipManager);
public static GameWorld provideGameWorld(MainConfig mainConfig,
DropController dropController,
MobsController mobsController,
- GameItemsHolder gameItemsHolder) {
- load(mainConfig, gameItemsHolder);
+ GameItemsHolder gameItemsHolder,
+ ContainerController containerController,
+ TooltipManager tooltipManager) {
+ load(mainConfig, gameItemsHolder, tooltipManager);
Block[][] fm = data != null ? data.retrieveForeMap() : null;
Block[][] bm = data != null ? data.retrieveBackMap() : null;
makeDataNullIfEmpty();
- return new GameWorld(dropController, mobsController, gameItemsHolder, fm, bm);
+ return new GameWorld(dropController, mobsController, gameItemsHolder, containerController, fm, bm);
}
}