/** * Draw a vessel on the map with default orientation (faceing to the west) * @param vessel to draw on the map */ private void drawShipOnMap(INavigableVessel vessel) { List<Point2D> path = vessels.getTravellingVessel(vessel).getCalculatablePath(); addNewShipIconToCanvas(vessel, path); }
@Subscribe public void handleShipReachesDestination(ShipArrivesAtDestinationEvent event) { INavigableVessel vessel = event.getShip(); TravellingVessel ship = vessels.getTravellingVessel(vessel); final Path drawablePath = ship.getDrwawablePath(); if (drawablePath != null) { Platform.runLater(() -> shipCanvas.getChildren().remove(drawablePath)); } } @Subscribe
@Subscribe public void handleShipNearsPort(ShipNearingPortEvent event) { INavigableVessel vessel = event.getShip(); TravellingVessel ship = vessels.getTravellingVessel(vessel); if (ship != null) { if (vessels.getTravellingVessel(vessel) != null) { threadExecution.execute(() -> removeVesselFromView(vessel)); if (isPlayersVessel(vessel)) { Set<INavigableVessel> noLongerVisible = removeVisibleVessel(vessel); for (INavigableVessel v : noLongerVisible) { logger.debug("The ship {} is no longer visible", v.getName()); } Platform.runLater(() -> removeNoLongerVisibleVessels(noLongerVisible)); } } } else { logger.debug("Ship ship nearing port for {} as ship is not a traveling vessel", vessel.getName()); } }
@Subscribe public void handleShipPositionUpdate(ShipPositionUpdateEvent event) { INavigableVessel vessel = event.getShip(); TravellingVessel ship = vessels.getTravellingVessel(vessel); if (vessel.getOwner().equals(viewState.getPlayer())) { Preconditions.checkNotNull(ship, "The travelling vessel instance for " + vessel.getName() + " of " + vessel.getOwner().getName() + " " + vessel.getOwner().getLastName() + " could not be found"); } if (ship != null) { threadExecution.execute(() -> { if (ship != null) { // The ship is traveling ShipIcon view = findShipIcon(vessel); if (view != null) { // The ship is visible view.updatePosition(); } else { logger.trace("Failed to find vessel with uuid {}", vessel.getUuid()); } } handleVisibilityShips(vessel); }); } else { logger.debug("Ship ship update for {} as ship is not a traveling vessel", vessel.getName()); } }
TravellingVessel traveling = vessels.getTravellingVessel(vessel); if (isVesselVisible(vessel)) { removeVesselFromView(vessel);