Subversion Repositories AndroidProjects

Rev

Rev 622 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.PonPonChun.gamestates;

import com.badlogic.gdx.Gdx;
import com.gebauz.Bauzoid.menu.Label;
import com.gebauz.Bauzoid.menu.Menu;
import com.gebauz.Bauzoid.menu.MenuItem;
import com.gebauz.Bauzoid.menu.MenuUtil;
import com.gebauz.PonPonChun.game.GameModeLogicEndless;

public class SubMenuEndless implements MainMenuState.SubMenu
{

        // Constants========================================================================================

        // Embedded Types===================================================================================

        // Members==========================================================================================

        private Menu mSubMenu = null;
        private Label mSpeedLabel = null;
        private Label mRowsLabel = null;
        private int mSelectedSpeed = GameModeLogicEndless.DEFAULT_SPEED;
        private int mSelectedRows = GameModeLogicEndless.DEFAULT_ROWS;
       
        private MainMenuState mParentState = null;

        // Methods==========================================================================================

        public SubMenuEndless(MainMenuState parentState)
        {
                mParentState = parentState;    
        }
       
        @Override
        public void init()
        {
                mSubMenu = MenuUtil.createMenuFromFile(mParentState.getGame(), Gdx.files.internal("data/menus/submenu_endless.txt"));
                mSubMenu.init();
                mSubMenu.setEventListener(mParentState);
                mSubMenu.setEnabled(false);
                mSubMenu.setVisible(false);
               
                mSpeedLabel = (Label)mSubMenu.findMenuItem("speed");
                mRowsLabel = (Label)mSubMenu.findMenuItem("rows");
        }
       
        @Override
        public void exit()
        {
                if (mSubMenu != null)
                {
                        mSubMenu.exit();
                        mSubMenu = null;
                }      
        }
       
        @Override
        public void update(float deltaTime)
        {
                mSubMenu.update(deltaTime);
        }
       
        @Override
        public void render()
        {
                mSubMenu.render();
        }
       
        @Override
        public boolean processMessage(Menu menu, MenuItem sender, String command)
        {
                if (command.equalsIgnoreCase("speed_up"))
                {
                        if (mSelectedSpeed < GameModeLogicEndless.MAX_SPEED)
                        {
                                mSelectedSpeed++;
                                updateSpeedRows();
                        }
                }
                else if (command.equalsIgnoreCase("speed_down"))
                {
                        if (mSelectedSpeed > GameModeLogicEndless.MIN_SPEED)
                        {
                                mSelectedSpeed--;
                                updateSpeedRows();
                        }
                }
                else if (command.equalsIgnoreCase("rows_up"))
                {
                        if (mSelectedRows < GameModeLogicEndless.MAX_ROWS)
                        {
                                mSelectedRows++;
                                updateSpeedRows();
                        }
                }
                else if (command.equalsIgnoreCase("rows_down"))
                {
                        if (mSelectedRows > GameModeLogicEndless.MIN_ROWS)
                        {
                                mSelectedRows--;
                                updateSpeedRows();
                        }
                }
                else if (command.equalsIgnoreCase("start_endless"))
                {
                        String stateParam = String.format("%d:%d", mSelectedSpeed, mSelectedRows);
                        getParentState().getGameStateManager().switchTo(com.gebauz.PonPonChun.gamestates.EndlessState.class, stateParam);
                }
                else
                {
                        return false;
                }
                return true;
        }
       
        public void open()
        {
                mSubMenu.setEnabled(true);
                mSubMenu.setVisible(true);
                //mSubMenuEndless.startFadeIn();
               
                mSelectedSpeed = GameModeLogicEndless.DEFAULT_SPEED;
                mSelectedRows = GameModeLogicEndless.DEFAULT_ROWS;
                updateSpeedRows();
        }
       
        public void updateSpeedRows()
        {
                mRowsLabel.getTextElement().setCaption(String.format("%02d", mSelectedRows));
                mSpeedLabel.getTextElement().setCaption(String.format("%02d", mSelectedSpeed));
        }

        // Getters/Setters==================================================================================

        public MainMenuState getParentState() { return mParentState; }
       
        public Menu getMenu() { return mSubMenu; }
       
}