Skip to content

Commit

Permalink
feat: ping when particle burrow nearby
Browse files Browse the repository at this point in the history
  • Loading branch information
My-Name-Is-Jeff committed May 15, 2024
1 parent 227f6cf commit 4109d95
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 11 deletions.
11 changes: 10 additions & 1 deletion src/main/kotlin/gg/skytils/skytilsmod/core/Config.kt
Original file line number Diff line number Diff line change
Expand Up @@ -1563,6 +1563,13 @@ object Config : Vigilant(
var treasureBurrowColor = Color(173, 216, 230)

// TODO: Add translations
@Property(
type = PropertyType.SWITCH, name = "Ping when Burrow is Nearby",
description = "Pings when a burrow is nearby.",
category = "Events", subcategory = "Mythological"
)
var pingNearbyBurrow = false

@Property(
type = PropertyType.SWITCH, name = "Griffin Burrow Estimation",
description = "Estimates griffin burrow position after using spade near the previous burrow.",
Expand Down Expand Up @@ -4376,7 +4383,9 @@ object Config : Vigilant(
arrayOf(
"emptyBurrowColor",
"mobBurrowColor",
"treasureBurrowColor"
"treasureBurrowColor",
"burrowEstimation",
"pingNearbyBurrow"
).forEach { propertyName -> addDependency(propertyName, "showGriffinBurrows") }

addDependency("activePetColor", "highlightActivePet")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,10 @@
package gg.skytils.skytilsmod.features.impl.events

import com.google.common.collect.EvictingQueue
import gg.essential.elementa.state.BasicState
import gg.essential.elementa.state.State
import gg.essential.universal.UMatrixStack
import gg.essential.universal.UMinecraft
import gg.essential.universal.wrappers.UPlayer
import gg.skytils.skytilsmod.Skytils
import gg.skytils.skytilsmod.Skytils.Companion.mc
import gg.skytils.skytilsmod.core.SoundQueue
import gg.skytils.skytilsmod.events.impl.MainReceivePacketEvent
import gg.skytils.skytilsmod.events.impl.PacketEvent
import gg.skytils.skytilsmod.utils.*
Expand Down Expand Up @@ -56,7 +53,7 @@ import kotlin.math.sin
object GriffinBurrows {
val particleBurrows = hashMapOf<BlockPos, ParticleBurrow>()
var lastDugParticleBurrow: BlockPos? = null
val recentlyDugParticleBurrows: EvictingQueue<BlockPos> = EvictingQueue.create(5)
val recentlyDugParticleBurrows = EvictingQueue.create<BlockPos>(5)

var hasSpadeInHotbar = false

Expand Down Expand Up @@ -190,6 +187,11 @@ object GriffinBurrows {
val burrow = particleBurrows.getOrPut(pos) {
ParticleBurrow(pos, hasFootstep = false, hasEnchant = false)
}
if (burrow.type == -1 && type.isBurrowType) {
if (Skytils.config.pingNearbyBurrow) {
SoundQueue.addToQueue("random.orb", 0.8f, 1f, 0, true)
}
}
when (type) {
ParticleType.FOOTSTEP -> burrow.hasFootstep = true
ParticleType.ENCHANT -> burrow.hasEnchant = true
Expand Down Expand Up @@ -255,8 +257,8 @@ object GriffinBurrows {
BlockPos(x, y, z)
}

protected abstract val waypointText: String
protected abstract val color: Color
abstract val waypointText: String
abstract val color: Color
fun drawWaypoint(partialTicks: Float, matrixStack: UMatrixStack) {
val (viewerX, viewerY, viewerZ) = RenderUtil.getViewerPos(partialTicks)
val renderX = this.x - viewerX
Expand Down Expand Up @@ -341,7 +343,7 @@ object GriffinBurrows {
private val ItemStack?.isSpade
get() = ItemUtil.getSkyBlockItemID(this) == "ANCESTRAL_SPADE"

private enum class ParticleType(val check: S2APacketParticles.() -> Boolean) {
private enum class ParticleType(val check: S2APacketParticles.() -> Boolean, val isBurrowType: Boolean = true) {
EMPTY({
type == EnumParticleTypes.CRIT_MAGIC && count == 4 && speed == 0.01f && xOffset == 0.5f && yOffset == 0.1f && zOffset == 0.5f
}),
Expand All @@ -354,10 +356,10 @@ object GriffinBurrows {
}),
FOOTSTEP({
type == EnumParticleTypes.FOOTSTEP && count == 1 && speed == 0.0f && xOffset == 0.05f && yOffset == 0.0f && zOffset == 0.05f
}),
}, false),
ENCHANT({
type == EnumParticleTypes.ENCHANTMENT_TABLE && count == 5 && speed == 0.05f && xOffset == 0.5f && yOffset == 0.4f && zOffset == 0.5f
});
}, false);

companion object {
fun getParticleType(packet: S2APacketParticles): ParticleType? {
Expand Down

0 comments on commit 4109d95

Please sign in to comment.