feat: Highlight century cake slice players
This commit is contained in:
44
src/main/kotlin/util/render/TintedOverlayTexture.kt
Normal file
44
src/main/kotlin/util/render/TintedOverlayTexture.kt
Normal file
@@ -0,0 +1,44 @@
|
||||
package moe.nea.firmament.util.render
|
||||
|
||||
import com.mojang.blaze3d.platform.GlConst
|
||||
import com.mojang.blaze3d.systems.RenderSystem
|
||||
import me.shedaniel.math.Color
|
||||
import net.minecraft.client.render.OverlayTexture
|
||||
import net.minecraft.util.math.ColorHelper
|
||||
import moe.nea.firmament.util.ErrorUtil
|
||||
|
||||
class TintedOverlayTexture : OverlayTexture() {
|
||||
companion object {
|
||||
val size = 16
|
||||
}
|
||||
|
||||
private var lastColor: Color? = null
|
||||
fun setColor(color: Color): TintedOverlayTexture {
|
||||
val image = ErrorUtil.notNullOr(texture.image, "Disposed TintedOverlayTexture written to") { return this }
|
||||
if (color == lastColor) return this
|
||||
lastColor = color
|
||||
|
||||
for (i in 0..<size) {
|
||||
for (j in 0..<size) {
|
||||
if (i < 8) {
|
||||
image.setColorArgb(j, i, 0xB2FF0000.toInt())
|
||||
} else {
|
||||
val k = ((1F - j / 15F * 0.75F) * 255F).toInt()
|
||||
image.setColorArgb(j, i, ColorHelper.withAlpha(k, color.color))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RenderSystem.activeTexture(GlConst.GL_TEXTURE1)
|
||||
texture.bindTexture()
|
||||
texture.setFilter(false, false)
|
||||
texture.setClamp(true)
|
||||
image.upload(0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
image.width, image.height,
|
||||
false)
|
||||
RenderSystem.activeTexture(GlConst.GL_TEXTURE0)
|
||||
return this
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user