protected boolean passable(GridCoordinate tile) {
TreeSet<String> traits = fScene.mapManager().map().traits(tile);
if (traits.contains("nogo") || traits.contains("solid") || traits.contains("water")) return false;
Grunt g = fScene.gridManager().getFirstEntityOfTypeAt(tile, Grunt.class);
if (g != null && g.state() != GruntState.MOVING) return false;
return true;
}
protected boolean diagMove(GridCoordinate tile, GridCoordinate diagDir) {
GridCoordinate a = tile.add(new GridCoordinate(diagDir.x(), 0));