Skip to content
This repository has been archived by the owner on Nov 27, 2024. It is now read-only.

Commit

Permalink
only render hud widget in modify screen if they should be rendered no…
Browse files Browse the repository at this point in the history
…rmally
  • Loading branch information
btwonion committed Aug 2, 2024
1 parent 83207d7 commit 437a7e0
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ interface HudWidget {
}

fun clear()
fun shouldRender(): Boolean

fun update() {
clear()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import dev.nyon.skylper.extensions.math.format
import dev.nyon.skylper.extensions.render.hud.TableHudWidget
import dev.nyon.skylper.extensions.render.hud.components.PlainTextHudComponent
import dev.nyon.skylper.independentScope
import dev.nyon.skylper.skyblock.data.online.IslandGroups
import dev.nyon.skylper.skyblock.data.session.PlayerSessionData
import dev.nyon.skylper.skyblock.data.skylper.currentProfile
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
Expand Down Expand Up @@ -74,6 +76,10 @@ object TotalPowderWidget :
)
}

override fun shouldRender(): Boolean {
return IslandGroups.groups.mining.contains(PlayerSessionData.currentArea) && config.mining.totalPowderOverlay.enabled
}

init {
init()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import dev.nyon.skylper.extensions.render.hud.TableHudWidget
import dev.nyon.skylper.extensions.render.hud.components.PlainTextHudComponent
import dev.nyon.skylper.independentScope
import dev.nyon.skylper.skyblock.data.skylper.currentProfile
import dev.nyon.skylper.skyblock.mining.hollows.HollowsModule
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import net.minecraft.network.chat.Component
Expand Down Expand Up @@ -37,6 +38,10 @@ object CrystalCompletionWidget : TableHudWidget(
}
}

override fun shouldRender(): Boolean {
return HollowsModule.isPlayerInHollows && config.mining.crystalHollows.crystalOverlay.enabled
}

init {
init()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,10 @@ object PowderGrindingTracker : Tracker<PowderGrindingData>("hollows.powder_grind
override val updateTriggerEvents: List<KClass<out Event<out Any>>> =
listOf(BossBarNameUpdate::class, MessageEvent::class)

override fun shouldRender(): Boolean {
return HollowsModule.isPlayerInHollows && dev.nyon.skylper.config.config.mining.crystalHollows.powderGrindingOverlay.enabled && PowderGrindingTracker.isGrinding
}

init {
init()
}
Expand Down
22 changes: 5 additions & 17 deletions src/main/kotlin/dev/nyon/skylper/skyblock/render/SkylperHud.kt
Original file line number Diff line number Diff line change
@@ -1,38 +1,26 @@
package dev.nyon.skylper.skyblock.render

import dev.nyon.skylper.config.config
import dev.nyon.skylper.extensions.event.EventHandler.listenEvent
import dev.nyon.skylper.extensions.event.RenderHudEvent
import dev.nyon.skylper.extensions.render.hud.HudWidget
import dev.nyon.skylper.skyblock.data.online.IslandGroups
import dev.nyon.skylper.skyblock.data.session.PlayerSessionData
import dev.nyon.skylper.skyblock.mining.hollows.render.TotalPowderWidget
import dev.nyon.skylper.skyblock.mining.hollows.HollowsModule
import dev.nyon.skylper.skyblock.mining.hollows.tracker.nucleus.CrystalCompletionWidget
import dev.nyon.skylper.skyblock.mining.hollows.tracker.powder.PowderGrindingTracker
import net.minecraft.client.gui.GuiGraphics

object SkylperHud {
fun init() {
listenEvent<RenderHudEvent, Unit> {
context.renderWidget(CrystalCompletionWidget) {
HollowsModule.isPlayerInHollows && config.mining.crystalHollows.crystalOverlay.enabled
}

context.renderWidget(PowderGrindingTracker) {
HollowsModule.isPlayerInHollows && config.mining.crystalHollows.powderGrindingOverlay.enabled && PowderGrindingTracker.isGrinding
}

context.renderWidget(TotalPowderWidget) {
IslandGroups.groups.mining.contains(PlayerSessionData.currentArea) && config.mining.totalPowderOverlay.enabled
}
context.renderWidget(CrystalCompletionWidget)
context.renderWidget(PowderGrindingTracker)
context.renderWidget(TotalPowderWidget)
}
}

private fun GuiGraphics.renderWidget(
widget: HudWidget, condition: () -> Boolean
widget: HudWidget
) {
if (!condition()) return
if (!widget.shouldRender()) return
widget.render(this, 0, 0)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class SkylperHudModifier(private val parent: Screen?) :
ChatFormatting.GRAY.color!!
)

enabledWidgets.forEach {
enabledWidgets.filter(HudWidget::shouldRender).forEach {
it.render(guiGraphics, mouseX, mouseY)
}
}
Expand Down

0 comments on commit 437a7e0

Please sign in to comment.