DEADSOFTWARE

Update version script
[cavedroid.git] / core / src / main / java / ru / deadsoftware / cavedroid / menu / submenus / MenuMain.java
1 package ru.deadsoftware.cavedroid.menu.submenus;
3 import ru.deadsoftware.cavedroid.MainConfig;
4 import ru.deadsoftware.cavedroid.game.save.GameSaveLoader;
5 import ru.deadsoftware.cavedroid.menu.MenuProc;
6 import ru.deadsoftware.cavedroid.menu.objects.Button;
7 import ru.deadsoftware.cavedroid.menu.objects.ButtonEventListener;
8 import ru.deadsoftware.cavedroid.menu.objects.ButtonRenderer;
9 import ru.deadsoftware.cavedroid.misc.utils.AssetLoader;
11 import javax.inject.Inject;
12 import java.util.HashMap;
14 public class MenuMain extends Menu {
16 public MenuMain(float width,
17 float height,
18 ButtonRenderer buttonRenderer,
19 MainConfig mainConfig,
20 MenuProc.Input menuInput,
21 AssetLoader assetLoader) {
22 super(width, height, buttonRenderer, mainConfig, menuInput, assetLoader);
23 }
25 @Override
26 protected HashMap<String, ButtonEventListener> getButtonEventListeners() {
27 HashMap<String, ButtonEventListener> map = new HashMap<>();
28 map.put("new_game", mMenuInput::newGameClicked);
29 map.put("load_game", mMenuInput::loadGameClicked);
30 map.put("options", mMenuInput::optionsClicked);
31 map.put("quit", mMenuInput::quitClicked);
32 return map;
33 }
35 @Override
36 protected void initButtons() {
37 loadButtonsFromJson(mAssetLoader.getAssetHandle("json/menu_main_buttons.json"));
38 if (GameSaveLoader.INSTANCE.exists(mMainConfig)) {
39 getButtons().get("load_game").setType(Button.NORMAL);
40 }
41 }
43 public static class Factory {
45 private final MainConfig mMainConfig;
46 private final AssetLoader mAssetLoader;
48 @Inject
49 public Factory(MainConfig mainConfig, AssetLoader assetLoader) {
50 mMainConfig = mainConfig;
51 mAssetLoader = assetLoader;
52 }
54 public MenuMain get(float width, float height, ButtonRenderer buttonRenderer, MenuProc.Input menuInput) {
55 return new MenuMain(width, height, buttonRenderer, mMainConfig, menuInput, mAssetLoader);
56 }
58 }
60 }