diff options
| author | nea <nea@nea.moe> | 2023-04-13 01:57:09 +0200 |
|---|---|---|
| committer | nea <nea@nea.moe> | 2023-04-13 01:57:46 +0200 |
| commit | 75f1e29d606dee14e81afdf90600edd0040db7f4 (patch) | |
| tree | 960d697ee2ff25c6424b53c605c98ff86ab7fec6 /src/main/java/at | |
| parent | 5d815ff4f8ad4dd967ef4c3287a2c0c219db24a7 (diff) | |
| download | SkyHanni-feat/renderablelinks.tar.gz SkyHanni-feat/renderablelinks.tar.bz2 SkyHanni-feat/renderablelinks.zip | |
Better underlinefeat/renderablelinks
Diffstat (limited to 'src/main/java/at')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/renderables/Renderable.kt | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/renderables/Renderable.kt b/src/main/java/at/hannibal2/skyhanni/utils/renderables/Renderable.kt index 73bba5686..415cc0f2e 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/renderables/Renderable.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/renderables/Renderable.kt @@ -3,6 +3,8 @@ package at.hannibal2.skyhanni.utils.renderables import at.hannibal2.skyhanni.utils.NEUItems.renderOnScreen import io.github.moulberry.notenoughupdates.util.Utils import net.minecraft.client.Minecraft +import net.minecraft.client.gui.Gui +import net.minecraft.client.renderer.GlStateManager import net.minecraft.item.ItemStack import org.lwjgl.input.Mouse import kotlin.math.max @@ -30,8 +32,9 @@ interface Renderable { } } - fun link(text: String, onClick: () -> Unit): Renderable { - return clickable(hoverable(string("§n$text"), string(text)), onClick) + fun link(text: String, onClick: () -> Unit): Renderable = link(string(text), onClick) + fun link(renderable: Renderable, onClick: () -> Unit): Renderable { + return clickable(hoverable(underlined(renderable), renderable), onClick) } fun clickable(render: Renderable, onClick: () -> Unit, button: Int = 0): Renderable { @@ -39,7 +42,7 @@ interface Renderable { override val width: Int get() = render.width - var wasDown = false + private var wasDown = false override fun render(posX: Int, posY: Int) { val isDown = Mouse.isButtonDown(button) @@ -53,6 +56,19 @@ interface Renderable { } } + fun underlined(renderable: Renderable): Renderable { + return object : Renderable { + override val width: Int + get() = renderable.width + + override fun render(posX: Int, posY: Int) { + Gui.drawRect(0, 10, width, 11, 0xFFFFFFFF.toInt()) + GlStateManager.color(1F, 1F, 1F, 1F) + renderable.render(posX, posY) + } + } + } + fun hoverable(hovered: Renderable, unhovered: Renderable): Renderable { return object : Renderable { override val width: Int |
