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();
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
;
58 public MenuProc(MainConfig mainConfig
) {
59 super(mainConfig
.getWidth(), mainConfig
.getHeight());
61 mMainConfig
= mainConfig
;
63 Input menuInput
= new Input();
65 mMenuMain
= new MenuMain(getWidth(), getHeight(), this::drawButton
, mainConfig
, menuInput
);
66 mMenuNewGame
= new MenuNewGame(getWidth(), getHeight(), this::drawButton
, mainConfig
, menuInput
);
68 mCurrentMenu
= mMenuMain
;
71 private void drawButton(Button button
) {
72 spriter
.draw(textureRegions
.get("button_" + button
.getType()), button
.getX(), button
.getY());
73 setFontColor(255, 255, 255);
74 drawString(button
.getLabel(),
75 (button
.getX() + button
.getWidth() / 2) - (float) getStringWidth(button
.getLabel()) / 2,
76 (button
.getY() + button
.getHeight() / 2) - (float) getStringHeight(button
.getLabel()) / 2);
80 public boolean touchUp(int screenX
, int screenY
, int pointer
, int mb
) {
81 screenX
*= getWidth() / Gdx
.graphics
.getWidth();
82 screenY
*= getHeight() / Gdx
.graphics
.getHeight();
83 for (ObjectMap
.Entry
<String
, Button
> entry
: mCurrentMenu
.getButtons()) {
84 Button button
= entry
.value
;
85 if (button
.getRect().contains(screenX
, screenY
)) {
86 if (button
.getType() > 0) {
96 public void render(float delta
) {
98 mCurrentMenu
.draw(spriter
);
99 drawString("CaveDroid " + CaveGame
.VERSION
, 0,
100 getHeight() - getStringHeight("CaveDroid " + CaveGame
.VERSION
) * 1.5f);
104 public void reset() {
105 mCurrentMenu
= mMenuMain
;