Newer
Older
import model.Extinguisher.Cloud;
import model.Extinguisher.Extinguisher;
import model.Extinguisher.FireFighter;
import model.Extinguisher.MotorizedFireFighter;
import model.Obstacle.Montain;
import model.Obstacle.Obstacle;
import model.Obstacle.Road;
import model.Obstacle.Rocaille;
import util.Position;
import java.util.ArrayList;
import java.util.List;
MEHDI
committed
MEHDI
committed
CLOUD(10),
ROCAILLE(3),
MOTORIZEDFIREFIGHTER(5);
private final int initialNumber;
MEHDI
committed
ModelElement(int initialNumber) {
this.initialNumber = initialNumber;
}
public int getInitialNumber(){
return this.initialNumber;
}
public Element getModelElementClass(Position position){
return switch (this){
case FIRE -> new Fire(position);
case ROAD -> new Road(position);
case FIREFIGHTER -> new FireFighter(position);
case CLOUD -> new Cloud(position);
case MOTORIZEDFIREFIGHTER -> new MotorizedFireFighter(position);
default -> throw new IllegalArgumentException("Unknown ModelElement: " + this);
};
}
MEHDI
committed
public static List<Integer> getInitialNumbers(){
List<Integer>listIninitalNumbers = new ArrayList<>();
for(ModelElement modelElement : ModelElement.values()){
listIninitalNumbers.add(modelElement.getInitialNumber());
}
return listIninitalNumbers;
}
public boolean isObstacle(){
if(this.getModelElementClass(null) instanceof Obstacle){
return true;
}
return false;
}
public boolean isExtinguisher(){
if(this.getModelElementClass(null) instanceof Extinguisher){
return true;
}
return false;
MEHDI
committed
}