if (AtlantisGame.canAfford(buildingType)) {
buildPosition = applyGasBuildingFixIfNeeded(builder, buildPosition, buildingType);
TilePosition buildTilePosition = new TilePosition(
buildPosition.getTileX(), buildPosition.getTileY()
);
<BUG>if (buildTilePosition != null && (!builder.isConstructing() || builder.isIdle())) {

builder.build(buildingType, buildTilePosition, UnitActions.BUILD);</BUG>
builder.setTooltip("Constructing " + buildingType.getShortName());
}

if (AtlantisGame.canAfford(buildingType)) {
buildPosition = applyGasBuildingFixIfNeeded(builder, buildPosition, buildingType);
TilePosition buildTilePosition = new TilePosition(
buildPosition.getTileX(), buildPosition.getTileY()
);
if (buildTilePosition != null && (!builder.isConstructing() || builder.isIdle() ||
AtlantisGame.getTimeFrames() % 30 == 0)) {
builder.build(buildingType, buildTilePosition, UnitActions.BUILD);
builder.setTooltip("Constructing " + buildingType.getShortName());
