Select Git revision
Forked from
COUETOUX Basile / FirefighterStarter
11 commits ahead of the upstream repository.
-
BACHTARZI Imed eddine authoredBACHTARZI Imed eddine authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Fire.java 1.39 KiB
package model;
import util.Position;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
public abstract class Fire implements Element,Updatable{
int delay;
ModelElement type;
Position position;
static Behavior behavior=new FireBehavior();
Map<ModelElement,ModelElement> FireDictionary=new HashMap<>(); //.put(MAISON,FEUMAISON)
public Fire(int delay, ModelElement type, Position position) {
this.delay = delay;
this.type = type;
this.position = position;
}
@Override
public Position getPosition() {
return position;
}
@Override
public ModelElement getType() {
return type;
}
private Fire getNewFireByType(BoardData boardData,Position position){
List<ModelElement> s = boardData.getCell(position).Content.stream().map(x -> x.getType()).toList();
for(Map.Entry<ModelElement,ModelElement> entry: FireDictionary.entrySet()){
if (s.contains(entry.getKey())) return (Fire) entry.getValue().instanciate(position);
}
return new StandardFire(position);
}
@Override
public List<Position> updateSelf(BoardData boardData) {
List<Position> positions=behavior.update(boardData,this);
for (Position p:positions) {
boardData.addElement(new StandardFire(p));
}
return positions;
}
}