diff --git a/core/src/ru/deadsoftware/cavecraft/menu/MenuRenderer.java b/core/src/ru/deadsoftware/cavecraft/menu/MenuRenderer.java
index aa2897db09265c1471b64578ba6cf7c4063ee0b7..da04d469107decbc21aa517a6a0259b75b05fe60 100644 (file)
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.utils.Array;
import ru.deadsoftware.cavecraft.*;
-import ru.deadsoftware.cavecraft.AppState;
+import ru.deadsoftware.cavecraft.game.GameSaver;
+import ru.deadsoftware.cavecraft.game.Items;
import ru.deadsoftware.cavecraft.menu.objects.Button;
+import ru.deadsoftware.cavecraft.misc.AppState;
+import ru.deadsoftware.cavecraft.misc.Assets;
+import ru.deadsoftware.cavecraft.misc.Renderer;
public class MenuRenderer extends Renderer {
- public Array<Button> buttons;
+ public Array<Button> menuMainButtons;
public MenuRenderer(int width) {
super(width,width*((float) GameScreen.getHeight()/GameScreen.getWidth()));
- buttons = new Array<Button>();
- buttons.add(new Button("Play", getWidth()/2-100, getHeight()/4));
- buttons.add(new Button("Quit", getWidth()/2-100, getHeight()/4+30));
+ menuMainButtons = new Array<Button>();
+ menuMainButtons.add(new Button("New game", getWidth()/2-100, getHeight()/4));
+ menuMainButtons.add(new Button("Load game", getWidth()/2-100, getHeight()/4+30,GameSaver.exists()?1:0));
+ menuMainButtons.add(new Button("Quit", getWidth()/2-100, getHeight()/4+60));
}
public void buttonClicked(Button button) {
- if (button.getLabel().toLowerCase().equals("play")) {
- CaveGame.STATE = AppState.GOTO_GAME;
+ if (button.getLabel().toLowerCase().equals("new game")) {
+ CaveGame.STATE = AppState.GOTO_NEW_GAME;
+ } else if (button.getLabel().toLowerCase().equals("load game")) {
+ CaveGame.STATE = AppState.GOTO_LOAD_GAME;
} else if (button.getLabel().toLowerCase().equals("quit")) {
Gdx.app.exit();
}
(button.getY()+button.getHeight()/2)-Assets.getStringHeight(button.getLabel())/2);
}
+ private void drawMenuMain() {
+ for (Button button : menuMainButtons) {
+ if (button.getType()>0) {
+ if (button.getRect().contains(Gdx.input.getX()*getWidth()/GameScreen.getWidth(),
+ Gdx.input.getY()*getHeight()/GameScreen.getHeight()))
+ button.setType(2);
+ else button.setType(1);
+ }
+ drawButton(button);
+ }
+ }
+
+ public void drawLabel(String str) {
+ drawString(str);
+ }
+
@Override
public void render() {
spriteBatch.begin();
for (int x=0; x<=getWidth()/16; x++)
for (int y=0; y<=getHeight()/16; y++) {
- spriteBatch.draw(Items.BLOCKS.get("dirt").getTexture(), x * 16, y * 16);
+ spriteBatch.draw(Assets.blockTextures[Items.BLOCKS.get("dirt").getTexture()], x * 16, y * 16);
spriteBatch.draw(Assets.shade,x*16,y*16);
}
spriteBatch.draw(Assets.gameLogo, getWidth()/2-Assets.gameLogo.getWidth()/2, 0);
- for (Button button : buttons) {
- if (button.getRect().contains(Gdx.input.getX()*getWidth()/GameScreen.getWidth(),
- Gdx.input.getY()*getHeight()/GameScreen.getHeight()) && button.getType()>0) {
- button.setType(2);
- } else {
- button.setType(1);
- }
- drawButton(button);
+
+ switch (CaveGame.STATE) {
+ case MENU_MAIN: drawMenuMain(); break;
+ case GOTO_NEW_GAME: case GOTO_LOAD_GAME: drawLabel("Generating World..."); break;
+ case GOTO_MENU: drawLabel("Saving Game..."); break;
}
+
drawString("CaveCraft "+CaveGame.VERSION,0,
getHeight()-Assets.getStringHeight("CaveCraft "+CaveGame.VERSION)*1.5f);
spriteBatch.end();
+
+ switch (CaveGame.STATE) {
+ case GOTO_NEW_GAME: CaveGame.STATE = AppState.NEW_GAME; break;
+ case GOTO_LOAD_GAME: CaveGame.STATE = AppState.LOAD_GAME; break;
+ case GOTO_MENU: CaveGame.STATE = AppState.SAVE_GAME; break;
+ }
+
}
}