aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/ambientaddons/utils/render/EntityUtils.kt
diff options
context:
space:
mode:
authorAppability <appable@icloud.com>2022-10-17 16:11:40 -0700
committerAppability <appable@icloud.com>2022-10-17 16:11:40 -0700
commitfcd49c8b59f9c76008b5112a2e296c164b168842 (patch)
treeba3be0850cfe2185a68e6ba9fd862e5c59fd57dc /src/main/kotlin/com/ambientaddons/utils/render/EntityUtils.kt
parentd4245bb705c7d8965e6bf63c90614dcfef38dcf7 (diff)
downloadAmbientAddons-fcd49c8b59f9c76008b5112a2e296c164b168842.tar.gz
AmbientAddons-fcd49c8b59f9c76008b5112a2e296c164b168842.tar.bz2
AmbientAddons-fcd49c8b59f9c76008b5112a2e296c164b168842.zip
trapper esp
Diffstat (limited to 'src/main/kotlin/com/ambientaddons/utils/render/EntityUtils.kt')
-rw-r--r--src/main/kotlin/com/ambientaddons/utils/render/EntityUtils.kt94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/main/kotlin/com/ambientaddons/utils/render/EntityUtils.kt b/src/main/kotlin/com/ambientaddons/utils/render/EntityUtils.kt
index b3abbcf..c5bc2e9 100644
--- a/src/main/kotlin/com/ambientaddons/utils/render/EntityUtils.kt
+++ b/src/main/kotlin/com/ambientaddons/utils/render/EntityUtils.kt
@@ -1,14 +1,21 @@
package com.ambientaddons.utils.render
import AmbientAddons.Companion.mc
+import net.minecraft.client.Minecraft
+import net.minecraft.client.renderer.GlStateManager
import net.minecraft.client.renderer.Tessellator
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
import net.minecraft.entity.Entity
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.util.AxisAlignedBB
import net.minecraft.util.BlockPos
+import net.minecraft.util.MathHelper
+import net.minecraft.util.ResourceLocation
import org.lwjgl.opengl.GL11.*
import java.awt.Color
+import kotlin.math.cos
+import kotlin.math.sin
+
// diretly stolen from Harry282/Skyblock-Client
object EntityUtils {
@@ -145,6 +152,93 @@ object EntityUtils {
glPopMatrix()
}
+ private val beaconBeam = ResourceLocation("textures/entity/beacon_beam.png")
+
+ // from Moulberry/NotEnoughUpdates under LGPL 3.0, presumably from Mojang
+ fun renderBeaconBeam(
+ x: Double, y: Double, z: Double, color: Color, alpha: Float,
+ partialTicks: Float, esp: Boolean
+ ) {
+ val rgb = color.rgb
+ val height = 300
+ val bottomOffset = 0
+ val topOffset = bottomOffset + height
+ val tessellator = Tessellator.getInstance()
+ val worldrenderer = tessellator.worldRenderer
+ if (esp) {
+ GlStateManager.disableDepth()
+ }
+ Minecraft.getMinecraft().textureManager.bindTexture(beaconBeam)
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT.toFloat())
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT.toFloat())
+ GlStateManager.disableLighting()
+ GlStateManager.enableCull()
+ GlStateManager.enableTexture2D()
+ GlStateManager.tryBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, GL_ONE, GL_ZERO)
+ GlStateManager.enableBlend()
+ GlStateManager.tryBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO)
+ val time = Minecraft.getMinecraft().theWorld.totalWorldTime + partialTicks.toDouble()
+ val d1 = MathHelper.func_181162_h(-time * 0.2 - MathHelper.floor_double(-time * 0.1).toDouble())
+ val r = (rgb shr 16 and 0xFF) / 255f
+ val g = (rgb shr 8 and 0xFF) / 255f
+ val b = (rgb and 0xFF) / 255f
+ val d2 = time * 0.025 * -1.5
+ val d4 = 0.5 + cos(d2 + 2.356194490192345) * 0.2
+ val d5 = 0.5 + sin(d2 + 2.356194490192345) * 0.2
+ val d6 = 0.5 + cos(d2 + Math.PI / 4.0) * 0.2
+ val d7 = 0.5 + sin(d2 + Math.PI / 4.0) * 0.2
+ val d8 = 0.5 + cos(d2 + 3.9269908169872414) * 0.2
+ val d9 = 0.5 + sin(d2 + 3.9269908169872414) * 0.2
+ val d10 = 0.5 + cos(d2 + 5.497787143782138) * 0.2
+ val d11 = 0.5 + sin(d2 + 5.497787143782138) * 0.2
+ val d14 = -1.0 + d1
+ val d15 = height.toDouble() * 2.5 + d14
+ worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR)
+ worldrenderer.pos(x + d4, y + topOffset, z + d5).tex(1.0, d15).color(r, g, b, 1.0f * alpha).endVertex()
+ worldrenderer.pos(x + d4, y + bottomOffset, z + d5).tex(1.0, d14).color(r, g, b, 1.0f).endVertex()
+ worldrenderer.pos(x + d6, y + bottomOffset, z + d7).tex(0.0, d14).color(r, g, b, 1.0f).endVertex()
+ worldrenderer.pos(x + d6, y + topOffset, z + d7).tex(0.0, d15).color(r, g, b, 1.0f * alpha).endVertex()
+ worldrenderer.pos(x + d10, y + topOffset, z + d11).tex(1.0, d15).color(r, g, b, 1.0f * alpha).endVertex()
+ worldrenderer.pos(x + d10, y + bottomOffset, z + d11).tex(1.0, d14).color(r, g, b, 1.0f).endVertex()
+ worldrenderer.pos(x + d8, y + bottomOffset, z + d9).tex(0.0, d14).color(r, g, b, 1.0f).endVertex()
+ worldrenderer.pos(x + d8, y + topOffset, z + d9).tex(0.0, d15).color(r, g, b, 1.0f * alpha).endVertex()
+ worldrenderer.pos(x + d6, y + topOffset, z + d7).tex(1.0, d15).color(r, g, b, 1.0f * alpha).endVertex()
+ worldrenderer.pos(x + d6, y + bottomOffset, z + d7).tex(1.0, d14).color(r, g, b, 1.0f).endVertex()
+ worldrenderer.pos(x + d10, y + bottomOffset, z + d11).tex(0.0, d14).color(r, g, b, 1.0f).endVertex()
+ worldrenderer.pos(x + d10, y + topOffset, z + d11).tex(0.0, d15).color(r, g, b, 1.0f * alpha).endVertex()
+ worldrenderer.pos(x + d8, y + topOffset, z + d9).tex(1.0, d15).color(r, g, b, 1.0f * alpha).endVertex()
+ worldrenderer.pos(x + d8, y + bottomOffset, z + d9).tex(1.0, d14).color(r, g, b, 1.0f).endVertex()
+ worldrenderer.pos(x + d4, y + bottomOffset, z + d5).tex(0.0, d14).color(r, g, b, 1.0f).endVertex()
+ worldrenderer.pos(x + d4, y + topOffset, z + d5).tex(0.0, d15).color(r, g, b, 1.0f * alpha).endVertex()
+ tessellator.draw()
+ GlStateManager.disableCull()
+ val d12 = -1.0 + d1
+ val d13 = height + d12
+ worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR)
+ worldrenderer.pos(x + 0.2, y + topOffset, z + 0.2).tex(1.0, d13).color(r, g, b, 0.25f * alpha).endVertex()
+ worldrenderer.pos(x + 0.2, y + bottomOffset, z + 0.2).tex(1.0, d12).color(r, g, b, 0.25f).endVertex()
+ worldrenderer.pos(x + 0.8, y + bottomOffset, z + 0.2).tex(0.0, d12).color(r, g, b, 0.25f).endVertex()
+ worldrenderer.pos(x + 0.8, y + topOffset, z + 0.2).tex(0.0, d13).color(r, g, b, 0.25f * alpha).endVertex()
+ worldrenderer.pos(x + 0.8, y + topOffset, z + 0.8).tex(1.0, d13).color(r, g, b, 0.25f * alpha).endVertex()
+ worldrenderer.pos(x + 0.8, y + bottomOffset, z + 0.8).tex(1.0, d12).color(r, g, b, 0.25f).endVertex()
+ worldrenderer.pos(x + 0.2, y + bottomOffset, z + 0.8).tex(0.0, d12).color(r, g, b, 0.25f).endVertex()
+ worldrenderer.pos(x + 0.2, y + topOffset, z + 0.8).tex(0.0, d13).color(r, g, b, 0.25f * alpha).endVertex()
+ worldrenderer.pos(x + 0.8, y + topOffset, z + 0.2).tex(1.0, d13).color(r, g, b, 0.25f * alpha).endVertex()
+ worldrenderer.pos(x + 0.8, y + bottomOffset, z + 0.2).tex(1.0, d12).color(r, g, b, 0.25f).endVertex()
+ worldrenderer.pos(x + 0.8, y + bottomOffset, z + 0.8).tex(0.0, d12).color(r, g, b, 0.25f).endVertex()
+ worldrenderer.pos(x + 0.8, y + topOffset, z + 0.8).tex(0.0, d13).color(r, g, b, 0.25f * alpha).endVertex()
+ worldrenderer.pos(x + 0.2, y + topOffset, z + 0.8).tex(1.0, d13).color(r, g, b, 0.25f * alpha).endVertex()
+ worldrenderer.pos(x + 0.2, y + bottomOffset, z + 0.8).tex(1.0, d12).color(r, g, b, 0.25f).endVertex()
+ worldrenderer.pos(x + 0.2, y + bottomOffset, z + 0.2).tex(0.0, d12).color(r, g, b, 0.25f).endVertex()
+ worldrenderer.pos(x + 0.2, y + topOffset, z + 0.2).tex(0.0, d13).color(r, g, b, 0.25f * alpha).endVertex()
+ tessellator.draw()
+ GlStateManager.disableLighting()
+ GlStateManager.enableTexture2D()
+ if (esp) {
+ GlStateManager.enableDepth()
+ }
+ }
+
fun drawEntityBox(entity: Entity, color: Color, outline: Boolean, fill: Boolean, esp: Boolean, partialTicks: Float) {
if (!outline && !fill) return
val renderManager = mc.renderManager