1 package ru
.deadsoftware
.cavedroid
.menu
;
3 import com
.badlogic
.gdx
.Gdx
;
4 import com
.badlogic
.gdx
.utils
.ObjectMap
;
5 import ru
.deadsoftware
.cavedroid
.CaveGame
;
6 import ru
.deadsoftware
.cavedroid
.MainConfig
;
7 import ru
.deadsoftware
.cavedroid
.menu
.objects
.Button
;
8 import ru
.deadsoftware
.cavedroid
.menu
.submenus
.Menu
;
9 import ru
.deadsoftware
.cavedroid
.menu
.submenus
.MenuMain
;
10 import ru
.deadsoftware
.cavedroid
.menu
.submenus
.MenuNewGame
;
11 import ru
.deadsoftware
.cavedroid
.misc
.Renderer
;
13 import javax
.inject
.Inject
;
15 import static ru
.deadsoftware
.cavedroid
.misc
.Assets
.*;
18 public class MenuProc
extends Renderer
{
21 private void startNewGame(int gameMode
) {
22 mMainConfig
.getCaveGame().newGame(gameMode
);
25 public void newGameClicked() {
26 mCurrentMenu
= mMenuNewGame
;
29 public void loadGameClicked() {
30 mMainConfig
.getCaveGame().loadGame();
33 public void quitClicked() {
37 public void survivalClicked() {
41 public void creativeClicked() {
45 public void backClicked() {
46 mCurrentMenu
= mMenuMain
;
50 private final MainConfig mMainConfig
;
52 private final MenuMain mMenuMain
;
53 private final MenuNewGame mMenuNewGame
;
55 private Menu mCurrentMenu
;
59 MainConfig mainConfig
,
60 MenuMain
.Factory menuMainFactory
,
61 MenuNewGame
.Factory menuNewGameFactory
63 super(mainConfig
.getWidth(), mainConfig
.getHeight());
65 mMainConfig
= mainConfig
;
67 Input menuInput
= new Input();
69 mMenuMain
= menuMainFactory
.get(getWidth(), getHeight(), this::drawButton
, menuInput
);
70 mMenuNewGame
= menuNewGameFactory
.get(getWidth(), getHeight(), this::drawButton
, menuInput
);
72 mCurrentMenu
= mMenuMain
;
75 private void drawButton(Button button
) {
76 spriter
.draw(textureRegions
.get("button_" + button
.getType()), button
.getX(), button
.getY());
77 setFontColor(255, 255, 255);
78 drawString(button
.getLabel(),
79 (button
.getX() + button
.getWidth() / 2) - (float) getStringWidth(button
.getLabel()) / 2,
80 (button
.getY() + button
.getHeight() / 2) - (float) getStringHeight(button
.getLabel()) / 2);
84 public boolean touchUp(int screenX
, int screenY
, int pointer
, int mb
) {
85 screenX
*= getWidth() / Gdx
.graphics
.getWidth();
86 screenY
*= getHeight() / Gdx
.graphics
.getHeight();
87 for (ObjectMap
.Entry
<String
, Button
> entry
: mCurrentMenu
.getButtons()) {
88 Button button
= entry
.value
;
89 if (button
.getRect().contains(screenX
, screenY
)) {
90 if (button
.getType() > 0) {
100 public void render(float delta
) {
102 mCurrentMenu
.draw(spriter
);
103 drawString("CaveDroid " + CaveGame
.VERSION
, 0,
104 getHeight() - getStringHeight("CaveDroid " + CaveGame
.VERSION
) * 1.5f);
108 public void reset() {
109 mCurrentMenu
= mMenuMain
;