diff options
author | olim <bobq4582@gmail.com> | 2024-06-20 14:39:42 +0100 |
---|---|---|
committer | olim <bobq4582@gmail.com> | 2024-07-15 12:38:00 +0100 |
commit | 72c7a10e3e30b2502e7142d59a07b9aaecd5bedb (patch) | |
tree | 2f6572a07a4e8b103cfb75bf2245d44cf4734a30 /src/main | |
parent | c22843b1d2b34afe240df12d6129c980a0f6680c (diff) | |
download | Skyblocker-72c7a10e3e30b2502e7142d59a07b9aaecd5bedb.tar.gz Skyblocker-72c7a10e3e30b2502e7142d59a07b9aaecd5bedb.tar.bz2 Skyblocker-72c7a10e3e30b2502e7142d59a07b9aaecd5bedb.zip |
remove unknown waypoint when actual found close
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java | 2 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java index 01d83b88..dae5885a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsHud.java @@ -23,7 +23,7 @@ public class CrystalsHud { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); protected static final Identifier MAP_TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/gui/crystals_map.png"); private static final Identifier MAP_ICON = Identifier.ofVanilla("textures/map/decorations/player.png"); - private static final List<String> SMALL_LOCATIONS = List.of("Fairy Grotto", "King Yolkar", "Corleone", "Odawa", "Key Guardian"); + private static final List<String> SMALL_LOCATIONS = List.of("Fairy Grotto", "King Yolkar", "Corleone", "Odawa", "Key Guardian", "Unknown"); public static boolean visible = false; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java index 3895d92d..4c01ed4e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java @@ -57,6 +57,7 @@ public class CrystalsLocationsManager { */ private static final Map<String, MiningLocationLabel.CrystalHollowsLocationsCategory> WAYPOINT_LOCATIONS = Arrays.stream(MiningLocationLabel.CrystalHollowsLocationsCategory.values()).collect(Collectors.toMap(MiningLocationLabel.CrystalHollowsLocationsCategory::getName, Function.identity())); private static final Pattern TEXT_CWORDS_PATTERN = Pattern.compile("([0-9][0-9][0-9])\\D*([0-9][0-9][0-9]?)\\D*([0-9][0-9][0-9])"); + private static final int REMOVE_UNKNOWN_DISTANCE = 50; protected static Map<String, MiningLocationLabel> activeWaypoints = new HashMap<>(); @@ -230,11 +231,27 @@ public class CrystalsLocationsManager { protected static void addCustomWaypoint(String waypointName, BlockPos pos) { + removeUnknownNear(pos); MiningLocationLabel.CrystalHollowsLocationsCategory category = WAYPOINT_LOCATIONS.get(waypointName); MiningLocationLabel waypoint = new MiningLocationLabel(category, pos); activeWaypoints.put(waypointName, waypoint); } + /** + * Removes unknown waypoint from active waypoints if it's close to a location + * @param location center location + */ + private static void removeUnknownNear(BlockPos location) { + String name = MiningLocationLabel.CrystalHollowsLocationsCategory.UNKNOWN.getName(); + MiningLocationLabel unknownWaypoint = activeWaypoints.getOrDefault(name, null); + if (unknownWaypoint != null) { + double distance = unknownWaypoint.centerPos().distanceTo(location.toCenterPos()); + if (distance < REMOVE_UNKNOWN_DISTANCE) { + activeWaypoints.remove(name); + } + } + } + public static void render(WorldRenderContext context) { if (SkyblockerConfigManager.get().mining.crystalsWaypoints.enabled) { for (MiningLocationLabel crystalsWaypoint : activeWaypoints.values()) { |