1 package ru
.deadsoftware
.cavedroid
.menu
;
3 import com
.badlogic
.gdx
.utils
.ObjectMap
;
4 import ru
.deadsoftware
.cavedroid
.CaveGame
;
5 import ru
.deadsoftware
.cavedroid
.GameScreen
;
6 import ru
.deadsoftware
.cavedroid
.menu
.objects
.Button
;
7 import ru
.deadsoftware
.cavedroid
.menu
.submenus
.Menu
;
8 import ru
.deadsoftware
.cavedroid
.menu
.submenus
.MenuMain
;
9 import ru
.deadsoftware
.cavedroid
.menu
.submenus
.MenuNewGame
;
10 import ru
.deadsoftware
.cavedroid
.misc
.Renderer
;
11 import ru
.deadsoftware
.cavedroid
.misc
.states
.AppState
;
12 import ru
.deadsoftware
.cavedroid
.misc
.states
.GameState
;
13 import ru
.deadsoftware
.cavedroid
.misc
.states
.MenuState
;
15 import static ru
.deadsoftware
.cavedroid
.misc
.Assets
.*;
17 public class MenuProc
extends Renderer
{
19 private MenuMain mainMenu
;
20 private MenuNewGame newGameMenu
;
22 private Menu currentMenu
;
24 public MenuProc(int width
) {
25 super(width
, width
* GameScreen
.getHeight() / GameScreen
.getWidth());
26 mainMenu
= new MenuMain(getWidth(), getHeight());
27 newGameMenu
= new MenuNewGame(getWidth(), getHeight());
28 currentMenu
= mainMenu
;
31 private void drawButton(Button button
) {
32 spriter
.draw(textureRegions
.get("button_" + button
.getType()), button
.getX(), button
.getY());
33 setFontColor(255, 255, 255);
34 drawString(button
.getLabel(),
35 (button
.getX() + button
.getWidth() / 2) - (float) getStringWidth(button
.getLabel()) / 2,
36 (button
.getY() + button
.getHeight() / 2) - (float) getStringHeight(button
.getLabel()) / 2);
40 public boolean touchUp(int screenX
, int screenY
, int pointer
, int mb
) {
41 screenX
*= getWidth() / GameScreen
.getWidth();
42 screenY
*= getHeight() / GameScreen
.getHeight();
43 for (ObjectMap
.Entry
<String
, Button
> entry
: currentMenu
.getButtons()) {
44 Button button
= entry
.value
;
45 if (button
.getRect().contains(screenX
, screenY
)) {
46 if (button
.getType() > 0) {
56 public void render() {
58 switch (CaveGame
.MENU_STATE
) {
60 currentMenu
= mainMenu
;
63 currentMenu
= newGameMenu
;
66 drawString("Generating World...");
67 CaveGame
.APP_STATE
= AppState
.GAME
;
68 CaveGame
.GAME_STATE
= GameState
.PLAY
;
71 drawString("Saving Game...");
72 CaveGame
.APP_STATE
= AppState
.MENU
;
73 CaveGame
.MENU_STATE
= MenuState
.MAIN
;
76 currentMenu
.draw(spriter
, this::drawButton
, getWidth(), getHeight());
77 drawString("CaveDroid " + CaveGame
.VERSION
, 0,
78 getHeight() - getStringHeight("CaveDroid " + CaveGame
.VERSION
) * 1.5f);