Skip to content

Commit

Permalink
Backend: Move Next Jacobs Contest, Best Crop Milestone & Jyrre Timer …
Browse files Browse the repository at this point in the history
…to Renderable (hannibal002#3004)

Co-authored-by: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com>
Co-authored-by: Cal <cwolfson58@gmail.com>
  • Loading branch information
3 people authored Dec 20, 2024
1 parent cc73310 commit 0d09339
Show file tree
Hide file tree
Showing 8 changed files with 192 additions and 215 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.ProfileJoinEvent
import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.CollectionUtils.addItemStack
import at.hannibal2.skyhanni.utils.CollectionUtils.addString
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.toInternalName
import at.hannibal2.skyhanni.utils.NEUItems.getItemStack
import at.hannibal2.skyhanni.utils.RegexUtils.matches
import at.hannibal2.skyhanni.utils.RenderUtils.addItemIcon
import at.hannibal2.skyhanni.utils.RenderUtils.renderSingleLineWithItems
import at.hannibal2.skyhanni.utils.RenderUtils.renderRenderable
import at.hannibal2.skyhanni.utils.TimeUtils.format
import at.hannibal2.skyhanni.utils.renderables.Renderable
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration.Companion.minutes
Expand All @@ -25,9 +27,9 @@ object JyrreTimer {
private val config get() = SkyHanniMod.feature.event.winter.jyrreTimer
private val drankBottlePattern by RepoPattern.pattern(
"event.winter.drank.jyrre",
"§aYou drank a §r§6Refined Bottle of Jyrre §r§aand gained §r§b\\+300✎ Intelligence §r§afor §r§b60 minutes§r§a!"
"§aYou drank a §r§6Refined Bottle of Jyrre §r§aand gained §r§b\\+300✎ Intelligence §r§afor §r§b60 minutes§r§a!",
)
private var display = emptyList<Any>()
private var display: Renderable? = null
private var duration = 0.seconds

@HandleEvent
Expand All @@ -36,8 +38,8 @@ object JyrreTimer {
}

private fun resetDisplay() {
if (display.isEmpty()) return
display = if (config.showInactive) drawDisplay() else emptyList()
if (display == null) return
display = if (config.showInactive) drawDisplay() else null
duration = 0.seconds
}

Expand All @@ -50,14 +52,14 @@ object JyrreTimer {
@SubscribeEvent
fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) {
if (!isEnabled()) return
config.pos.renderSingleLineWithItems(display, posLabel = "Refined Jyrre Timer")
config.pos.renderRenderable(display, posLabel = "Refined Jyrre Timer")
}

@SubscribeEvent
fun onSecondPassed(event: SecondPassedEvent) {
if (!isEnabled()) return

if (display.isNotEmpty() && !config.showInactive && duration <= 0.seconds) {
if (display != null && !config.showInactive && duration <= 0.seconds) {
resetDisplay()
return
}
Expand All @@ -67,20 +69,21 @@ object JyrreTimer {

private val displayIcon by lazy { "REFINED_BOTTLE_OF_JYRRE".toInternalName().getItemStack() }

fun drawDisplay(): MutableList<Any> {
fun drawDisplay(): Renderable {
duration -= 1.seconds

return mutableListOf<Any>().apply {
addItemIcon(displayIcon)
add("§aJyrre Boost: ")
return Renderable.horizontalContainer(
buildList {
addItemStack(displayIcon)
addString("§aJyrre Boost: ")

if (duration <= 0.seconds && config.showInactive) {
add("§cInactive!")
} else {
val format = duration.format()
add("§b$format")
}
}
if (duration <= 0.seconds && config.showInactive) {
addString("§cInactive!")
} else {
addString("§b${duration.format()}")
}
},
)
}

private fun isEnabled() = LorenzUtils.inSkyBlock && config.enabled
Expand Down
12 changes: 1 addition & 11 deletions src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland
import at.hannibal2.skyhanni.utils.LorenzVec
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.RenderUtils.addItemIcon
import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.getCultivatingCounter
import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.getHoeCounter
import at.hannibal2.skyhanni.utils.renderables.Renderable
Expand Down Expand Up @@ -172,16 +171,7 @@ object GardenAPI {

fun readCounter(itemStack: ItemStack): Long = itemStack.getHoeCounter() ?: itemStack.getCultivatingCounter() ?: -1L

@Deprecated("use renderable list instead", ReplaceWith(""))
fun MutableList<Any>.addCropIcon(
crop: CropType,
scale: Double = NEUItems.itemFontSize,
highlight: Boolean = false,
) =
addItemIcon(crop.icon.copy(), highlight, scale = scale)

// TODO rename to addCropIcon
fun MutableList<Renderable>.addCropIconRenderable(
fun MutableList<Renderable>.addCropIcon(
crop: CropType,
scale: Double = NEUItems.itemFontSize,
highlight: Boolean = false,
Expand Down
Loading

0 comments on commit 0d09339

Please sign in to comment.