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
.game
.GameScreen
;
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
;
12 import ru
.deadsoftware
.cavedroid
.misc
.states
.AppState
;
13 import ru
.deadsoftware
.cavedroid
.misc
.states
.GameState
;
14 import ru
.deadsoftware
.cavedroid
.misc
.states
.MenuState
;
16 import static ru
.deadsoftware
.cavedroid
.misc
.Assets
.*;
18 public class MenuProc
extends Renderer
{
20 private MenuMain mainMenu
;
21 private MenuNewGame newGameMenu
;
23 private Menu currentMenu
;
25 public MenuProc(int width
) {
26 super(width
, width
* Gdx
.graphics
.getHeight() / Gdx
.graphics
.getWidth());
27 mainMenu
= new MenuMain(getWidth(), getHeight(), this::drawButton
);
28 newGameMenu
= new MenuNewGame(getWidth(), getHeight(), this::drawButton
);
29 currentMenu
= mainMenu
;
32 private void drawButton(Button button
) {
33 spriter
.draw(textureRegions
.get("button_" + button
.getType()), button
.getX(), button
.getY());
34 setFontColor(255, 255, 255);
35 drawString(button
.getLabel(),
36 (button
.getX() + button
.getWidth() / 2) - (float) getStringWidth(button
.getLabel()) / 2,
37 (button
.getY() + button
.getHeight() / 2) - (float) getStringHeight(button
.getLabel()) / 2);
40 private void update() {
41 // switch (CaveGame.MENU_STATE) {
43 // currentMenu = mainMenu;
46 // currentMenu = newGameMenu;
49 // drawString("Generating World...");
50 // CaveGame.APP_STATE = AppState.GAME;
51 // CaveGame.GAME_STATE = GameState.PLAY;
54 // drawString("Saving Game...");
55 // CaveGame.APP_STATE = AppState.MENU;
56 // CaveGame.MENU_STATE = MenuState.MAIN;
62 public boolean touchUp(int screenX
, int screenY
, int pointer
, int mb
) {
63 screenX
*= getWidth() / Gdx
.graphics
.getWidth();
64 screenY
*= getHeight() / Gdx
.graphics
.getHeight();
65 for (ObjectMap
.Entry
<String
, Button
> entry
: currentMenu
.getButtons()) {
66 Button button
= entry
.value
;
67 if (button
.getRect().contains(screenX
, screenY
)) {
68 if (button
.getType() > 0) {
78 public void render(float delta
) {
81 currentMenu
.draw(spriter
);
82 drawString("CaveDroid " + CaveGame
.VERSION
, 0,
83 getHeight() - getStringHeight("CaveDroid " + CaveGame
.VERSION
) * 1.5f);