LevelModel: Replace Multiple Constructors with Creation Methods

This commit is contained in:
0nlineSam 2024-11-16 14:38:22 +01:00
parent 415abbc47b
commit ed80b6a94c
5 changed files with 21 additions and 17 deletions

2
.idea/misc.xml generated
View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager"> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

View File

@ -86,7 +86,7 @@ public class GameController implements ActionListener {
this.gameView.dispose(); this.gameView.dispose();
if(source.equals("restart")){ 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 = new GameView(this, levelModel);
this.gameView.setVisible(true); this.gameView.setVisible(true);
} }

View File

@ -50,7 +50,7 @@ public class NavigationBetweenViewController implements ActionListener {
case "editor": case "editor":
// New blank model for 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 = new LevelEditorController(this.levelModelForEditor, this);
this.levelEditorController.getLevelEditorView().setVisible(true); this.levelEditorController.getLevelEditorView().setVisible(true);
@ -66,7 +66,7 @@ public class NavigationBetweenViewController implements ActionListener {
// Reinit the levelModelForGame... // Reinit the levelModelForGame...
pickedLevelIdentifier = this.menuView.getLevelIdentifier(); pickedLevelIdentifier = this.menuView.getLevelIdentifier();
this.levelModelForGame = new LevelModel(pickedLevelIdentifier, audioLoadHelper); this.levelModelForGame = LevelModel.createGameLevelModel(pickedLevelIdentifier, audioLoadHelper);
this.gameController = new GameController(levelModelForGame, audioLoadHelper, this); this.gameController = new GameController(levelModelForGame, audioLoadHelper, this);
if (levelEditorController != null) { if (levelEditorController != null) {

View File

@ -66,7 +66,7 @@ public class LevelModel extends Observable implements Runnable {
* @param audioLoadHelper Audio load helper * @param audioLoadHelper Audio load helper
* @param mode Instance mode * @param mode Instance mode
*/ */
public LevelModel(String levelName, AudioLoadHelper audioLoadHelper, String mode) { private LevelModel(String levelName, AudioLoadHelper audioLoadHelper, String mode) {
this.levelName = levelName; this.levelName = levelName;
this.audioLoadHelper = audioLoadHelper; this.audioLoadHelper = audioLoadHelper;
this.gamePaused = false; 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 * Class constructor
* *
* @param levelName Level name * @param levelName Level name
* @param audioLoadHelper Audio load helper * @param audioLoadHelper Audio load helper
*/ */
public LevelModel(String levelName, AudioLoadHelper audioLoadHelper) { public static LevelModel createGameLevelModel(String levelName, AudioLoadHelper audioLoadHelper) {
this(levelName, audioLoadHelper, "game"); return new LevelModel(levelName, audioLoadHelper, "game");
} }
/** /**
@ -105,16 +109,15 @@ public class LevelModel extends Observable implements Runnable {
* *
* @param audioLoadHelper Audio load helper * @param audioLoadHelper Audio load helper
*/ */
public LevelModel(AudioLoadHelper audioLoadHelper) { public static LevelModel createEditorLevelModel(AudioLoadHelper audioLoadHelper) {
this.audioLoadHelper = audioLoadHelper; LevelModel levelModel = new LevelModel(null, audioLoadHelper, "editor");
this.gameRunning = false; levelModel.gameRunning = false;
this.mode = "editor";
this.sizeWidth = 25 + 2; levelModel.sizeWidth = 25 + 2;
this.sizeHeight = 25 + 2; levelModel.sizeHeight = 25 + 2;
// Generate dirt // 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 x = 0; x < this.sizeWidth; x++) {
for (int y = 0; y < this.sizeHeight; y++) { 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;
} }
/** /**

View File

@ -169,10 +169,10 @@ public class LevelEditorView extends JFrame implements Observer {
if(selectedLevelValue != null && !selectedLevelValue.isEmpty()) { if(selectedLevelValue != null && !selectedLevelValue.isEmpty()) {
// Load existing model // Load existing model
pickedLevelModel = new LevelModel(selectedLevelValue, this.nav.getAudioLoadHelper(), "editor"); pickedLevelModel = LevelModel.createExistingLevelModel(selectedLevelValue, this.nav.getAudioLoadHelper(), "editor");
} else { } else {
// New blank model for editor // New blank model for editor
pickedLevelModel = new LevelModel(this.nav.getAudioLoadHelper()); pickedLevelModel = LevelModel.createEditorLevelModel(this.nav.getAudioLoadHelper());
} }
pickedLevelModel.setShowCursor(true); pickedLevelModel.setShowCursor(true);