From 822913b506c63f8a322af76d3460a961e22b845c Mon Sep 17 00:00:00 2001 From: Erymanthus | RayDeeUx <51521765+RayDeeUx@users.noreply.github.com> Date: Mon, 22 Jan 2024 13:56:13 -0500 Subject: Feature: Atmospheric Filter Display (#916) Added Atmospheric Filter Display. #916 --- .../features/garden/AtmosphericFilterDisplay.kt | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt (limited to 'src/main/java/at/hannibal2/skyhanni/features') diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt new file mode 100644 index 000000000..73fd9804c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/AtmosphericFilterDisplay.kt @@ -0,0 +1,45 @@ +package at.hannibal2.skyhanni.features.garden + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.GuiRenderEvent +import at.hannibal2.skyhanni.events.LorenzTickEvent +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.RenderUtils.renderString +import at.hannibal2.skyhanni.utils.Season +import io.github.moulberry.notenoughupdates.util.SkyBlockTime +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +class AtmosphericFilterDisplay { + + private val config get() = SkyHanniMod.feature.garden.atmosphericFilterDisplay + + private var display = "" + + @SubscribeEvent + fun onTick(event: LorenzTickEvent) { + if (!isEnabled()) return + if (!GardenAPI.inGarden() && !config.everywhere) return + if (!event.repeatSeconds(1)) return + display = drawDisplay(Season.getCurrentSeason() ?: return) + } + + @SubscribeEvent + fun onRenderOverlay(event: GuiRenderEvent.GuiOverlayRenderEvent) { + if (!isEnabled()) return + if (!GardenAPI.inGarden() && config.everywhere) { + config.positionOutside.renderString(display, posLabel = "Atmospheric Filter Perk Display") + } else if (GardenAPI.inGarden()) { + config.position.renderString(display, posLabel = "Atmospheric Filter Perk Display") + } + } + + private fun drawDisplay(season: Season): String = buildString { + if (!config.onlyBuff) { + append(season.getSeason(config.abbreviateSeason)) + append("ยง7: ") + } + append(season.getPerk(config.abbreviatePerk)) + } + + private fun isEnabled(): Boolean = LorenzUtils.inSkyBlock && config.enabled +} -- cgit