X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fmenu%2Fsubmenus%2FMenuMain.java;h=6a40fc534b1a5d04e5fb5d6d80c4ae94b8487777;hb=ca4dfc9c8252d4222f778db27e7505909420da39;hp=10db012c8efe278812fd3765f8e9be47acc0a7fe;hpb=59d48c1b28c570755327a8fb0827fa57e7fd3914;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/menu/submenus/MenuMain.java b/core/src/ru/deadsoftware/cavedroid/menu/submenus/MenuMain.java index 10db012..6a40fc5 100644 --- a/core/src/ru/deadsoftware/cavedroid/menu/submenus/MenuMain.java +++ b/core/src/ru/deadsoftware/cavedroid/menu/submenus/MenuMain.java @@ -1,33 +1,61 @@ package ru.deadsoftware.cavedroid.menu.submenus; import com.badlogic.gdx.Gdx; +import ru.deadsoftware.cavedroid.MainConfig; import ru.deadsoftware.cavedroid.game.GameSaver; +import ru.deadsoftware.cavedroid.menu.MenuProc; import ru.deadsoftware.cavedroid.menu.objects.Button; 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 MenuMain extends Menu { - public MenuMain(float width, float height, ButtonRenderer buttonRenderer) { - super(width, height, buttonRenderer); + public MenuMain(float width, + float height, + ButtonRenderer buttonRenderer, + MainConfig mainConfig, + MenuProc.Input menuInput, + AssetLoader assetLoader) { + super(width, height, buttonRenderer, mainConfig, menuInput, assetLoader); } @Override protected HashMap getButtonEventListeners() { HashMap map = new HashMap<>(); - map.put("new_game", MenuInput::newGameClicked); - map.put("load_game", MenuInput::loadGameClicked); - map.put("quit", MenuInput::quitClicked); + map.put("new_game", mMenuInput::newGameClicked); + map.put("load_game", mMenuInput::loadGameClicked); + map.put("options", mMenuInput::optionsClicked); + map.put("quit", mMenuInput::quitClicked); return map; } @Override protected void initButtons() { - loadButtonsFromJson(Gdx.files.internal("json/menu_main_buttons.json")); - if (GameSaver.exists()) { + loadButtonsFromJson(mAssetLoader.getAssetHandle("json/menu_main_buttons.json")); + if (GameSaver.exists(mMainConfig)) { getButtons().get("load_game").setType(Button.NORMAL); } } + + public static class Factory { + + private final MainConfig mMainConfig; + private final AssetLoader mAssetLoader; + + @Inject + public Factory(MainConfig mainConfig, AssetLoader assetLoader) { + mMainConfig = mainConfig; + mAssetLoader = assetLoader; + } + + public MenuMain get(float width, float height, ButtonRenderer buttonRenderer, MenuProc.Input menuInput) { + return new MenuMain(width, height, buttonRenderer, mMainConfig, menuInput, mAssetLoader); + } + + } + }