if (bTile == null || bType.getCategory() != BuildingType.CATEGORY_STATION) {   CalcNearestCity cNC = new CalcNearestCity(w, p.x, p.y); cityName = cNC.findNearestCity();
if (bTile == null || bType.getCategory() != BuildingType.CATEGORY_STATION) { System.err.println("Adding new station");   CalcNearestCity cNC = new CalcNearestCity(w, p.x, p.y); cityName = cNC.findNearestCity();
    public void buildStation(Point p) {        FreerailsTile oldTile = w.getTile(p.x, p.y);        //Only build a station if there is track at the specified point.        if (canBuiltStationHere(p)) {            String cityName;            String stationName;	    BuildingTile bTile = oldTile.getBuildingTile();	    BuildingType bType = null;	    if (bTile != null) {		bType = (BuildingType) w.get(KEY.BUILDING_TYPES,			bTile.getType(), Player.AUTHORITATIVE);		if (bTile == null || bType.getCategory() !=			BuildingType.CATEGORY_STATION) {		    //There isn't already a station here, we need to pick a name		    //and add an entry to the station list.		    CalcNearestCity cNC = new CalcNearestCity(w, p.x, p.y);		    cityName = cNC.findNearestCity();		    VerifyStationName vSN = new VerifyStationName(w, cityName);		    stationName = vSN.getName();		    if (stationName == null) {			//there are no cities, this should never happen			stationName = "Central Station";		    }		    //check the terrain to see if we can build a station on it...		    Move m = AddStationMove.generateMove(w, stationName, p,			    stationOwner, ruleNumber);		    this.moveReceiver.processMove		    (transactionsGenerator.addTransactions(m));		} else {		    //Upgrade an existing station.		    ChangeBuildingMove cbm = new ChangeBuildingMove(p, bTile,			    new BuildingTile(ruleNumber), stationOwner);		    this.moveReceiver.processMove(cbm);		}            }        } else {            System.err.println(                "Can't build station here");        }    }