aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/features/rift/IchorHighlight.kt
blob: d18413d557a0fb6cf3eb32b858c76e5f485604b4 (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
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 newPos = WorldRenderUtils.fixRenderPos(event.x, event.y, event.z)
        val x = newPos[0]
        val y = newPos[1] + 3
        val z = newPos[2]

        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
                                )
                            }
                        }
                    }
                }
            }
        }
    }
}