From f2253e6801563922d7fa0f0064b04b970ec74676 Mon Sep 17 00:00:00 2001 From: Torrie Fischer Date: Tue, 15 Jun 2021 13:06:09 -0700 Subject: [PATCH] dynmap: update dynmap to fix borders, show costs on routes, and use a special icon for hubs --- .../us/camin/regions/DynmapEventRelay.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/main/java/us/camin/regions/DynmapEventRelay.java b/src/main/java/us/camin/regions/DynmapEventRelay.java index 540299c..cfce48c 100644 --- a/src/main/java/us/camin/regions/DynmapEventRelay.java +++ b/src/main/java/us/camin/regions/DynmapEventRelay.java @@ -91,17 +91,10 @@ public class DynmapEventRelay implements Listener { log.info("Could not generate polygon for region " + region.name()); continue; } - boolean isFrontier = geom.isFrontier(region); - if (!isFrontier) { - AreaMarker marker = m_borderSet.createAreaMarker(null, region.name(), false, world.getName(), polygon.x, polygon.z, false); - marker.setFillStyle(0.7, region.color().getColor().asRGB()); - marker.setLineStyle(2, 0.8, region.color().getColor().asRGB()); - m_borderMarkers.get(world).add(marker); - } else { - PolyLineMarker marker = m_borderSet.createPolyLineMarker(null, region.name(), false, world.getName(), polygon.x, polygon.y, polygon.z, false); - marker.setLineStyle(2, 0.5, region.color().getColor().asRGB()); - m_borderMarkers.get(world).add(marker); - } + AreaMarker marker = m_borderSet.createAreaMarker(null, region.name(), false, world.getName(), polygon.x, polygon.z, false); + marker.setFillStyle(0.7, region.color().getColor().asRGB()); + marker.setLineStyle(2, 0.8, region.color().getColor().asRGB()); + m_borderMarkers.get(world).add(marker); // Add a line between each region, for teleportations double thickness = Math.max(1, Math.log(geom.neighbors(region).size()) * 2.75); @@ -109,9 +102,13 @@ public class DynmapEventRelay implements Listener { double x[] = { neighbor.location().getBlockX(), region.location().getBlockX() }; double y[] = { 64, 64 }; double z[] = { neighbor.location().getBlockZ(), region.location().getBlockZ() }; - PolyLineMarker marker = m_routesSet.createPolyLineMarker(null, null, false, world.getName(), x, y, z, false); - marker.setLineStyle((int)Math.ceil(thickness), 0.5, region.color().getColor().asRGB()); - m_borderMarkers.get(world).add(marker); + String label = neighbor.name() + " / " + region.name(); + String description = "

Travel Cost to " + neighbor.name() + ": " + region.getTravelCost(neighbor) + "

"; + description += "

Travel Cost to " + region.name() + ": " + neighbor.getTravelCost(region) + "

"; + PolyLineMarker routeMarker = m_routesSet.createPolyLineMarker(null, label, true, world.getName(), x, y, z, false); + routeMarker.setDescription(description); + routeMarker.setLineStyle((int)Math.ceil(thickness), 0.5, region.color().getColor().asRGB()); + m_borderMarkers.get(world).add(routeMarker); } } } @@ -119,11 +116,17 @@ public class DynmapEventRelay implements Listener { private void createMarkerForRegion(Region region) { Location loc = region.location(); MarkerIcon icon = m_api.getMarkerIcon("compass"); + if (region.isHub()) { + icon = m_api.getMarkerIcon("world"); + } CircleMarker circleMarker = m_routesSet.createCircleMarker(null, region.name(), false, loc.getWorld().getName(), loc.getX(), loc.getY(), loc.getZ(), 60, 60, false); Marker marker = m_centerSet.createMarker(null, region.name(), loc.getWorld().getName(), loc.getX(), loc.getY(), loc.getZ(), icon, false); circleMarker.setFillStyle(0.75, region.color().getColor().asRGB()); circleMarker.setLineStyle(0, 0, 0); String desc = "

" + region.name() + "

"; + if (region.isHub()) { + desc += "

World Hub

"; + } marker.setDescription(desc); circleMarker.setDescription(desc); }