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
; }
}