aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/dulkirmod/features/DragonFeatures.kt
diff options
context:
space:
mode:
authoringlettronald <inglettronald@gmail.com>2023-05-19 05:37:40 -0500
committeringlettronald <inglettronald@gmail.com>2023-05-19 05:37:40 -0500
commit170c6504bdb949c5dd133514b3db91823169cbad (patch)
treebaa86202f421eb0a5573a29264f0e852331221a2 /src/main/kotlin/dulkirmod/features/DragonFeatures.kt
parent95caa9cc8196021f89fee4a8db54706676ee49c9 (diff)
downloadDulkirMod-170c6504bdb949c5dd133514b3db91823169cbad.tar.gz
DulkirMod-170c6504bdb949c5dd133514b3db91823169cbad.tar.bz2
DulkirMod-170c6504bdb949c5dd133514b3db91823169cbad.zip
organization into better files
Diffstat (limited to 'src/main/kotlin/dulkirmod/features/DragonFeatures.kt')
-rw-r--r--src/main/kotlin/dulkirmod/features/DragonFeatures.kt217
1 files changed, 0 insertions, 217 deletions
diff --git a/src/main/kotlin/dulkirmod/features/DragonFeatures.kt b/src/main/kotlin/dulkirmod/features/DragonFeatures.kt
deleted file mode 100644
index 9a120fc..0000000
--- a/src/main/kotlin/dulkirmod/features/DragonFeatures.kt
+++ /dev/null
@@ -1,217 +0,0 @@
-package dulkirmod.features
-
-import dulkirmod.DulkirMod.Companion.mc
-import dulkirmod.config.DulkirConfig
-import dulkirmod.utils.ScoreBoardUtils
-import dulkirmod.utils.WorldRenderUtils
-import net.minecraft.util.BlockPos
-import net.minecraft.util.Vec3
-import net.minecraft.world.World
-import net.minecraftforge.client.event.RenderWorldLastEvent
-import net.minecraftforge.event.world.WorldEvent
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
-import java.awt.Color
-import java.util.concurrent.Executors
-import java.util.concurrent.TimeUnit
-import kotlin.math.max
-
-object DragonFeatures {
- data class Dragon(val color: String, val pos: Vec3, var spawnTime: Long)
- data class Waypoint(val pos: Vec3, val color: String)
-
- private val dragons = arrayOf(
- Dragon("orange", Vec3(84.0, 18.0, 56.0), 0),
- Dragon("red", Vec3(27.0, 18.0, 56.0), 0),
- Dragon("green", Vec3(26.0, 18.0, 95.0), 0),
- Dragon("purple", Vec3(57.0, 18.0, 125.0), 0),
- Dragon("blue", Vec3(84.0, 18.0, 95.0), 0)
- )
-
- private val gyros = arrayOf(
- Waypoint(Vec3(83.5,5.5,104.5), "blue"), // blue
- Waypoint(Vec3(25.5, 5.5, 81.5), "green") // green
- )
- private val decoys = arrayOf(
- Waypoint(Vec3(37.5, 14.5, 44.5), "red"), // red
- Waypoint(Vec3(56.5, 7.5, 124.5), "purple"), // purple
- Waypoint(Vec3(90.5, 11.5, 100.5), "blue"), // blue
- Waypoint(Vec3(21.5, 11.5, 88.5), "green") // green
- )
- private val shoot = arrayOf(
- Waypoint(Vec3(56.5, 20.5, 124.5), "purple"), // purple
- Waypoint(Vec3(84.5, 20.5, 59.5), "orange"), // orange
- Waypoint(Vec3(23.5,21.5, 54.5), "red"), // red
- Waypoint(Vec3(27.5, 16.5, 94.5), "green"), // green
- Waypoint(Vec3(85.5, 20.5, 98.5), "blue") // blue
- )
-
- private var greenAlive = true
- private var blueAlive = true
- private var redAlive = true
- private var orangeAlive = true
- private var purpleAlive = true
-
- /**
- * Called from within the MixinWorld Class
- */
- fun handleNewParticle(pID: Int, x: Double, y: Double, z: Double) {
- if (!DulkirConfig.dragonTimer) return
- if (!ScoreBoardUtils.isInM7) return
-
- if (pID != 26) return
-
- val particleVec = Vec3(x, y, z)
- dragons.forEach {
- if (System.currentTimeMillis() - it.spawnTime < 10000 || !inRangeOf(it.color, particleVec)) return@forEach
- it.spawnTime = System.currentTimeMillis()
- }
- }
-
- @SubscribeEvent
- fun onRenderWorld(event: RenderWorldLastEvent) {
- renderDragonBoxes()
-
- if (!DulkirConfig.dragonTimer) return
- if (!ScoreBoardUtils.isInM7) return
-
- val curTime = System.currentTimeMillis()
- dragons.forEach {
- if (it.spawnTime + 5000 < curTime || !isAlive(it.color)) return@forEach
- val timeUntilSpawn = (it.spawnTime + 5000 - curTime) / 1000f
- val color = when {
- timeUntilSpawn <= 1 -> "§c"
- timeUntilSpawn <= 3 -> "§e"
- else -> "§a"
- }
-
- val scale = max(1.0, mc.thePlayer.positionVector.distanceTo(it.pos) / 5.0).toFloat()
-
- WorldRenderUtils.renderString(
- it.pos, "${color}${String.format("%.2f", timeUntilSpawn)}", false, scale, true
- )
- }
- }
-
-
- fun updateDragonDead() {
- if (!(DulkirConfig.dragonKillBox || DulkirConfig.lbWaypoints || DulkirConfig.decoyWaypoints || DulkirConfig.gyroWaypoints)) return
- if (!ScoreBoardUtils.isInM7) return
- if (mc.theWorld == null) return
- if (mc.thePlayer.positionVector.yCoord > 45) return
-
- val world: World = mc.theWorld
-
- orangeAlive = !world.isAirBlock(BlockPos(90, 21, 56))
- redAlive = !world.isAirBlock(BlockPos(22, 20 , 59))
- greenAlive = !world.isAirBlock(BlockPos(22, 21, 94))
- purpleAlive = !world.isAirBlock(BlockPos(56, 20, 130))
- blueAlive = !world.isAirBlock(BlockPos(89, 21, 94))
- }
-
- /**
- * true = dead
- */
- private fun isAlive(color: String): Boolean {
- return when (color) {
- "orange" -> orangeAlive
- "red" -> redAlive
- "green" -> greenAlive
- "purple" -> purpleAlive
- "blue" -> blueAlive
- else -> false
- }
- }
-
- private fun inRangeOf(color: String, pos: Vec3): Boolean {
- val x = pos.xCoord.toInt()
- val y = pos.yCoord.toInt()
- val z = pos.zCoord.toInt()
-
- return when (color) {
- "orange" -> {
- x in 82..88 && y in 15..22 && z in 53..59
- }
-
- "red" -> {
- x in 24..30 && y in 15..22 && z in 56..62
- }
-
- "green" -> {
- x in 23..29 && y in 15..22 && z in 91..97
- }
-
- "purple" -> {
- x in 53..59 && y in 15..22 && z in 122..128
- }
-
- "blue" -> {
- x in 82..88 && y in 15..22 && z in 91..97
- }
-
- else -> {
- false
- }
- }
- }
-
- private fun renderDragonBoxes() {
- if (!DulkirConfig.dragonKillBox) return
- if (!ScoreBoardUtils.isInM7) return
- if (mc.thePlayer.positionVector.yCoord > 45) return
- // Blue
- if (isAlive("blue"))
- WorldRenderUtils.drawCustomBox(71.5, 25.0, 16.0, 10.0, 82.5, 25.0, Color(0, 170, 170, 255), 3f, phase = false)
- // Purple
- if (isAlive("purple"))
- WorldRenderUtils.drawCustomBox(45.5, 23.0, 13.0, 10.0, 113.5, 23.0, Color(170, 0, 170, 255), 3f, phase = false)
- // Green
- if (isAlive("green"))
- WorldRenderUtils.drawCustomBox(7.0, 30.0, 8.0, 20.0, 80.0, 30.0, Color(85, 255, 85, 255), 3f, phase = false)
- // Red
- if (isAlive("red"))
- WorldRenderUtils.drawCustomBox(14.5, 25.0, 13.0, 15.0, 45.5, 25.0, Color(255, 85, 85, 255), 3f, phase = false)
- // Orange
- if (isAlive("orange"))
- WorldRenderUtils.drawCustomBox(72.0, 30.0, 8.0, 20.0, 47.0, 29.0, Color(255, 170, 0, 255), 3f, phase = false)
- }
-
- @SubscribeEvent
- fun updateM7Check(event: WorldEvent.Load) {
- val executor = Executors.newSingleThreadScheduledExecutor()
- executor.schedule({
- ScoreBoardUtils.inM7()
- }, 10, TimeUnit.SECONDS)
- }
-
- @SubscribeEvent
- fun renderP5Waypoints(event: RenderWorldLastEvent) {
- if (!(DulkirConfig.gyroWaypoints || DulkirConfig.lbWaypoints || DulkirConfig.decoyWaypoints)) return
- if (!ScoreBoardUtils.isInM7) return
- val playerVec = mc.thePlayer.positionVector
- if (playerVec.yCoord > 45) return
- if (DulkirConfig.gyroWaypoints) {
- val color = "§6"
- for (g in gyros) {
- if (!isAlive(g.color)) continue
- WorldRenderUtils.drawCustomBox(g.pos.xCoord - .5, 1.0, g.pos.yCoord -.5, 1.0, g.pos.zCoord -.5, 1.0, Color(125, 87, 10, 255), 3f, phase = true)
- WorldRenderUtils.renderString(g.pos.add(Vec3(0.0, 1.0,0.0)), "${color}Gyro", false, max(1f, playerVec.distanceTo(g.pos).toFloat()/10f), false)
- }
- }
- if (DulkirConfig.lbWaypoints) {
- val color = "§a"
- for (s in shoot) {
- if (!isAlive(s.color)) continue
- WorldRenderUtils.drawCustomBox(s.pos.xCoord - .5, 1.0, s.pos.yCoord -.5, 1.0, s.pos.zCoord -.5, 1.0, Color(27, 99, 18, 255), 3f, phase = true)
- WorldRenderUtils.renderString(s.pos, "${color}Target", false, max(1f, playerVec.distanceTo(s.pos).toFloat()/10f), false)
- }
- }
- if (DulkirConfig.decoyWaypoints) {
- val color = "§3"
- for (d in decoys) {
- if (!isAlive(d.color)) continue
- WorldRenderUtils.drawCustomBox(d.pos.xCoord - .5, 1.0, d.pos.yCoord -.5, 1.0, d.pos.zCoord -.5, 1.0, Color(33, 62, 209), 3f, phase = true)
- WorldRenderUtils.renderString(d.pos, "${color}Decoy", false, max(1f, playerVec.distanceTo(d.pos).toFloat()/10f), false)
- }
- }
- }
-} \ No newline at end of file