diff --git a/src/fr/enssat/BoulderDash/controllers/AbstractNavController.java b/src/fr/enssat/BoulderDash/controllers/AbstractNavController.java new file mode 100644 index 00000000..7ae5cb96 --- /dev/null +++ b/src/fr/enssat/BoulderDash/controllers/AbstractNavController.java @@ -0,0 +1,14 @@ +package fr.enssat.BoulderDash.controllers; + +import fr.enssat.BoulderDash.models.LevelModel; + +import java.awt.event.ActionListener; + +public abstract class AbstractNavController extends AbstractLevelController implements ActionListener { + protected NavigationBetweenViewController nav; + + public AbstractNavController(LevelModel levelModel, NavigationBetweenViewController nav) { + super(levelModel); + this.nav = nav; + } +} diff --git a/src/fr/enssat/BoulderDash/controllers/GameController.java b/src/fr/enssat/BoulderDash/controllers/GameController.java index 79e37f9f..cb013fd0 100644 --- a/src/fr/enssat/BoulderDash/controllers/GameController.java +++ b/src/fr/enssat/BoulderDash/controllers/GameController.java @@ -19,27 +19,24 @@ import static fr.enssat.BoulderDash.helpers.AudioLoadHelper.AUDIO_LOAD_HELPER; * @author Colin Leverger * @since 2015-06-19 */ -public class GameController extends AbstractLevelController implements ActionListener { +public class GameController extends AbstractNavController { private boolean firstClickOnPause; private MenuView menuView; private GameView gameView; - private NavigationBetweenViewController navigationBetweenViewController; /** * Class constructor * * @param levelModel Level model - * @param navigationBetweenViewController + * @param nav */ - public GameController(LevelModel levelModel, NavigationBetweenViewController navigationBetweenViewController) { - super(levelModel); + public GameController(LevelModel levelModel, NavigationBetweenViewController nav) { + super(levelModel, nav); this.firstClickOnPause = true; - this.navigationBetweenViewController = navigationBetweenViewController; - this.gameView = new GameView(this, levelModel); - this.menuView = navigationBetweenViewController.getMenuView(); + this.menuView = nav.getMenuView(); AUDIO_LOAD_HELPER.stopMusic(); AUDIO_LOAD_HELPER.playSound("new"); @@ -84,7 +81,7 @@ public class GameController extends AbstractLevelController implements ActionLis this.gameView.dispose(); if (source.equals("restart")) { - this.levelModel = new LevelModel(this.navigationBetweenViewController.getPickedLevelIdentifier()); + this.levelModel = new LevelModel(this.nav.getPickedLevelIdentifier()); this.gameView = new GameView(this, levelModel); this.gameView.setVisible(true); } diff --git a/src/fr/enssat/BoulderDash/controllers/LevelEditorController.java b/src/fr/enssat/BoulderDash/controllers/LevelEditorController.java index 2f2130cc..1e3ef664 100644 --- a/src/fr/enssat/BoulderDash/controllers/LevelEditorController.java +++ b/src/fr/enssat/BoulderDash/controllers/LevelEditorController.java @@ -22,20 +22,18 @@ import static fr.enssat.BoulderDash.helpers.AudioLoadHelper.AUDIO_LOAD_HELPER; * @author Valerian Saliou * @since 2015-06-19 */ -public class LevelEditorController extends AbstractLevelController implements ActionListener { +public class LevelEditorController extends AbstractNavController { private LevelEditorView levelEditorView; - private NavigationBetweenViewController nav; /** - * Class constructor' + * Class constructor * * @param levelModel Level model */ public LevelEditorController(LevelModel levelModel, NavigationBetweenViewController nav) { - super(levelModel); + super(levelModel, nav); this.levelModel.setShowCursor(true); - this.nav = nav; AUDIO_LOAD_HELPER.stopMusic(); this.levelEditorView = new LevelEditorView(this, levelModel, nav);