diff options
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/mining/TunnelsMaps.kt | 125 |
1 files changed, 80 insertions, 45 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/mining/TunnelsMaps.kt b/src/main/java/at/hannibal2/skyhanni/features/mining/TunnelsMaps.kt index 2f4ad5476..b3e7c56c1 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/mining/TunnelsMaps.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/mining/TunnelsMaps.kt @@ -11,6 +11,7 @@ import at.hannibal2.skyhanni.events.ConfigLoadEvent import at.hannibal2.skyhanni.events.GuiContainerEvent import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent +import at.hannibal2.skyhanni.events.IslandChangeEvent import at.hannibal2.skyhanni.events.ItemClickEvent import at.hannibal2.skyhanni.events.LorenzKeyPressEvent import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent @@ -110,13 +111,13 @@ object TunnelsMaps { } private val oldGemstonePattern by RepoPattern.pattern( - "mining.tunnels.maps.gem.old", ".*(?:Ruby|Amethyst|Jade|Sapphire|Amber|Topaz).*" + "mining.tunnels.maps.gem.old", ".*(?:Ruby|Amethyst|Jade|Sapphire|Amber|Topaz).*", ) private val newGemstonePattern by RepoPattern.pattern( - "mining.tunnels.maps.gem.new", ".*(?:Aquamarine|Onyx|Citrine|Peridot).*" + "mining.tunnels.maps.gem.new", ".*(?:Aquamarine|Onyx|Citrine|Peridot).*", ) private val commissionInvPattern by RepoPattern.pattern( - "mining.commission.inventory", "Commissions" + "mining.commission.inventory", "Commissions", ) /** @@ -125,19 +126,19 @@ object TunnelsMaps { */ private val glacitePattern by RepoPattern.pattern( "mining.commisson.reward.glacite", - "§7- §b[\\d,]+ Glacite Powder" + "§7- §b[\\d,]+ Glacite Powder", ) private val collectorCommissionPattern by RepoPattern.pattern( "mining.commisson.collector", - "§9(?<what>\\w+(?: \\w+)?) Collector" + "§9(?<what>\\w+(?: \\w+)?) Collector", ) private val invalidGoalPattern by RepoPattern.pattern( "mining.commisson.collector.invalid", - "Glacite|Scrap" + "Glacite|Scrap", ) private val completedPattern by RepoPattern.pattern( "mining.commisson.completed", - "§a§lCOMPLETED" + "§a§lCOMPLETED", ) private val translateTable = mutableMapOf<String, String>() @@ -170,7 +171,7 @@ object TunnelsMaps { "Unknown Collection Commission: $type", "$type can't be found in the graph.", "type" to type, "graphNames" to possibleLocations.keys, - "lore" to lore + "lore" to lore, ) null } else { @@ -234,7 +235,7 @@ object TunnelsMaps { fun onConfigLoad(event: ConfigLoadEvent) { onToggle( config.compactGemstone, - config.excludeFairy + config.excludeFairy, ) { locationDisplay = generateLocationsDisplay() } @@ -247,21 +248,31 @@ object TunnelsMaps { if (active.isNotEmpty()) { if (goal == campfire && active != campfire.name) { add(Renderable.string("§6Override for ${campfire.name}")) - add(Renderable.clickable(Renderable.string("§eMake §f$active §eactive"), onClick = { - goal = getNext() - })) + add( + Renderable.clickable( + Renderable.string("§eMake §f$active §eactive"), + onClick = { + goal = getNext() + }, + ), + ) } else { add( Renderable.clickAndHover( Renderable.string("§6Active: §f$active"), listOf("§eClick to disable current Waypoint"), - onClick = ::clearPath - ) + onClick = ::clearPath, + ), ) if (hasNext()) { - add(Renderable.clickable(Renderable.string("§eNext Spot"), onClick = { - goal = getNext() - })) + add( + Renderable.clickable( + Renderable.string("§eNext Spot"), + onClick = { + goal = getNext() + }, + ), + ) } else { add(Renderable.string("")) } @@ -279,45 +290,61 @@ object TunnelsMaps { add(Renderable.string("§6Locations:")) add( Renderable.multiClickAndHover( - campfire.name!!, listOf( - "§eLeft Click to set active", "§eRight Click for override" - ), click = mapOf( - 0 to guiSetActive(campfire.name!!), 1 to ::campfireOverride - ) - ) + campfire.name!!, + listOf( + "§eLeft Click to set active", "§eRight Click for override", + ), + click = mapOf( + 0 to guiSetActive(campfire.name!!), 1 to ::campfireOverride, + ), + ), ) if (!config.excludeFairy.get()) { - add(Renderable.hoverable(Renderable.horizontalContainer(listOf(Renderable.string("§dFairy Souls")) + fairySouls.map { - val name = it.key.removePrefix("§dFairy Soul ") - Renderable.clickable(Renderable.string("§d[${name}]"), onClick = guiSetActive(it.key)) - }), Renderable.string("§dFairy Souls"))) + add( + Renderable.hoverable( + Renderable.horizontalContainer( + listOf(Renderable.string("§dFairy Souls")) + fairySouls.map { + val name = it.key.removePrefix("§dFairy Soul ") + Renderable.clickable(Renderable.string("§d[${name}]"), onClick = guiSetActive(it.key)) + }, + ), + Renderable.string("§dFairy Souls"), + ), + ) } if (config.compactGemstone.get()) { add( Renderable.table( listOf( - newGemstones.map(::toCompactGemstoneName), oldGemstones.map(::toCompactGemstoneName) - ) - ) + newGemstones.map(::toCompactGemstoneName), oldGemstones.map(::toCompactGemstoneName), + ), + ), ) } else { - addAll(newGemstones.map { - Renderable.clickable(Renderable.string(it.key), onClick = guiSetActive(it.key)) - }) - addAll(oldGemstones.map { - Renderable.clickable(Renderable.string(it.key), onClick = guiSetActive(it.key)) - }) + addAll( + newGemstones.map { + Renderable.clickable(Renderable.string(it.key), onClick = guiSetActive(it.key)) + }, + ) + addAll( + oldGemstones.map { + Renderable.clickable(Renderable.string(it.key), onClick = guiSetActive(it.key)) + }, + ) } - addAll(normalLocations.map { - Renderable.clickable(Renderable.string(it.key), onClick = guiSetActive(it.key)) - }) + addAll( + normalLocations.map { + Renderable.clickable(Renderable.string(it.key), onClick = guiSetActive(it.key)) + }, + ) } private fun toCompactGemstoneName(it: Map.Entry<String, List<GraphNode>>): Renderable = Renderable.clickAndHover( - Renderable.string((it.key.getFirstColorCode()?.let { "§$it" } ?: "") + ("ROUGH_".plus( - it.key.removeColor().removeSuffix("stone") - ).asInternalName().itemName.takeWhile { it != ' ' }.removeColor()), - horizontalAlign = RenderUtils.HorizontalAlignment.CENTER + Renderable.string( + (it.key.getFirstColorCode()?.let { "§$it" } ?: "") + ("ROUGH_".plus( + it.key.removeColor().removeSuffix("stone"), + ).asInternalName().itemName.takeWhile { it != ' ' }.removeColor()), + horizontalAlign = RenderUtils.HorizontalAlignment.CENTER, ), tips = listOf(it.key), onClick = guiSetActive(it.key), @@ -400,7 +427,7 @@ object TunnelsMaps { config.pathWidth.toInt(), true, bezierPoint = 2.0, - textSize = config.textSize.toDouble() + textSize = config.textSize.toDouble(), ) event.drawDynamicText( if (config.distanceFirst) { @@ -410,7 +437,7 @@ object TunnelsMaps { }.position, "§e${path.second.roundToInt()}m", config.textSize.toDouble(), - yOff = 10f + yOff = 10f, ) } @@ -455,6 +482,14 @@ object TunnelsMaps { } } + @SubscribeEvent + fun onIslandChange(event: IslandChangeEvent) { + if (closedNote == null) return // Value that must be none null if it was active + closedNote = null + clearPath() + cooldowns.clear() + } + private var nextSpotDelay = SimpleTimeMark.farPast() private fun nextSpotKey(event: LorenzKeyPressEvent) { |