private void switchToCity(ICity city) { clientEventBus.post(new SwitchCity(city)); }
@Subscribe public void handleSwitchToCity(SwitchCity event) { setCity(event.getToCity().getName()); } }
@Subscribe public void handleSwitchToCity(SwitchCity event) { if (currentCityProxy.isPresent() && !event.getToCity().equals(currentCityProxy.get().getCity())) { final ICityPlayerProxyJFX proxy = currentCityProxy.get(); final ICity city = event.getToCity(); proxy.setCity(city); // Update the ships for that city proxy.getPlayersNavalVessels().clear(); final List<INavigableVessel> ships = proxy.getPlayer().findShips(city); proxy.getPlayersNavalVessels().addAll(ships); if (!ships.isEmpty()) { proxy.activateShip(ships.get(0)); } } }
@Subscribe public void handleShipEntersPort(ShipEntersPortEvent event) { ICity city = event.getCity(); final IShipOwner owner = event.getShip().getOwner(); if (owner instanceof IHumanPlayer && owner.equals(viewState.getPlayer())) { List<INavigableVessel> ships = ((IHumanPlayer)owner).findShips(city); if (ships.size() == 1) { Dimension2D dim = map.getDimension(); scale = 192 / dim.getHeight(); double viewportOffset = imgView.getViewport().getMinX(); Platform.runLater(() -> drawShipPresenceInCity(city, viewportOffset)); if (shouldSwitchToCity(city)) { clientEventBus.post(new SwitchCity(city)); } } } } private boolean shouldSwitchToCity(ICity toCity) {