Coverage Summary for Class: QuitConfirmationScreen (com.mygdx.game.UI)

Class Method, % Line, %
QuitConfirmationScreen 0% (0/9) 0% (0/49)
QuitConfirmationScreen$1 0% (0/2) 0% (0/2)
QuitConfirmationScreen$2 0% (0/2) 0% (0/2)
QuitConfirmationScreen$3 0% (0/2) 0% (0/5)
QuitConfirmationScreen$4 0% (0/2) 0% (0/2)
Total 0% (0/17) 0% (0/60)


1 package com.mygdx.game.UI; 2  3 import com.badlogic.gdx.Gdx; 4 import com.badlogic.gdx.Input; 5 import com.badlogic.gdx.scenes.scene2d.Actor; 6 import com.badlogic.gdx.scenes.scene2d.ui.Image; 7 import com.badlogic.gdx.scenes.scene2d.ui.Label; 8 import com.badlogic.gdx.scenes.scene2d.ui.Table; 9 import com.badlogic.gdx.scenes.scene2d.ui.TextButton; 10 import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; 11 import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; 12 import com.mygdx.game.Components.Pirate; 13 import com.mygdx.game.Entitys.Player; 14 import com.mygdx.game.Managers.DifficultyManager; 15 import com.mygdx.game.Managers.GameManager; 16 import com.mygdx.game.Managers.ResourceManager; 17 import com.mygdx.game.PirateGame; 18 import com.mygdx.utils.SaveObject; 19  20 import javax.swing.*; 21 import java.awt.*; 22 import java.io.File; 23  24 import static com.mygdx.utils.Constants.VIEWPORT_HEIGHT; 25  26 /**NEW 27  * Screen to confirm quitting. 28  */ 29 public class QuitConfirmationScreen extends Page { 30  public QuitConfirmationScreen(PirateGame parent) { 31  super(parent); 32  } 33  34  /** 35  * Called every frame calls all other functions that need to be called every frame by rasing events and update methods 36  * 37  * @param delta delta time 38  */ 39  @Override 40  public void render(float delta) { 41  // show game screen if ESC key is pressed 42  if (Gdx.input.isKeyJustPressed(Input.Keys.ESCAPE)) { 43  parent.setScreen(parent.game); 44  } 45  super.render(delta); 46  } 47  48  @Override 49  protected void update() { 50  super.update(); 51  } 52  53  54  /** 55  * Create menu widgets such as start button, labels, etc. 56  */ 57  @Override 58  protected void CreateActors() { 59  Table t = new Table(); 60  t.setFillParent(true); 61  62  float space = VIEWPORT_HEIGHT* 0.05f; // gap between rows in table 63  64  t.setBackground(new TextureRegionDrawable(ResourceManager.getTexture("menuBG.jpg"))); 65  Label l = new Label("Ending Game", parent.skin); 66  l.setFontScale(2); 67  t.add(l).top().spaceBottom(space * 0.5f); 68  t.row(); 69  70  t.row(); 71  t.add(new Label("Are you sure you want to quit?", parent.skin)).spaceBottom(10); 72  t.row(); 73  TextButton quit = new TextButton("Quit", parent.skin); 74  quit.addListener(new ChangeListener() { 75  @Override 76  public void changed(ChangeEvent event, Actor actor) { 77  parent.setScreen(parent.end); 78  } 79  }); 80  t.add(quit).top().size(100, 25).spaceBottom(space); 81  t.row(); 82  TextButton SaveBtn = new TextButton("Save", parent.skin); 83  SaveBtn.addListener(new ChangeListener() { 84  @Override 85  public void changed(ChangeEvent event, Actor actor) { 86  showSaveMenu(); 87  } 88  }); 89  t.add(SaveBtn).top().size(100, 25).spaceBottom(space); 90  t.row(); 91  TextButton RestartBtn = new TextButton("Restart", parent.skin); 92  RestartBtn.addListener(new ChangeListener() { 93  @Override 94  public void changed(ChangeEvent event, Actor actor) { 95  SaveObject.readXML("restart.xml"); 96  DifficultyManager.SelectEasy(); 97  parent.setScreen(parent.game); 98  //to be removed upon implementation in save 99  GameManager.getPlayer().updateHealth(); 100  /* 101  parent.game.dispose(); 102  int id_map = ResourceManager.addTileMap("Map.tmx"); 103  parent.game = new GameScreen(parent, id_map); 104  parent.setScreen(parent.menu); 105  106  */ 107  } 108  }); 109  t.add(RestartBtn).top().size(100, 25).spaceBottom(space); 110  t.row(); 111  TextButton back = new TextButton("Return", parent.skin); 112  back.addListener(new ChangeListener() { 113  @Override 114  public void changed(ChangeEvent event, Actor actor) { 115  parent.setScreen(parent.game); 116  } 117  }); 118  t.add(back).top().size(100, 25).spaceBottom(space); 119  120  t.top(); 121  122  actors.add(t); 123  } 124  125  126  @Override 127  public void show() { 128  super.show(); 129  } 130  131  @Override 132  public void hide() { 133  super.hide(); 134  } 135  136  /** 137  * Used to resize the background texture to the correct size to fill the window 138  * @param width new dim x width of the screen 139  * @param height new dom y height of the screen 140  */ 141  @Override 142  public void resize(int width, int height) { 143  super.resize(width, height); 144  Table t = (Table) actors.get(0); 145  t.setBackground(new TextureRegionDrawable(ResourceManager.getTexture("shopBG.jpg"))); // prevent the bg being stretched 146  } 147  148  private void showSaveMenu(){ 149  if(System.getProperty("os.name").contains("Mac")){ 150  //Choose A 151  SaveObject.writeXMl("mac_save.xml"); 152  } 153  else{ 154  JFileChooser fileChooser = new JFileChooser(); 155  156  int value = fileChooser.showSaveDialog(null); 157  if (value == JFileChooser.APPROVE_OPTION){ 158  File selected= fileChooser.getSelectedFile(); 159  160  SaveObject.writeXMl(selected.getAbsolutePath()); 161  //to be removed upon implementation in save 162  DifficultyManager.SelectEasy(); 163  parent.setScreen(parent.game); 164  //to be removed upon implementation in save 165  GameManager.getPlayer().updateHealth(); 166  167  } 168  169  } 170  171  172  } 173 }