Select Git revision
FirefighterBoard.java
Forked from
COUETOUX Basile / FirefighterStarter
Source project has a limited visibility.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ModelElement.java 1.44 KiB
package model.Elements;
import model.Elements.Extinguisher.Cloud;
import model.Elements.Extinguisher.Extinguisher;
import model.Elements.Extinguisher.FireFighter;
import model.Elements.Extinguisher.MotorizedFireFighter;
import model.Elements.Obstacle.Mountain;
import model.Elements.Obstacle.Obstacle;
import model.Elements.Obstacle.Road;
import model.Elements.Obstacle.Rocaille;
import util.Position;
public enum ModelElement {
FIREFIGHTER(5),
FIRE(25),
CLOUD(10),
ROAD(5),
MOUNTAIN(5),
ROCAILLE(3),
MOTORIZEDFIREFIGHTER(3);
private final int initialNumber;
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 MOUNTAIN -> new Mountain(position);
case ROCAILLE -> new Rocaille(position);
case MOTORIZEDFIREFIGHTER -> new MotorizedFireFighter(position);
default -> throw new IllegalArgumentException("Unknown ModelElement: " + this);
};
}
public boolean isObstacle() {
return this.getModelElementClass(null) instanceof Obstacle;
}
public boolean isExtinguisher(){
return this.getModelElementClass(null) instanceof Extinguisher;
}
}