Skip to content
Snippets Groups Projects
ModelElement.java 1.36 KiB
Newer Older
  • Learn to ignore specific revisions
  • LABOUREL Arnaud's avatar
    LABOUREL Arnaud committed
    package model;
    
    MEHDI's avatar
    MEHDI committed
    import model.Extinguisher.Cloud;
    import model.Extinguisher.Extinguisher;
    import model.Extinguisher.FireFighter;
    import model.Extinguisher.MotorizedFireFighter;
    
    MEHDI's avatar
    MEHDI committed
    import model.Obstacle.Mountain;
    
    MEHDI's avatar
    MEHDI committed
    import model.Obstacle.Obstacle;
    import model.Obstacle.Road;
    import model.Obstacle.Rocaille;
    
    public enum ModelElement {
    
      FIREFIGHTER(5),
    
    MEHDI's avatar
    MEHDI committed
      FIRE(20),
    
    MEHDI's avatar
    MEHDI committed
      ROAD(5),
    
    MEHDI's avatar
    MEHDI committed
      MOUNTAIN(5),
    
      ROCAILLE(3),
      MOTORIZEDFIREFIGHTER(5);
    
        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;