/*
* Copyright (c) 2012. HappyDroids LLC, All rights reserved.
*/
package com.happydroids.droidtowers.gamestate.actions;
import com.badlogic.gdx.utils.Array;
import com.happydroids.droidtowers.entities.GridObject;
import com.happydroids.droidtowers.grid.GameGrid;
import com.happydroids.droidtowers.math.GridPoint;
public class DesirabilityCalculator extends GameGridAction {
private float[][] noiseLevels;
private int gridSizeX;
private int gridSizeY;
public DesirabilityCalculator(GameGrid gameGrid, float roomUpdateFrequency) {
super(gameGrid, roomUpdateFrequency);
}
@Override
public void run() {
gameGrid.positionCache().updateNoiseLevels();
Array<GridObject> rooms = gameGrid.getObjects();
if (rooms != null) {
for (int i = 0, roomsSize = rooms.size; i < roomsSize; i++) {
GridObject gridObject = rooms.get(i);
float maxNoiseLevel = 0f;
float maxCrimeLevel = 0f;
GridPoint position = gridObject.getPosition();
GridPoint size = gridObject.getSize();
for (int x = position.x; x < position.x + size.x; x++) {
for (int y = position.y; y < position.y + size.y; y++) {
maxNoiseLevel = Math.max(maxNoiseLevel, gameGrid.positionCache().getPosition(x, y).getNoiseLevel());
maxCrimeLevel = Math.max(maxCrimeLevel, gameGrid.positionCache().getPosition(x, y).getCrimeLevel());
}
}
gridObject.setSurroundingNoiseLevel(maxNoiseLevel);
gridObject.setSurroundingCrimeLevel(maxCrimeLevel);
}
}
}
}