Skip to content
Snippets Groups Projects
ModelElement.java 1.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • MEHDI's avatar
    MEHDI committed
    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;
    
    public enum ModelElement {
    
      FIREFIGHTER(5),
    
    BELHACHEMI Mehdi's avatar
    BELHACHEMI Mehdi committed
      FIRE(25),
    
    MEHDI's avatar
    MEHDI committed
      ROAD(5),
    
    MEHDI's avatar
    MEHDI committed
      MOUNTAIN(5),
    
      ROCAILLE(3),
    
    BELHACHEMI Mehdi's avatar
    BELHACHEMI Mehdi committed
      MOTORIZEDFIREFIGHTER(3);
    
    
    
        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);
    
    MEHDI's avatar
    MEHDI committed
          case MOUNTAIN -> new Mountain(position);
    
    MEHDI's avatar
    MEHDI committed
          case ROCAILLE -> new Rocaille(position);
    
          case MOTORIZEDFIREFIGHTER -> new MotorizedFireFighter(position);
    
          default -> throw new IllegalArgumentException("Unknown ModelElement: " + this);
          };
    
        }
    
    
    MEHDI's avatar
    MEHDI committed
      public boolean isObstacle() {
        return this.getModelElementClass(null) instanceof Obstacle;
    
    MEHDI's avatar
    MEHDI committed
      }
    
      public boolean isExtinguisher(){
    
    MEHDI's avatar
    MEHDI committed
        return this.getModelElementClass(null) instanceof Extinguisher;