updateSupplyRate(type, rate);
supplies[type] += rate / competingStations;
    private void incrementSupplyAndDemand(int i, int j) {	BuildingTile bTile = w.getTile(i, j).getBuildingTile();	if (bTile == null)	    return;        int tileTypeNumber = bTile.getType();        BuildingType buildingType = (BuildingType)w.get(KEY.BUILDING_TYPES,                tileTypeNumber, Player.AUTHORITATIVE);        //Calculate supply.        Production[] production = buildingType.getProduction();        //loop throught the production array and increment         //the supply rates for the station        for (int m = 0; m < production.length; m++) {            int type = production[m].getCargoType();            int rate = production[m].getRate();            //loop through supplies vector and increment the cargo values as required            updateSupplyRate(type, rate);        }        //Now calculate demand.        Consumption[] consumption = buildingType.getConsumption();        for (int m = 0; m < consumption.length; m++) {            int type = consumption[m].getCargoType();            int prerequisite = consumption[m].getPrerequisite();            //The prerequisite is the number tiles of this type that must             //be within the station radius before the station demands the cargo.			            demand[type] += PREREQUISITE_FOR_DEMAND / prerequisite;        }        Conversion[] conversion = buildingType.getConversion();        for (int m = 0; m < conversion.length; m++) {            int type = conversion[m].getInput();            //Only one tile that converts the cargo type is needed for the station to demand the cargo type.				            demand[type] += PREREQUISITE_FOR_DEMAND;            converts[type] = conversion[m].getOutput();        }    }