From 026bd1c14fb5ee90ba8b828b843d1a048dc9c838 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal002@users.noreply.github.com> Date: Mon, 6 May 2024 17:30:50 +0200 Subject: Backend: Enum in GardenCropMilestoneDisplay (#1535) Co-authored-by: HiZe Co-authored-by: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Co-authored-by: alexia Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> --- .../garden/farming/GardenCropMilestoneDisplay.kt | 63 +++++++++------------- 1 file changed, 25 insertions(+), 38 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features') diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt index 7a91b8765..44fa5f7a1 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/farming/GardenCropMilestoneDisplay.kt @@ -147,8 +147,8 @@ object GardenCropMilestoneDisplay { private fun drawProgressDisplay(crop: CropType): List { val counter = crop.getCounter() - val lineMap = mutableMapOf() - lineMap[0] = Renderable.string("§6Crop Milestones") + val lineMap = mutableMapOf() + lineMap[MilestoneTextEntry.TITLE] = Renderable.string("§6Crop Milestones") val customTargetLevel = storage?.get(crop) ?: 0 val overflowDisplay = overflowConfig.cropMilestoneDisplay @@ -159,7 +159,7 @@ object GardenCropMilestoneDisplay { val useCustomGoal = customTargetLevel != 0 && customTargetLevel > currentTier nextTier = if (useCustomGoal) customTargetLevel else nextTier - lineMap[1] = Renderable.horizontalContainer(buildList { + lineMap[MilestoneTextEntry.MILESTONE_TIER] = Renderable.horizontalContainer(buildList { addCropIconRenderable(crop) if (crop.isMaxed(overflowDisplay) && !overflowDisplay) { addString("§7" + crop.cropName + " §eMAXED") @@ -179,7 +179,7 @@ object GardenCropMilestoneDisplay { Pair(have, need) } - lineMap[2] = if (crop.isMaxed(overflowDisplay) && !overflowDisplay) { + lineMap[MilestoneTextEntry.NUMBER_OUT_OF_TOTAL] = if (crop.isMaxed(overflowDisplay) && !overflowDisplay) { val haveFormat = counter.addSeparators() Renderable.string("§7Counter: §e$haveFormat") } else { @@ -205,22 +205,22 @@ object GardenCropMilestoneDisplay { tryWarn(millis, "§b${crop.cropName} $nextTier in $duration") val speedText = "§7In §b$duration" - lineMap[3] = Renderable.string(speedText) + lineMap[MilestoneTextEntry.TIME] = Renderable.string(speedText) GardenAPI.itemInHand?.let { if (GardenAPI.readCounter(it) == -1L) { - lineMap[3] = Renderable.string("$speedText §7Inaccurate!") + lineMap[MilestoneTextEntry.TIME] = Renderable.string("$speedText §7Inaccurate!") } } } val format = (farmingFortuneSpeed * 60).addSeparators() - lineMap[4] = Renderable.string("§7Crops/Minute§8: §e$format") + lineMap[MilestoneTextEntry.CROPS_PER_MINUTE] = Renderable.string("§7Crops/Minute§8: §e$format") val formatBps = speed.round(config.blocksBrokenPrecision).addSeparators() - lineMap[5] = Renderable.string("§7Blocks/Second§8: §e$formatBps") + lineMap[MilestoneTextEntry.BLOCKS_PER_SECOND] = Renderable.string("§7Blocks/Second§8: §e$formatBps") } val percentageFormat = LorenzUtils.formatPercentage(have.toDouble() / need.toDouble()) - lineMap[6] = if (crop.isMaxed(overflowDisplay) && !overflowDisplay) { + lineMap[MilestoneTextEntry.PERCENTAGE] = if (crop.isMaxed(overflowDisplay) && !overflowDisplay) { Renderable.string("§7Percentage: §e100%") } else { Renderable.string("§7Percentage: §e$percentageFormat") @@ -228,7 +228,8 @@ object GardenCropMilestoneDisplay { if (overflowConfig.chat) { if (currentTier >= 46 && currentTier == previousNext && - nextRealTier == currentTier + 1 && lastWarnedLevel != currentTier) { + nextRealTier == currentTier + 1 && lastWarnedLevel != currentTier + ) { GardenCropMilestones.onOverflowLevelUp(crop, currentTier - 1, nextRealTier - 1) lastWarnedLevel = currentTier } @@ -236,7 +237,8 @@ object GardenCropMilestoneDisplay { if (overflowConfig.chat) { if (currentTier >= 46 && currentTier == previousNext && - nextRealTier == currentTier + 1 && lastWarnedLevel != currentTier) { + nextRealTier == currentTier + 1 && lastWarnedLevel != currentTier + ) { GardenCropMilestones.onOverflowLevelUp(crop, currentTier - 1, nextRealTier - 1) lastWarnedLevel = currentTier } @@ -265,14 +267,9 @@ object GardenCropMilestoneDisplay { } } - private fun formatDisplay(lineMap: MutableMap): List { + private fun formatDisplay(lineMap: MutableMap): List { val newList = mutableListOf() - for (index in config.text) { - // TODO, change functionality to use enum rather than ordinals - lineMap[index.ordinal]?.let { - newList.add(it) - } - } + newList.addAll(config.text.mapNotNull { lineMap[it] }) if (needsInventory) { newList.addString("§cOpen §e/cropmilestones §cto update!") @@ -292,7 +289,7 @@ object GardenCropMilestoneDisplay { return } - val lineMap = HashMap() + val lineMap = HashMap() val counter = mushroom.getCounter() val currentTier = GardenCropMilestones.getTierForCropCount(counter, mushroom, allowOverflow) @@ -309,15 +306,13 @@ object GardenCropMilestoneDisplay { val missing = need - have - lineMap[0] = Renderable.string("§6Mooshroom Cow Perk") - lineMap[1] = Renderable.horizontalContainer( - buildList { - addCropIconRenderable(mushroom) - addString("§7Mushroom Tier $nextTier") - } - ) + lineMap[MushroomTextEntry.TITLE] = Renderable.string("§6Mooshroom Cow Perk") + lineMap[MushroomTextEntry.MUSHROOM_TIER] = Renderable.horizontalContainer(buildList { + addCropIconRenderable(mushroom) + addString("§7Mushroom Tier $nextTier") + }) - lineMap[2] = Renderable.string("§e$haveFormat§8/§e$needFormat") + lineMap[MushroomTextEntry.NUMBER_OUT_OF_TOTAL] = Renderable.string("§e$haveFormat§8/§e$needFormat") val speed = GardenCropSpeed.averageBlocksPerSecond if (speed != 0.0) { @@ -328,27 +323,19 @@ object GardenCropMilestoneDisplay { // TODO, change functionality to use enum rather than ordinals val biggestUnit = TimeUnit.entries[config.highestTimeFormat.get().ordinal] val duration = TimeUtils.formatDuration(millis.toLong(), biggestUnit) - lineMap[3] = Renderable.string("§7In §b$duration") + lineMap[MushroomTextEntry.TIME] = Renderable.string("§7In §b$duration") } val percentageFormat = LorenzUtils.formatPercentage(have.toDouble() / need.toDouble()) - lineMap[4] = Renderable.string("§7Percentage: §e$percentageFormat") + lineMap[MushroomTextEntry.PERCENTAGE] = Renderable.string("§7Percentage: §e$percentageFormat") if (currentTier >= 46 && currentTier == previousMushNext && nextTier == currentTier + 1 && lastMushWarnedLevel != currentTier) { GardenCropMilestones.onOverflowLevelUp(mushroom, currentTier - 1, nextTier - 1) lastMushWarnedLevel = currentTier } - val newList = mutableListOf() - for (index in config.mushroomPetPerk.text) { - // TODO, change functionality to use enum rather than ordinals - lineMap[index.ordinal]?.let { - newList.add(it) - } - } - previousMushNext = nextTier - mushroomCowPerkDisplay = newList + mushroomCowPerkDisplay = config.mushroomPetPerk.text.mapNotNull { lineMap[it] } } private fun isEnabled() = GardenAPI.inGarden() && config.progress -- cgit