summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/dungeon
diff options
context:
space:
mode:
authorCalMWolfs <94038482+CalMWolfs@users.noreply.github.com>2024-06-08 12:18:03 +1000
committerGitHub <noreply@github.com>2024-06-08 12:18:03 +1000
commitaaca5f08d47732b3db5329a3a9404281b21d2f55 (patch)
tree6e9888c91928ba5e49e1d736b28fe0f4c847faa8 /src/main/java/at/hannibal2/skyhanni/features/dungeon
parent0c53ce8afdd5f64d2764d5ce0d4f2f2a59a7b06e (diff)
downloadskyhanni-aaca5f08d47732b3db5329a3a9404281b21d2f55.tar.gz
skyhanni-aaca5f08d47732b3db5329a3a9404281b21d2f55.tar.bz2
skyhanni-aaca5f08d47732b3db5329a3a9404281b21d2f55.zip
Backend: Add annotation to smaller modules (#2022)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/dungeon')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt60
1 files changed, 30 insertions, 30 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt
index b565c0210..801b4f800 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/CroesusChestTracker.kt
@@ -11,6 +11,7 @@ import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.RenderInventoryItemTipEvent
import at.hannibal2.skyhanni.events.RenderItemTipEvent
import at.hannibal2.skyhanni.features.dungeon.DungeonAPI.DungeonChest
+import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.test.command.ErrorManager
import at.hannibal2.skyhanni.utils.ChatUtils
import at.hannibal2.skyhanni.utils.InventoryUtils
@@ -31,7 +32,8 @@ import net.minecraft.item.ItemStack
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
-class CroesusChestTracker {
+@SkyHanniModule
+object CroesusChestTracker {
private val config get() = SkyHanniMod.feature.dungeon.chest
@@ -49,10 +51,11 @@ class CroesusChestTracker {
private val openedPattern by patternGroup.pattern("chest.state.opened", "§8Opened Chest:.*")
private val unopenedPattern by patternGroup.pattern("chest.state.unopened", "§8No Chests Opened!")
- private val kismetSlotId = 50
- private val emptySlotId = 22
- private val frontArrowSlotId = 53
- private val backArrowSlotId = 45
+ private const val KISMET_SLOT = 50
+ private const val EMPTY_SLOT = 22
+ private const val FRONT_ARROW_SLOT = 53
+ private const val BACK_ARROW_SLOT = 45
+ private const val MAX_CHESTS = 60
private val kismetInternalName = "KISMET_FEATHER".asInternalName()
@@ -67,6 +70,8 @@ class CroesusChestTracker {
private var kismetAmountCache = 0
+ private val croesusChests get() = ProfileStorageData.profileSpecific?.dungeons?.runs
+
@SubscribeEvent(priority = EventPriority.LOW)
fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) {
if (!LorenzUtils.inSkyBlock) return
@@ -119,7 +124,7 @@ class CroesusChestTracker {
kismetAmountCache = getKismetAmount()
}
if (config.showUsedKismets) {
- val kismetItem = event.inventoryItems[kismetSlotId] ?: return
+ val kismetItem = event.inventoryItems[KISMET_SLOT] ?: return
if (config.showUsedKismets && kismetUsedPattern.matches(kismetItem.getLore().lastOrNull()))
setKismetUsed()
}
@@ -155,8 +160,8 @@ class CroesusChestTracker {
private fun pageSetup(event: InventoryFullyOpenedEvent) {
inCroesusInventory = true
pageSwitchable = true
- croesusEmpty = croesusEmptyPattern.matches(event.inventoryItems[emptySlotId]?.name)
- if (event.inventoryItems[backArrowSlotId]?.item != Items.arrow) {
+ croesusEmpty = croesusEmptyPattern.matches(event.inventoryItems[EMPTY_SLOT]?.name)
+ if (event.inventoryItems[BACK_ARROW_SLOT]?.item != Items.arrow) {
currentPage = 0
}
}
@@ -177,19 +182,19 @@ class CroesusChestTracker {
fun onSlotClick(event: GuiContainerEvent.SlotClickEvent) {
if (!LorenzUtils.inSkyBlock) return
if (!config.showUsedKismets) return
- if (chestInventory != null && event.slotId == kismetSlotId) {
+ if (chestInventory != null && event.slotId == KISMET_SLOT) {
setKismetUsed()
return
}
if (inCroesusInventory && !croesusEmpty) {
if (event.slot == null) return
when (event.slotId) {
- frontArrowSlotId -> if (pageSwitchable && event.slot.stack.isArrow()) {
+ FRONT_ARROW_SLOT -> if (pageSwitchable && event.slot.stack.isArrow()) {
pageSwitchable = false
currentPage++
}
- backArrowSlotId -> if (pageSwitchable && event.slot.stack.isArrow()) {
+ BACK_ARROW_SLOT -> if (pageSwitchable && event.slot.stack.isArrow()) {
pageSwitchable = false
currentPage--
}
@@ -227,7 +232,7 @@ class CroesusChestTracker {
if (event.floor == "E") return
croesusChests?.add(0, DungeonRunInfo(event.floor))
currentRunIndex = 0
- if ((croesusChests?.size ?: 0) > maxChests) {
+ if ((croesusChests?.size ?: 0) > MAX_CHESTS) {
croesusChests?.dropLast(1)
}
@@ -261,26 +266,21 @@ class CroesusChestTracker {
private inline fun <reified T> runSlots(slotId: Int, any: T) =
croesusSlotMapToRun(slotId)?.getRun()?.let { it to any }
- companion object {
- val maxChests = 60
-
- private val croesusChests get() = ProfileStorageData.profileSpecific?.dungeons?.runs
-
- fun resetChest() = croesusChests?.let {
- it.clear()
- it.addAll(generateMaxChest())
- ChatUtils.chat("Kismet State was cleared!")
- }
+ fun resetChest() = croesusChests?.let {
+ it.clear()
+ it.addAll(generateMaxChest())
+ ChatUtils.chat("Kismet State was cleared!")
+ }
- fun generateMaxChest(): Sequence<DungeonRunInfo> = generateSequence { DungeonRunInfo() }.take(maxChests)
- fun generateMaxChestAsList(): List<DungeonRunInfo> = generateMaxChest().toList()
+ @JvmStatic
+ fun generateMaxChestAsList(): List<DungeonRunInfo> = generateMaxChest().toList()
+ private fun generateMaxChest(): Sequence<DungeonRunInfo> = generateSequence { DungeonRunInfo() }.take(MAX_CHESTS)
- fun getLastActiveChest(includeDungeonKey: Boolean = false): Int =
- (croesusChests?.indexOfLast {
- it.floor != null &&
- (it.openState == OpenedState.UNOPENED || (includeDungeonKey && it.openState == OpenedState.OPENED))
- } ?: -1) + 1
- }
+ fun getLastActiveChest(includeDungeonKey: Boolean = false): Int =
+ (croesusChests?.indexOfLast {
+ it.floor != null &&
+ (it.openState == OpenedState.UNOPENED || (includeDungeonKey && it.openState == OpenedState.OPENED))
+ } ?: -1) + 1
enum class OpenedState {
UNOPENED,