public static boolean shouldBuild() {
		if (!UnitCounter.weHaveBuildingFinished(UnitTypes.Terran_Engineering_Bay)
				|| Constructing.weAreBuilding(type)) {
			return ShouldBuildCache.cacheShouldBuildInfo(type, false);
		}

		int bunkers = TerranBunker.getNumberOfUnitsCompleted();
		int turrets = getNumberOfUnits();
		// System.out.println("2 --> " + bunkers + " / " + turrets);

		if (bunkers > 0 && bunkers > turrets) {
			MapPoint buildTile = findTileForTurret();
			if (buildTile != null) {
				return ShouldBuildCache.cacheShouldBuildInfo(type, true);
			}
		}

		return ShouldBuildCache.cacheShouldBuildInfo(type, false);
	}