1 package ru
.deadsoftware
.cavedroid
.menu
.submenus
;
3 import com
.badlogic
.gdx
.Gdx
;
4 import ru
.deadsoftware
.cavedroid
.MainConfig
;
5 import ru
.deadsoftware
.cavedroid
.game
.GameSaver
;
6 import ru
.deadsoftware
.cavedroid
.menu
.MenuProc
;
7 import ru
.deadsoftware
.cavedroid
.menu
.objects
.Button
;
8 import ru
.deadsoftware
.cavedroid
.menu
.objects
.ButtonEventListener
;
9 import ru
.deadsoftware
.cavedroid
.menu
.objects
.ButtonRenderer
;
10 import ru
.deadsoftware
.cavedroid
.misc
.utils
.AssetLoader
;
12 import javax
.inject
.Inject
;
13 import java
.util
.HashMap
;
15 public class MenuMain
extends Menu
{
17 public MenuMain(float width
,
19 ButtonRenderer buttonRenderer
,
20 MainConfig mainConfig
,
21 MenuProc
.Input menuInput
,
22 AssetLoader assetLoader
) {
23 super(width
, height
, buttonRenderer
, mainConfig
, menuInput
, assetLoader
);
27 protected HashMap
<String
, ButtonEventListener
> getButtonEventListeners() {
28 HashMap
<String
, ButtonEventListener
> map
= new HashMap
<>();
29 map
.put("new_game", mMenuInput
::newGameClicked
);
30 map
.put("load_game", mMenuInput
::loadGameClicked
);
31 map
.put("quit", mMenuInput
::quitClicked
);
36 protected void initButtons() {
37 loadButtonsFromJson(mAssetLoader
.getAssetHandle("json/menu_main_buttons.json"));
38 if (GameSaver
.exists(mMainConfig
)) {
39 getButtons().get("load_game").setType(Button
.NORMAL
);
43 public static class Factory
{
45 private final MainConfig mMainConfig
;
46 private final AssetLoader mAssetLoader
;
49 public Factory(MainConfig mainConfig
, AssetLoader assetLoader
) {
50 mMainConfig
= mainConfig
;
51 mAssetLoader
= assetLoader
;
54 public MenuMain
get(float width
, float height
, ButtonRenderer buttonRenderer
, MenuProc
.Input menuInput
) {
55 return new MenuMain(width
, height
, buttonRenderer
, mMainConfig
, menuInput
, mAssetLoader
);