package model; import java.util.ArrayList; import java.util.List; import javafx.scene.paint.Color; import util.Position; public class Square { private List<Entity> entities; private Position position; public Square(Position position){ this.entities = new ArrayList<Entity>(); this.position = position; } public Square(Position position, Entity entity){ this.entities = new ArrayList<Entity>(); this.entities.add(entity); this.position = position; } public List<Entity> getEntities(){ return this.entities; } public Position getPosition(){ return this.position; } public void addEntity(Entity entity){ entities.add(entity); } public void removeEntity(Entity entity){ entities.remove(entity); } public void setEntities(List<Entity> entities){ this.entities = entities; } public boolean isEmpty(){ return entities.isEmpty() ||(entities.size() == 1 && entities.get(0) instanceof EmptyEntity); } public int getMinimalAge(){ int minimalAge = 0; for(Entity e : entities){ if(e.getAge() < minimalAge){ minimalAge = e.getAge(); } } return minimalAge; } public int getMaxAge(){ int maxAge = 0; for(Entity e : entities){ if(e.getAge() > maxAge){ maxAge = e.getAge(); } } return maxAge; } public void incrementAllAges(){ for(Entity e : entities){ e.incrementAge(); } } public Color getViewColor(){ if (entities.isEmpty()) { return Color.WHITE; } else { int sumRed = 0, sumGreen = 0, sumBlue = 0; for (Entity e : entities) { Color color = e.getViewColor(); if (color != null) { if(sumRed == 255 & sumGreen == 255 & sumBlue == 255){ continue; } sumRed += color.getRed(); sumGreen += color.getGreen(); sumBlue += color.getBlue(); } } int count = entities.size(); sumRed /= count; sumGreen /= count; sumBlue /= count; Color color = new Color((double)(sumRed),(double)(sumGreen),(double)(sumBlue), 1.0); return color; } } }