package org.test.towerdefense;
import loon.geom.Vector2f;
import loon.utils.timer.GameTime;
public class GamePausedScreen extends MenuScreen {
private MainGame game;
private GamePausedSpriteWithText gamePausedSpriteWithText;
public GamePausedScreen(MainGame game, ScreenType prevScreen) {
super("", game, prevScreen);
this.game = game;
super.setTransitionOnTime(0f);
super.setTransitionOffTime(0f);
super.setIsPopup(true);
super.setScreenType(ScreenType.GamePausedScreen);
Vector2f vector = new Vector2f(140f, 42f);
MenuEntry item = new MenuEntry("");
item.setuseButtonBackground(false);
item.setPosition(new Vector2f(95f, 370f));
item.setnoButtonBackgroundSize(vector);
MenuEntry entry2 = new MenuEntry("");
entry2.setuseButtonBackground(false);
entry2.setPosition(new Vector2f(95f, 250f));
entry2.setnoButtonBackgroundSize(vector);
MenuEntry entry3 = new MenuEntry("");
entry3.setuseButtonBackground(false);
entry3.setPosition(new Vector2f(95f, 310f));
entry3.setnoButtonBackgroundSize(vector);
item.Selected = new GameEvent() {
@Override
public void invoke(MenuEntry comp) {
ShowMainMenuSelected();
}
};
entry2.Selected = new GameEvent() {
@Override
public void invoke(MenuEntry comp) {
ResumeSelected();
}
};
entry3.Selected = new GameEvent() {
@Override
public void invoke(MenuEntry comp) {
RestartSelected();
}
};
super.getMenuEntries().add(item);
super.getMenuEntries().add(entry2);
super.getMenuEntries().add(entry3);
this.gamePausedSpriteWithText = new GamePausedSpriteWithText(game);
this.gamePausedSpriteWithText.setDrawOrder(100);
game.Components().add(this.gamePausedSpriteWithText);
}
private void Exit() {
if (this.gamePausedSpriteWithText != null) {
this.game.Components().remove(this.gamePausedSpriteWithText);
}
}
@Override
protected void OnCancel() {
this.Resume();
}
private void RestartSelected() {
this.Exit();
super.getScreenManager().AddScreen(
new ConfirmScreen(this.game, ScreenType.GamePausedScreen,
ConfirmType.RestartGame));
}
private void Resume() {
this.Exit();
super.ExitScreen();
this.game.getGameplayScreen().GameResumed();
}
private void ResumeSelected() {
this.Resume();
}
private void ShowMainMenuSelected() {
this.Exit();
super.getScreenManager().AddScreen(
new ConfirmScreen(this.game, ScreenType.GamePausedScreen,
ConfirmType.ExitToMainMenu));
}
@Override
public void Update(GameTime gameTime, boolean otherScreenHasFocus,
boolean coveredByOtherScreen) {
super.Update(gameTime, otherScreenHasFocus, coveredByOtherScreen);
}
}