public int getPotentialProduction(GoodsType goodsType, UnitType unitType) {
        int production = 0;
        TileType tileType = workTile.getType();
        if (isColonyCenterTile()) {
            production = (unitType != null) ? 0
                : (tileType.getPrimaryGoods() != null
                    && tileType.getPrimaryGoods().getType() == goodsType)
                ? getPrimaryProduction().getAmount()
                : (tileType.getSecondaryGoods() != null
                    && tileType.getSecondaryGoods().getType() == goodsType)
                ? getSecondaryProduction().getAmount()
                : 0;
        } else if (workTile.isLand()
            || getColony().hasAbility(Ability.PRODUCE_IN_WATER)) {
            List<Modifier> mods = getProductionModifiers(goodsType, unitType);
            if (!mods.isEmpty()) {
                production = (int)FeatureContainer.applyModifiers(0f,
                    getGame().getTurn(), mods);
            }
        }
        return Math.max(0, production);
    }