diff --git a/.idea/misc.xml b/.idea/misc.xml index 639900d1..a6e1098c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameController.java index 2a921c9c..ae1df524 100644 --- a/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameController.java +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameController.java @@ -86,7 +86,7 @@ public class GameController implements ActionListener { this.gameView.dispose(); if(source.equals("restart")){ - this.levelModel = new LevelModel(this.navigationBetweenViewController.getPickedLevelIdentifier(), audioLoadHelper); + this.levelModel = LevelModel.createGameLevelModel(this.navigationBetweenViewController.getPickedLevelIdentifier(), audioLoadHelper); this.gameView = new GameView(this, levelModel); this.gameView.setVisible(true); } diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.java index db190f48..c466df16 100644 --- a/boulder-dash/src/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.java +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.java @@ -50,7 +50,7 @@ public class NavigationBetweenViewController implements ActionListener { case "editor": // New blank model for editor - this.levelModelForEditor = new LevelModel(audioLoadHelper); + this.levelModelForEditor = LevelModel.createEditorLevelModel(audioLoadHelper); this.levelEditorController = new LevelEditorController(this.levelModelForEditor, this); this.levelEditorController.getLevelEditorView().setVisible(true); @@ -66,7 +66,7 @@ public class NavigationBetweenViewController implements ActionListener { // Reinit the levelModelForGame... pickedLevelIdentifier = this.menuView.getLevelIdentifier(); - this.levelModelForGame = new LevelModel(pickedLevelIdentifier, audioLoadHelper); + this.levelModelForGame = LevelModel.createGameLevelModel(pickedLevelIdentifier, audioLoadHelper); this.gameController = new GameController(levelModelForGame, audioLoadHelper, this); if (levelEditorController != null) { diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/LevelModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/LevelModel.java index cbb5415a..ddc5eedb 100644 --- a/boulder-dash/src/fr/enssat/BoulderDash/models/LevelModel.java +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/LevelModel.java @@ -66,7 +66,7 @@ public class LevelModel extends Observable implements Runnable { * @param audioLoadHelper Audio load helper * @param mode Instance mode */ - public LevelModel(String levelName, AudioLoadHelper audioLoadHelper, String mode) { + private LevelModel(String levelName, AudioLoadHelper audioLoadHelper, String mode) { this.levelName = levelName; this.audioLoadHelper = audioLoadHelper; this.gamePaused = false; @@ -90,14 +90,18 @@ public class LevelModel extends Observable implements Runnable { } } + public static LevelModel createExistingLevelModel(String levelName, AudioLoadHelper audioLoadHelper, String mode) { + return new LevelModel(levelName, audioLoadHelper, mode); + } + /** * Class constructor * * @param levelName Level name * @param audioLoadHelper Audio load helper */ - public LevelModel(String levelName, AudioLoadHelper audioLoadHelper) { - this(levelName, audioLoadHelper, "game"); + public static LevelModel createGameLevelModel(String levelName, AudioLoadHelper audioLoadHelper) { + return new LevelModel(levelName, audioLoadHelper, "game"); } /** @@ -105,16 +109,15 @@ public class LevelModel extends Observable implements Runnable { * * @param audioLoadHelper Audio load helper */ - public LevelModel(AudioLoadHelper audioLoadHelper) { - this.audioLoadHelper = audioLoadHelper; - this.gameRunning = false; - this.mode = "editor"; + public static LevelModel createEditorLevelModel(AudioLoadHelper audioLoadHelper) { + LevelModel levelModel = new LevelModel(null, audioLoadHelper, "editor"); + levelModel.gameRunning = false; - this.sizeWidth = 25 + 2; - this.sizeHeight = 25 + 2; + levelModel.sizeWidth = 25 + 2; + levelModel.sizeHeight = 25 + 2; // Generate dirt - this.groundGrid = new DisplayableElementModel[this.sizeWidth][this.sizeHeight]; + levelModel.groundGrid = new DisplayableElementModel[levelModel.sizeWidth][levelModel.sizeHeight]; for (int x = 0; x < this.sizeWidth; x++) { for (int y = 0; y < this.sizeHeight; y++) { @@ -122,7 +125,8 @@ public class LevelModel extends Observable implements Runnable { } } - this.createLimits(); + levelModel.createLimits(); + return levelModel; } /** diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorView.java index d6e5557a..4f85de46 100644 --- a/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorView.java +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorView.java @@ -169,10 +169,10 @@ public class LevelEditorView extends JFrame implements Observer { if(selectedLevelValue != null && !selectedLevelValue.isEmpty()) { // Load existing model - pickedLevelModel = new LevelModel(selectedLevelValue, this.nav.getAudioLoadHelper(), "editor"); + pickedLevelModel = LevelModel.createExistingLevelModel(selectedLevelValue, this.nav.getAudioLoadHelper(), "editor"); } else { // New blank model for editor - pickedLevelModel = new LevelModel(this.nav.getAudioLoadHelper()); + pickedLevelModel = LevelModel.createEditorLevelModel(this.nav.getAudioLoadHelper()); } pickedLevelModel.setShowCursor(true);