aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/garden
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/ArmorDropTracker.kt27
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/farming/DicerDropTracker.kt23
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)