aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/features/dungeons/ArcherHighlight.kt
blob: 395d36321fa10313f98791a2c423a9e5ae724e7c (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
59
60
61
62
63
64
65
66
67
68
69
package dulkirmod.features.dungeons

import com.google.common.eventbus.Subscribe
import dulkirmod.DulkirMod.Companion.mc
import dulkirmod.config.DulkirConfig
import dulkirmod.utils.ScoreBoardUtils
import dulkirmod.utils.TabListUtils
import dulkirmod.utils.WorldRenderUtils
import ibxm.Player
import net.minecraft.entity.player.EntityPlayer
import net.minecraftforge.client.event.RenderLivingEvent
import net.minecraftforge.client.event.RenderWorldLastEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import java.awt.Color

object ArcherHighlight {

//    @SubscribeEvent
//    fun onRenderLiving(event: RenderLivingEvent.Pre<*>) {
//        if (!DulkirConfig.archerBox) return
//        if (TabListUtils.area != "Dungeon") return
//        if (!ScoreBoardUtils.isInM7 && !DulkirConfig.archerBoxEverywhere) return
//        if (event.entity !is EntityPlayer) return
//        val name = event.entity.name ?: return
//        if (name != TabListUtils.archerName) return
//        if (mc.thePlayer.positionVector.yCoord > 45 && !DulkirConfig.archerBoxEverywhere) return
//        if (mc.thePlayer.name == name) return
//        val (x, y, z) = WorldRenderUtils.fixRenderPos(event.x, event.y, event.z)
//        WorldRenderUtils.drawCustomBox(
//            x - .5,
//            1.0,
//            y,
//            2.0,
//            z - .5,
//            1.0,
//            DulkirConfig.archBoxColor.toJavaColor(),
//            3f,
//            phase = false
//        )
//    }

    @SubscribeEvent
    fun onRenderWorldLast(event: RenderWorldLastEvent) {
        if (!DulkirConfig.archerBox) return
        if (TabListUtils.area != "Dungeon") return
        if (!ScoreBoardUtils.isInM7 && !DulkirConfig.archerBoxEverywhere) return
        val players = mc.theWorld.playerEntities.filterNotNull()
        players.forEach {
            val name = it.name ?: return@forEach
            if (name != TabListUtils.archerName) return
            if (mc.thePlayer.positionVector.yCoord > 45 && !DulkirConfig.archerBoxEverywhere) return
            if (mc.thePlayer.name == name) return
            val x = it.posX - ((it.lastTickPosX - it.posX) * event.partialTicks)
            val y = it.posY - ((it.lastTickPosY - it.posY) * event.partialTicks)
            val z = it.posZ - ((it.lastTickPosZ - it.posZ) * event.partialTicks)
            WorldRenderUtils.drawCustomBox(
                x - .5,
                1.0,
                y,
                2.0,
                z - .5,
                1.0,
                DulkirConfig.archBoxColor.toJavaColor(),
                3f,
                phase = false
            )
        }
    }
}