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 }