DEADSOFTWARE

Fix menu
[cavedroid.git] / core / src / ru / deadsoftware / cavecraft / menu / MenuRenderer.java
index 0f8011d2bac8184e66f5ac1433883255e6fcca57..482db61499fe5b5e1b6a902c14f65a944526e09b 100644 (file)
@@ -1,23 +1,58 @@
 package ru.deadsoftware.cavecraft.menu;
 
-import ru.deadsoftware.cavecraft.Assets;
-import ru.deadsoftware.cavecraft.GameScreen;
-import ru.deadsoftware.cavecraft.Items;
-import ru.deadsoftware.cavecraft.Renderer;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.utils.Array;
+import ru.deadsoftware.cavecraft.*;
+import ru.deadsoftware.cavecraft.menu.objects.Button;
 
 public class MenuRenderer extends Renderer {
 
-    public MenuRenderer() {
-        super(480,480*((float) GameScreen.getHeight()/GameScreen.getWidth()));
+    public Array<Button> buttons;
+
+    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));
+    }
+
+    public void buttonClicked(Button button) {
+        if (button.getLabel().toLowerCase().equals("play")) {
+            CaveGame.STATE = GameState.RESTART;
+        } else if (button.getLabel().toLowerCase().equals("quit")) {
+            Gdx.app.exit();
+        }
+    }
+
+    private void drawButton(Button button) {
+        spriteBatch.draw(Assets.menuButton[button.getType()], button.getX(), button.getY());
+        setFontColor(255,255,255);
+        drawString(button.getLabel(),
+                (button.getX()+button.getWidth()/2)-Assets.getStringWidth(button.getLabel())/2,
+                (button.getY()+button.getHeight()/2)-Assets.getStringHeight(button.getLabel())/2);
     }
 
     @Override
     public void render() {
         spriteBatch.begin();
-        for (int x=0; x<=getWidth(); x++)
-            for (int y=0; y<=getHeight(); y++)
-                spriteBatch.draw(Items.BLOCKS.get("dirt").getTexture(),x*16,y*16);
+        for (int x=0; x<=getWidth()/16; x++)
+            for (int y=0; y<=getHeight()/16; y++) {
+                if (y == 0) spriteBatch.draw(Items.BLOCKS.get("grass").getTexture(), x * 16, y * 16);
+                    else spriteBatch.draw(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);
+        }
+        drawString("CaveCraft "+CaveGame.VERSION,0,
+                getHeight()-Assets.getStringHeight("CaveCraft "+CaveGame.VERSION)*1.5f);
         spriteBatch.end();
     }
 }