DEADSOFTWARE

Add support for external assets
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / menu / submenus / MenuNewGame.java
index 2c3b38bee9b041a5ae16fd4e2e5a4d1d707aacad..33985ff8206d395939c21c54d474e0017e26c5a3 100644 (file)
@@ -1,17 +1,23 @@
 package ru.deadsoftware.cavedroid.menu.submenus;
 
-import com.badlogic.gdx.Gdx;
 import ru.deadsoftware.cavedroid.MainConfig;
 import ru.deadsoftware.cavedroid.menu.MenuProc;
 import ru.deadsoftware.cavedroid.menu.objects.ButtonEventListener;
 import ru.deadsoftware.cavedroid.menu.objects.ButtonRenderer;
+import ru.deadsoftware.cavedroid.misc.utils.AssetLoader;
 
+import javax.inject.Inject;
 import java.util.HashMap;
 
 public class MenuNewGame extends Menu {
 
-    public MenuNewGame(float width, float height, ButtonRenderer buttonRenderer, MainConfig mainConfig, MenuProc.Input menuInput) {
-        super(width, height, buttonRenderer, mainConfig, menuInput);
+    public MenuNewGame(float width,
+                       float height,
+                       ButtonRenderer buttonRenderer,
+                       MainConfig mainConfig,
+                       MenuProc.Input menuInput,
+                       AssetLoader assetLoader) {
+        super(width, height, buttonRenderer, mainConfig, menuInput, assetLoader);
     }
 
     @Override
@@ -25,6 +31,23 @@ public class MenuNewGame extends Menu {
 
     @Override
     protected void initButtons() {
-        loadButtonsFromJson(Gdx.files.internal("json/menu_new_game_buttons.json"));
+        loadButtonsFromJson(mAssetLoader.getAssetHandle("json/menu_new_game_buttons.json"));
+    }
+
+    public static class Factory {
+
+        private final MainConfig mMainConfig;
+        private final AssetLoader mAssetLoader;
+
+        @Inject
+        public Factory(MainConfig mainConfig, AssetLoader assetLoader) {
+            mMainConfig = mainConfig;
+            mAssetLoader = assetLoader;
+        }
+
+        public MenuNewGame get(float width, float height, ButtonRenderer buttonRenderer, MenuProc.Input menuInput) {
+            return new MenuNewGame(width, height, buttonRenderer, mMainConfig, menuInput, mAssetLoader);
+        }
+
     }
 }