Compare commits
1 Commits
main
...
ueb04-arte
Author | SHA1 | Date | |
---|---|---|---|
![]() |
61e87948ab |
@ -2,17 +2,8 @@ package fr.enssat.BoulderDash.helpers;
|
|||||||
|
|
||||||
import fr.enssat.BoulderDash.exceptions.UnknownModelException;
|
import fr.enssat.BoulderDash.exceptions.UnknownModelException;
|
||||||
|
|
||||||
import fr.enssat.BoulderDash.helpers.ModelConvertHelper;
|
|
||||||
import fr.enssat.BoulderDash.models.ExpandingWallModel;
|
|
||||||
import fr.enssat.BoulderDash.models.RockfordModel;
|
import fr.enssat.BoulderDash.models.RockfordModel;
|
||||||
import fr.enssat.BoulderDash.models.DisplayableElementModel;
|
import fr.enssat.BoulderDash.models.DisplayableElementModel;
|
||||||
import fr.enssat.BoulderDash.models.EmptyModel;
|
|
||||||
import fr.enssat.BoulderDash.models.BrickWallModel;
|
|
||||||
import fr.enssat.BoulderDash.models.BoulderModel;
|
|
||||||
import fr.enssat.BoulderDash.models.DiamondModel;
|
|
||||||
import fr.enssat.BoulderDash.models.DirtModel;
|
|
||||||
import fr.enssat.BoulderDash.models.MagicWallModel;
|
|
||||||
import fr.enssat.BoulderDash.models.SteelWallModel;
|
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
@ -258,8 +249,8 @@ public class LevelLoadHelper {
|
|||||||
* @param lineIndex Position in line (vertical axis)
|
* @param lineIndex Position in line (vertical axis)
|
||||||
*/
|
*/
|
||||||
private DisplayableElementModel constructGridElement(String spriteName, int rowIndex, int lineIndex, boolean convertible) throws UnknownModelException {
|
private DisplayableElementModel constructGridElement(String spriteName, int rowIndex, int lineIndex, boolean convertible) throws UnknownModelException {
|
||||||
ModelConvertHelper modelConvert = new ModelConvertHelper();
|
ModelConvertHelper modelConvert = ModelConvertHelper.getInstance();
|
||||||
DisplayableElementModel element = modelConvert.toModel(spriteName, convertible);
|
DisplayableElementModel element = modelConvert.toModel(spriteName, convertible);
|
||||||
|
|
||||||
// Custom actions?
|
// Custom actions?
|
||||||
switch (spriteName) {
|
switch (spriteName) {
|
||||||
|
@ -16,13 +16,17 @@ import fr.enssat.BoulderDash.models.SteelWallModel;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ModelConvertHelper
|
* ModelConvertHelper
|
||||||
*
|
|
||||||
* Provides model conversion services.
|
* Provides model conversion services.
|
||||||
*
|
*
|
||||||
* @author Valerian Saliou <valerian@valeriansaliou.name>
|
* @author Valerian Saliou <valerian@valeriansaliou.name>
|
||||||
* @since 2015-06-22
|
* @since 2015-06-22
|
||||||
*/
|
*/
|
||||||
public class ModelConvertHelper {
|
public class ModelConvertHelper {
|
||||||
|
/**
|
||||||
|
* Holds the single instance of the class.
|
||||||
|
*/
|
||||||
|
private static ModelConvertHelper instance = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class constructor
|
* Class constructor
|
||||||
*/
|
*/
|
||||||
@ -30,6 +34,18 @@ public class ModelConvertHelper {
|
|||||||
// Nothing done.
|
// Nothing done.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the single instance of the ModelConvertHelper.
|
||||||
|
* Creates the instance if it doesn't exist.
|
||||||
|
*
|
||||||
|
* @return The single instance of the ModelConvertHelper.
|
||||||
|
*/
|
||||||
|
public static synchronized ModelConvertHelper getInstance() {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new ModelConvertHelper();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Gets the model associated to the string
|
* Gets the model associated to the string
|
||||||
*
|
*
|
||||||
@ -37,60 +53,19 @@ public class ModelConvertHelper {
|
|||||||
* @return Model associated to given sprite name
|
* @return Model associated to given sprite name
|
||||||
*/
|
*/
|
||||||
public DisplayableElementModel toModel(String spriteName, boolean isConvertible) throws UnknownModelException {
|
public DisplayableElementModel toModel(String spriteName, boolean isConvertible) throws UnknownModelException {
|
||||||
DisplayableElementModel element;
|
// Instantiates the sprite element matching the given sprite name
|
||||||
|
return switch (spriteName) {
|
||||||
// Instanciates the sprite element matching the given sprite name
|
case "black", "Black" -> new EmptyModel();
|
||||||
switch (spriteName) {
|
case "boulder", "Boulder" -> new BoulderModel(isConvertible);
|
||||||
case "black":
|
case "brickwall", "Brick Wall" -> new BrickWallModel();
|
||||||
case "Black":
|
case "diamond", "Diamond" -> new DiamondModel();
|
||||||
element = new EmptyModel();
|
case "dirt", "Dirt" -> new DirtModel();
|
||||||
break;
|
case "magicwall", "Magic Wall" -> new MagicWallModel();
|
||||||
|
case "rockford", "Rockford" -> new RockfordModel();
|
||||||
case "boulder":
|
case "steelwall", "Steel Wall" -> new SteelWallModel();
|
||||||
case "Boulder":
|
case "expandingwall", "Expanding Wall" -> new ExpandingWallModel();
|
||||||
element = new BoulderModel(isConvertible);
|
default -> throw new UnknownModelException("Unknown model element > " + spriteName);
|
||||||
break;
|
};
|
||||||
|
|
||||||
case "brickwall":
|
|
||||||
case "Brick Wall":
|
|
||||||
element = new BrickWallModel();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "diamond":
|
|
||||||
case "Diamond":
|
|
||||||
element = new DiamondModel();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "dirt":
|
|
||||||
case "Dirt":
|
|
||||||
element = new DirtModel();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "magicwall":
|
|
||||||
case "Magic Wall":
|
|
||||||
element = new MagicWallModel();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "rockford":
|
|
||||||
case "Rockford":
|
|
||||||
element = new RockfordModel();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "steelwall":
|
|
||||||
case "Steel Wall":
|
|
||||||
element = new SteelWallModel();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "expandingwall":
|
|
||||||
case "Expanding Wall":
|
|
||||||
element = new ExpandingWallModel();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
throw new UnknownModelException("Unknown model element > " + spriteName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return element;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -5,16 +5,6 @@ import fr.enssat.BoulderDash.exceptions.UnknownModelException;
|
|||||||
import fr.enssat.BoulderDash.helpers.LevelLoadHelper;
|
import fr.enssat.BoulderDash.helpers.LevelLoadHelper;
|
||||||
import fr.enssat.BoulderDash.helpers.AudioLoadHelper;
|
import fr.enssat.BoulderDash.helpers.AudioLoadHelper;
|
||||||
import fr.enssat.BoulderDash.helpers.ModelConvertHelper;
|
import fr.enssat.BoulderDash.helpers.ModelConvertHelper;
|
||||||
import fr.enssat.BoulderDash.models.DisplayableElementModel;
|
|
||||||
import fr.enssat.BoulderDash.models.RockfordModel;
|
|
||||||
import fr.enssat.BoulderDash.models.GameInformationModel;
|
|
||||||
import fr.enssat.BoulderDash.models.SteelWallModel;
|
|
||||||
import fr.enssat.BoulderDash.models.EmptyModel;
|
|
||||||
import fr.enssat.BoulderDash.models.DiamondModel;
|
|
||||||
import fr.enssat.BoulderDash.models.DoorModel;
|
|
||||||
import fr.enssat.BoulderDash.models.DirtModel;
|
|
||||||
import fr.enssat.BoulderDash.models.ExpandingWallModel;
|
|
||||||
import fr.enssat.BoulderDash.models.CursorModel;
|
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.util.Observable;
|
import java.util.Observable;
|
||||||
@ -48,6 +38,11 @@ public class LevelModel extends Observable implements Runnable {
|
|||||||
private boolean gamePaused;
|
private boolean gamePaused;
|
||||||
// Are we in editor or game mode ?
|
// Are we in editor or game mode ?
|
||||||
private String mode;
|
private String mode;
|
||||||
|
/**
|
||||||
|
* Gets the single instance of the ModelConvertHelper.
|
||||||
|
*/
|
||||||
|
private ModelConvertHelper modelConverter = ModelConvertHelper.getInstance();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sprite animation thread
|
* Sprite animation thread
|
||||||
@ -283,18 +278,15 @@ public class LevelModel extends Observable implements Runnable {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Grab model value
|
|
||||||
ModelConvertHelper modelConverter = new ModelConvertHelper();
|
|
||||||
DisplayableElementModel targetModel;
|
|
||||||
int xPos, yPos;
|
int xPos, yPos;
|
||||||
|
|
||||||
xPos = this.getCursorXPosition();
|
xPos = this.getCursorXPosition();
|
||||||
yPos = this.getCursorYPosition();
|
yPos = this.getCursorYPosition();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
targetModel = modelConverter.toModel(blockValue, false);
|
DisplayableElementModel targetModel = modelConverter.toModel(blockValue, false);
|
||||||
|
|
||||||
// Apply new model in place of cursor
|
// Apply new model in place of cursor
|
||||||
this.groundGrid[xPos + 1][yPos + 1] = targetModel;
|
this.groundGrid[xPos + 1][yPos + 1] = targetModel;
|
||||||
|
|
||||||
// Disable cursor (important)
|
// Disable cursor (important)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user