package nl.tudelft.bw4t.client.controller.percept.processors;
import java.util.List;
import eis.iilang.Function;
import eis.iilang.Identifier;
import eis.iilang.Numeral;
import eis.iilang.Parameter;
import nl.tudelft.bw4t.client.controller.ClientMapController;
import nl.tudelft.bw4t.map.Zone;
public class NegationProcessor implements PerceptProcessor {
@Override
public void process(List<Parameter> parameters,
ClientMapController clientMapController) {
Function function = (Function) parameters.get(0);
if ("occupied".equals(function.getName())) {
List<Parameter> paramOcc = function.getParameters();
Zone zone = clientMapController.getMap().getZone(
((Identifier) paramOcc.get(0)).getValue());
if (zone == null) {
throw new IllegalArgumentException("Unknown zone "
+ paramOcc.get(0));
}
clientMapController.removeOccupiedRoom(zone);
} else if ("holding".equals(function.getName())) {
clientMapController
.getTheBot()
.getHolding()
.remove(((Numeral) function.getParameters().get(0))
.getValue());
} else if ("bumped".equals(function.getName())) {
clientMapController.getTheBot().setCollided(false);
}
}
}