diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt | 27 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerDropTracker.kt | 23 |
2 files changed, 9 insertions, 41 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt index 3825040d0..ac9f36190 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt @@ -2,7 +2,6 @@ package at.hannibal2.skyhanni.features.garden.farming import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator -import at.hannibal2.skyhanni.events.ConfigLoadEvent import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.LorenzTickEvent @@ -27,13 +26,13 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import kotlin.time.Duration.Companion.seconds object ArmorDropTracker { - private var display = emptyList<List<Any>>() private var hasArmor = false private val armorPattern = "(FERMENTO|CROPIE|SQUASH|MELON)_(LEGGINGS|CHESTPLATE|BOOTS|HELMET)".toPattern() private val config get() = SkyHanniMod.feature.garden.farmingArmorDrop - private val tracker = SkyHanniTracker("Armor Drop Tracker", { Data() }, { it.garden.armorDropTracker }) { update() } + private val tracker = SkyHanniTracker("Armor Drop Tracker", { Data() }, { it.garden.armorDropTracker }) + { drawDisplay(it) } class Data : TrackerData() { override fun reset() { @@ -52,7 +51,6 @@ object ArmorDropTracker { @SubscribeEvent fun onPreProfileSwitch(event: PreProfileSwitchEvent) { - display = emptyList() hasArmor = false } @@ -72,29 +70,14 @@ object ArmorDropTracker { tracker.modify { it.drops.addOrPut(drop, 1) } - update() } - private fun update() { - display = drawDisplay() - } - - private fun drawDisplay() = buildList<List<Any>> { - val drops = tracker.currentDisplay()?.drops ?: return@buildList - + private fun drawDisplay(data: Data): List<List<Any>> = buildList { addAsSingletonList("§7RNG Drops for Farming Armor:") - tracker.addDisplayModeToggle(this) - for ((drop, amount) in drops.sortedDesc()) { + for ((drop, amount) in data.drops.sortedDesc()) { val dropName = drop.dropName addAsSingletonList(" §7- §e${amount.addSeparators()}x $dropName") } - - tracker.addSessionResetButton(this) - } - - @SubscribeEvent - fun onConfigLoad(event: ConfigLoadEvent) { - update() } @SubscribeEvent @@ -103,7 +86,7 @@ object ArmorDropTracker { if (!config.enabled) return if (!hasArmor) return - tracker.renderDisplay(config.pos, display) + tracker.renderDisplay(config.pos) } @SubscribeEvent diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerDropTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerDropTracker.kt index 0d95ed0ca..24f55672b 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerDropTracker.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerDropTracker.kt @@ -6,7 +6,6 @@ import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.events.GardenToolChangeEvent import at.hannibal2.skyhanni.events.GuiRenderEvent import at.hannibal2.skyhanni.events.LorenzChatEvent -import at.hannibal2.skyhanni.events.PreProfileSwitchEvent import at.hannibal2.skyhanni.features.garden.CropType import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.utils.ItemUtils.name @@ -20,10 +19,10 @@ import com.google.gson.annotations.Expose import net.minecraftforge.fml.common.eventhandler.SubscribeEvent object DicerDropTracker { - private var display = emptyList<List<Any>>() private val itemDrops = mutableListOf<ItemDrop>() private val config get() = SkyHanniMod.feature.garden.dicerCounters - private val tracker = SkyHanniTracker("Dicer Drop Tracker", { Data() }, { it.garden.dicerDropTracker }) { update() } + private val tracker = SkyHanniTracker("Dicer Drop Tracker", { Data() }, { it.garden.dicerDropTracker }) + { drawDisplay(it) } class Data : TrackerData() { override fun reset() { @@ -54,11 +53,6 @@ object DicerDropTracker { } @SubscribeEvent - fun onPreProfileSwitch(event: PreProfileSwitchEvent) { - display = emptyList() - } - - @SubscribeEvent fun onChat(event: LorenzChatEvent) { if (!GardenAPI.inGarden()) return if (!config.hideChat && !config.display) return @@ -75,23 +69,15 @@ object DicerDropTracker { } } - private fun update() { - tracker.currentDisplay()?.let { - display = drawDisplay(it) - } - } - private fun drawDisplay(storage: Data) = buildList<List<Any>> { val cropInHand = cropInHand ?: return@buildList val items = storage.drops.getOrPut(cropInHand) { mutableMapOf() } addAsSingletonList("§7Dicer Drop Tracker for $toolName§7:") - tracker.addDisplayModeToggle(this) for ((rarity, amount) in items.sortedDesc()) { val displayName = rarity.displayName addAsSingletonList(" §7- §e${amount.addSeparators()}x $displayName") } - tracker.addSessionResetButton(this) } private var cropInHand: CropType? = null @@ -104,7 +90,7 @@ object DicerDropTracker { if (cropInHand != null) { toolName = event.toolItem!!.name!! } - update() + tracker.update() } private fun addDrop(crop: CropType, rarity: DropRarity) { @@ -112,14 +98,13 @@ object DicerDropTracker { val map = it.drops.getOrPut(crop) { mutableMapOf() } map.addOrPut(rarity, 1) } - update() } @SubscribeEvent fun onRenderOverlay(event: GuiRenderEvent) { if (!isEnabled()) return - tracker.renderDisplay(config.pos, display) + tracker.renderDisplay(config.pos) } class ItemDrop(val crop: CropType, val rarity: DropRarity, val pattern: Regex) |