aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/test')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt181
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/command/TrackSoundsCommand.kt92
2 files changed, 92 insertions, 181 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt
index c6b734a78..b2b6bccb3 100644
--- a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt
+++ b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt
@@ -12,7 +12,6 @@ import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.LorenzRenderWorldEvent
import at.hannibal2.skyhanni.events.LorenzToolTipEvent
-import at.hannibal2.skyhanni.events.PlaySoundEvent
import at.hannibal2.skyhanni.events.ReceiveParticleEvent
import at.hannibal2.skyhanni.features.garden.GardenNextJacobContest
import at.hannibal2.skyhanni.features.garden.visitor.GardenVisitorColorNames
@@ -501,186 +500,6 @@ class SkyHanniDebugsAndTests {
}
@SubscribeEvent
- fun onSoundPlay(event: PlaySoundEvent) {
-// val location = event.location
-// val distance = location.distanceToPlayer()
-// val soundName = event.soundName
-// val pitch = event.pitch
-// val volume = event.volume
-
- // background music
-// if (soundName == "note.harp") {
-//// if (distance < 2) {
-//
-//
-// //Wilderness
-// val list = mutableListOf<Float>()
-//// list.add(0.4920635)
-//// list.add(0.74603176)
-//// list.add(0.8888889)
-//// list.add(1.1746032)
-//// list.add(1.7777778)
-//// list.add(0.5873016)
-//// list.add(1f)
-//// list.add(1.4920635)
-//// list.add(0.4920635)
-//// list.add(1.8730159)
-//// list.add(0.82539684)
-//// list.add(1.1111112)
-//// list.add(1.6666666)
-//// list.add(0.5555556)
-//// list.add(0.6984127)
-//// list.add(0.93650794)
-//// list.add(1.4126984)
-//// list.add(1.3333334)
-//// list.add(1.5873016)
-//
-// if (pitch in list) {
-// if (Minecraft.getMinecraft().thePlayer.isSneaking) {
-// event.isCanceled = true
-// }
-// return
-// }
-// }
-
- // diana ancestral spade
-// if (soundName == "note.harp") {
-// val list = mutableListOf<Float>()
-// list.add(0.52380955f)
-// list.add(0.5555556f)
-// list.add(0.6031746f)
-// list.add(0.63492066f)
-// list.add(0.6825397f)
-// list.add(0.71428573f)
-// list.add(0.7619048f)
-// list.add(0.7936508f)
-// list.add(0.84126985f)
-// list.add(0.8888889f)
-// list.add(0.9206349f)
-// list.add(0.96825397f)
-// list.add(1.476191f)
-// list.add(1.476191f)
-// list.add(0.50793654f)
-// list.add(0.6507937f)
-// list.add(0.6984127f)
-// list.add(0.74603176f)
-// list.add(0.93650794f)
-// list.add(0.984127f)
-// list.add(1.968254f)
-// list.add(0.4920635f)
-// list.add(1.1587307f)
-// list.add(1.1587301f)
-// list.add(1.2857143f)
-// list.add(1.4126984f)
-// list.add(1.6825397f)
-// list.add(1.8095238f)
-// list.add(1.9365079f)
-// list.add(1.4920635f)
-// list.add(1.5396825f)
-// list.add(0.8730159f)
-// list.add(1.2539682f)
-// list.add(1.4285715f)
-// list.add(1.6190476f)
-// list.add(1.4920635f)
-// list.add(0.9047619f)
-// list.add(1.1111112f)
-// list.add(1.3174603f)
-// list.add(1.5238096f)
-// list.add(1.7301587f)
-//
-// list.add(0.5873016f)
-// list.add(0.61904764f)
-// list.add(0.6666667f)
-// list.add(0.73015875f)
-// list.add(0.7777778f)
-// list.add(0.8095238f)
-// list.add(0.8095238f)
-// list.add(0.82539684f)
-//
-// list.add(0.5714286f)
-// list.add(0.85714287f)
-// list.add(1.3174603f)
-// list.add(1.9523809f)
-// list.add(1.1428572f)
-// list.add(1.2063493f)
-// list.add(1.2698413f)
-// list.add(1.6349206f)
-// list.add(1.2380953f)
-// list.add(1.7936507f)
-// list.add(1.9841269f)
-// list.add(1.1746032f)
-// list.add(1.3492063f)
-// list.add(1.6984127f)
-// list.add(1.8571428f)
-//
-// if (pitch in list) {
-// return
-// }
-// }
-
- // use ancestral spade
-// if (soundName == "mob.zombie.infect") {
-// if (pitch == 1.968254f) {
-// if (volume == 0.3f) {
-// ChatUtils.chat("used ancestral spade!")
-// return
-// }
-// }
-// }
-
- // wither shield activated
-// if (soundName == "mob.zombie.remedy") {
-// if (pitch == 0.6984127f) {
-// if (volume == 1f) {
-// return
-// }
-// }
-// }
-
- // wither shield cooldown over
-// if (soundName == "random.levelup") {
-// if (pitch == 3f) {
-// if (volume == 1f) {
-// return
-// }
-// }
-// }
-
- // teleport (hyp or aote)
-// if (soundName == "mob.endermen.portal") {
-// if (pitch == 1f && volume == 1f) {
-// return
-// }
-// }
-
- // hyp wither impact
-// if (soundName == "random.explode") {
-// if (pitch == 1f && volume == 1f) {
-// return
-// }
-// }
-
- // pick coins up
-// if (soundName == "random.orb") {
-// if (pitch == 1.4920635f && volume == 1f) {
-// return
-// }
-// }
-
-// if (soundName == "game.player.hurt") return
-// if (soundName.startsWith("step.")) return
-
-// if (soundName != "mob.chicken.plop") return
-
-// println("")
-// println("PlaySoundEvent")
-// println("soundName: $soundName")
-// println("distance: $distance")
-// println("pitch: ${pitch}f")
-// println("volume: ${volume}f")
- }
-
- @SubscribeEvent
fun onParticlePlay(event: ReceiveParticleEvent) {
// val particleType = event.type
// val distance = LocationUtils.playerLocation().distance(event.location).round(2)
diff --git a/src/main/java/at/hannibal2/skyhanni/test/command/TrackSoundsCommand.kt b/src/main/java/at/hannibal2/skyhanni/test/command/TrackSoundsCommand.kt
new file mode 100644
index 000000000..7b0fcddbd
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/test/command/TrackSoundsCommand.kt
@@ -0,0 +1,92 @@
+package at.hannibal2.skyhanni.test.command
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.GuiRenderEvent
+import at.hannibal2.skyhanni.events.LorenzTickEvent
+import at.hannibal2.skyhanni.events.PlaySoundEvent
+import at.hannibal2.skyhanni.utils.ChatUtils
+import at.hannibal2.skyhanni.utils.OSUtils
+import at.hannibal2.skyhanni.utils.RenderUtils.renderRenderables
+import at.hannibal2.skyhanni.utils.SimpleTimeMark
+import at.hannibal2.skyhanni.utils.SimpleTimeMark.Companion.fromNow
+import at.hannibal2.skyhanni.utils.renderables.Renderable
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import java.util.concurrent.ConcurrentLinkedDeque
+import kotlin.time.Duration
+import kotlin.time.Duration.Companion.seconds
+
+object TrackSoundsCommand {
+
+ private var cutOfTime: SimpleTimeMark = SimpleTimeMark.farPast()
+ private var startTime: SimpleTimeMark = SimpleTimeMark.farPast()
+
+ private val sounds = ConcurrentLinkedDeque<Pair<Duration, PlaySoundEvent>>()
+
+ private var isRecording = false
+
+ private val position get() = SkyHanniMod.feature.dev.debug.trackSoundPosition
+
+ private var display: List<Renderable> = emptyList()
+
+ fun command(args: Array<String>) {
+ if (args.firstOrNull() == "end") {
+ if (!isRecording) {
+ ChatUtils.userError("Nothing to end")
+ } else {
+ cutOfTime = SimpleTimeMark.now()
+ }
+ return
+ }
+ if (isRecording) {
+ ChatUtils.userError(
+ "Still tracking sounds, wait for the other tracking to complete before starting a new one, " +
+ "or type §e/shtracksounds end §cto end it prematurely"
+ )
+ return
+ }
+ isRecording = true
+ sounds.clear()
+ startTime = SimpleTimeMark.now()
+ cutOfTime = args.firstOrNull()?.toInt()?.seconds?.let {
+ ChatUtils.chat("Now started tracking sounds for ${it.inWholeSeconds} Seconds")
+ it.fromNow()
+ } ?: run {
+ ChatUtils.chat("Now started tracking sounds until manually ended")
+ SimpleTimeMark.farFuture()
+ }
+ }
+
+ @SubscribeEvent
+ fun onTick(event: LorenzTickEvent) {
+ if (!isRecording) return
+
+ display = sounds.takeWhile { startTime.passedSince() - it.first < 3.0.seconds }
+ .take(10).reversed().map {
+ Renderable.string("§3" + it.second.soundName + " §8p:" + it.second.pitch + " §7v:" + it.second.volume)
+ }
+
+ // The function must run after cutOfTime has passed to ensure thread safety
+ if (cutOfTime.passedSince() <= 0.1.seconds) return
+ val string = sounds.reversed().joinToString("\n") { "Time: ${it.first.inWholeMilliseconds} ${it.second}" }
+ val counter = sounds.size
+ OSUtils.copyToClipboard(string)
+ ChatUtils.chat("$counter sounds copied into the clipboard!")
+ sounds.clear()
+ isRecording = false
+ }
+
+ @SubscribeEvent
+ fun onSoundEvent(event: PlaySoundEvent) {
+ if (cutOfTime.isInPast()) return
+ if (event.soundName == "game.player.hurt" && event.pitch == 0f && event.volume == 0f) return // remove random useless sound
+ if (event.soundName == "") return // sound with empty name aren't useful
+ event.distanceToPlayer // Need to call to initialize Lazy
+ sounds.addFirst(startTime.passedSince() to event)
+ }
+
+ @SubscribeEvent
+ fun onRender(event: GuiRenderEvent.GuiOverlayRenderEvent) {
+ if (cutOfTime.isInPast()) return
+ position.renderRenderables(display, posLabel = "Track sound log")
+ }
+}