aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/util')
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/CommonSoundEffects.kt28
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/MC.kt5
2 files changed, 33 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/util/CommonSoundEffects.kt b/src/main/kotlin/moe/nea/firmament/util/CommonSoundEffects.kt
new file mode 100644
index 0000000..819ea27
--- /dev/null
+++ b/src/main/kotlin/moe/nea/firmament/util/CommonSoundEffects.kt
@@ -0,0 +1,28 @@
+package moe.nea.firmament.util
+
+import net.minecraft.client.sound.AbstractSoundInstance
+import net.minecraft.client.sound.PositionedSoundInstance
+import net.minecraft.client.sound.SoundInstance
+import net.minecraft.sound.SoundCategory
+import net.minecraft.sound.SoundEvent
+import net.minecraft.util.Identifier
+
+// TODO: Replace these with custom sound events that just re use the vanilla ogg s
+object CommonSoundEffects {
+ fun playSound(identifier: Identifier) {
+ MC.soundManager.play(PositionedSoundInstance.master(SoundEvent.of(identifier), 1F))
+ }
+
+ fun playFailure() {
+ playSound(Identifier("minecraft", "block.anvil.place"))
+ }
+
+
+ fun playSuccess() {
+ playDing()
+ }
+
+ fun playDing() {
+ playSound(Identifier("minecraft", "entity.arrow.hit_player"))
+ }
+}
diff --git a/src/main/kotlin/moe/nea/firmament/util/MC.kt b/src/main/kotlin/moe/nea/firmament/util/MC.kt
index ab35f0e..8fc15b5 100644
--- a/src/main/kotlin/moe/nea/firmament/util/MC.kt
+++ b/src/main/kotlin/moe/nea/firmament/util/MC.kt
@@ -2,11 +2,16 @@ package moe.nea.firmament.util
import io.github.moulberry.repo.data.Coordinate
import net.minecraft.client.MinecraftClient
+import net.minecraft.client.gui.screen.ingame.HandledScreen
import net.minecraft.util.math.BlockPos
+import moe.nea.firmament.mixins.accessor.AccessorHandledScreen
object MC {
+ inline val soundManager get() = MinecraftClient.getInstance().soundManager
inline val player get() = MinecraftClient.getInstance().player
inline val world get() = MinecraftClient.getInstance().world
+ inline val screen get() = MinecraftClient.getInstance().currentScreen
+ inline val handledScreen: HandledScreen<*>? get() = MinecraftClient.getInstance().currentScreen as? HandledScreen<*>
}
val Coordinate.blockPos: BlockPos