aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/features/rift/IchorHighlight.kt
blob: 72581d396e0e6c331ba7b1849c135074aff2b1b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package dulkirmod.features.rift

import dulkirmod.config.DulkirConfig
import dulkirmod.utils.TabListUtils
import dulkirmod.utils.WorldRenderUtils
import net.minecraft.entity.item.EntityArmorStand
import net.minecraft.init.Items
import net.minecraftforge.client.event.RenderLivingEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import java.awt.Color

object IchorHighlight {
    private const val ichorTexture =
        "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzAzNDA5MjNhNmRlNDgyNWExNzY4MTNkMTMzNTAzZWZmMTg2ZGIwODk2ZTMyYjY3MDQ5MjhjMmEyYmY2ODQyMiJ9fX0="

    @SubscribeEvent
    fun onRenderLiving(event: RenderLivingEvent.Post<*>) {
        if (!DulkirConfig.ichorHighlight) return
        if (TabListUtils.area != "The Rift") return
        val entity = event.entity

        val x =
            entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * WorldRenderUtils.partialTicks
        val y =
            entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * WorldRenderUtils.partialTicks
        val z =
            entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * WorldRenderUtils.partialTicks

        if (entity is EntityArmorStand) {
            if (entity.getEquipmentInSlot(4) != null && entity.getEquipmentInSlot(4).item === Items.skull) {
                val stack = entity.getEquipmentInSlot(4)
                if (stack.hasTagCompound() && stack.tagCompound.hasKey("SkullOwner")) {
                    val skullOwner = stack.tagCompound.getCompoundTag("SkullOwner")
                    if (skullOwner.hasKey("Properties")) {
                        val properties = skullOwner.getCompoundTag("Properties")
                        if (properties.hasKey("textures")) {
                            if (ichorTexture == properties.getTagList("textures", 10).getCompoundTagAt(0)
                                    .getString("Value")
                            ) {
                                WorldRenderUtils.drawCustomBox(
                                    x - .5,
                                    1.0,
                                    y - 2,
                                    1.0,
                                    z - .5,
                                    1.0,
                                    Color(15, 247, 236, 255),
                                    3f,
                                    phase = false
                                )
                            }
                        }
                    }
                }
            }
        }
    }
}