DEADSOFTWARE

Fix furnace bugs
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / GameModule.java
index 29175da1968fba60e36f64a8ebb8ec746c73b630..2385230df15533a680a84a871a487f0e71642cf6 100644 (file)
@@ -5,7 +5,9 @@ import dagger.Provides;
 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.furnace.FurnaceController;
+import ru.deadsoftware.cavedroid.game.ui.TooltipManager;
 import ru.deadsoftware.cavedroid.game.world.GameWorld;
 
 import javax.annotation.CheckForNull;
@@ -44,11 +46,25 @@ public class GameModule {
 
     @Provides
     @GameScope
-    public static MobsController provideMobsController(MainConfig mainConfig, GameItemsHolder gameItemsHolder) {
+    public static FurnaceController provideFurnaceController(MainConfig mainConfig, GameItemsHolder gameItemsHolder) {
         load(mainConfig, gameItemsHolder);
-        MobsController controller = data != null ? data.retrieveMobsController() : new MobsController(gameItemsHolder);
+        FurnaceController controller = data != null ? data.retrueveFurnaceController() : new FurnaceController();
         makeDataNullIfEmpty();
-        controller.getPlayer().initInventory(gameItemsHolder);
+        controller.init(gameItemsHolder);
+        return controller;
+    }
+
+    @Provides
+    @GameScope
+    public static MobsController provideMobsController(MainConfig mainConfig,
+                                                       GameItemsHolder gameItemsHolder,
+                                                       TooltipManager tooltipManager) {
+        load(mainConfig, gameItemsHolder);
+        MobsController controller = data != null
+                ? data.retrieveMobsController()
+                : new MobsController(gameItemsHolder, tooltipManager);
+        makeDataNullIfEmpty();
+        controller.getPlayer().initInventory(gameItemsHolder, tooltipManager);
         return controller;
     }
 
@@ -57,12 +73,13 @@ public class GameModule {
     public static GameWorld provideGameWorld(MainConfig mainConfig,
                                              DropController dropController,
                                              MobsController mobsController,
-                                             GameItemsHolder gameItemsHolder) {
+                                             GameItemsHolder gameItemsHolder,
+                                             FurnaceController furnaceController) {
         load(mainConfig, gameItemsHolder);
         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, furnaceController, fm, bm);
     }
 
 }