From e88b595320cd0b3132a52d411ec2fd276c131b32 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sat, 21 Oct 2023 18:33:13 +0900 Subject: [PATCH] more test music play stuffs --- src/net/torvald/terrarum/SanicLoadScreen.kt | 4 +- .../terrarum/modulebasegame/BuildingMaker.kt | 2 +- .../modulebasegame/TerrarumMusicGovernor.kt | 41 ++++++++++++------- .../modulebasegame/ui/Notification.kt | 2 +- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/net/torvald/terrarum/SanicLoadScreen.kt b/src/net/torvald/terrarum/SanicLoadScreen.kt index 8f76b8026..91cf053ef 100644 --- a/src/net/torvald/terrarum/SanicLoadScreen.kt +++ b/src/net/torvald/terrarum/SanicLoadScreen.kt @@ -167,9 +167,9 @@ object SanicLoadScreen : LoadScreenBase() { val drawHeight = getPulseEffWidthMul() * textTex.height it.draw(textTex, textX - (drawWidth - textTex.width) / 2f, - glideDispY - 2f - (drawHeight - textTex.height) / 2f, + glideDispY - 2f - (drawHeight - textTex.height) / 2f + drawHeight, drawWidth, - drawHeight + -drawHeight ) diff --git a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt index 10967c96d..a2765dca2 100644 --- a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt +++ b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt @@ -413,7 +413,7 @@ class BuildingMaker(batch: FlippingSpriteBatch) : IngameInstance(batch) { } override fun dispose() { - blockMarkings.dispose() +// blockMarkings.dispose() uiPenMenu.dispose() } diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumMusicGovernor.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumMusicGovernor.kt index 50a7ba104..1fcefb39f 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumMusicGovernor.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumMusicGovernor.kt @@ -3,11 +3,9 @@ package net.torvald.terrarum.modulebasegame import com.badlogic.gdx.Gdx import com.badlogic.gdx.audio.Music import com.badlogic.gdx.utils.GdxRuntimeException -import net.torvald.terrarum.App +import net.torvald.terrarum.* import net.torvald.terrarum.App.printdbg -import net.torvald.terrarum.IngameInstance -import net.torvald.terrarum.MusicGovernor -import net.torvald.terrarum.tryDispose +import net.torvald.unicode.EMDASH import java.io.File data class MusicContainer( @@ -25,7 +23,7 @@ class TerrarumMusicGovernor : MusicGovernor() { printdbg(this, "Music: ${it.absolutePath}") try { MusicContainer( - it.nameWithoutExtension, + it.nameWithoutExtension.replace('_', ' ').split(" ").map { it.capitalize() }.joinToString(" "), it, Gdx.audio.newMusic(Gdx.files.absolute(it.absolutePath)) ) @@ -36,10 +34,22 @@ class TerrarumMusicGovernor : MusicGovernor() { } } ?: emptyList() // TODO test code - private var currentMusic: MusicContainer? = null - private var musicBin: ArrayList = ArrayList(songs.indices.toList().shuffled()) + private var currentMusic: MusicContainer? = null + private var currentAmbient: MusicContainer? = null + + + + private var warningPrinted = false + + private val musicVolume: Float + get() = (App.getConfigDouble("bgmvolume") * App.getConfigDouble("mastervolume")).toFloat() + private val ambientVolume: Float + get() = (App.getConfigDouble("sfxvolume") * App.getConfigDouble("mastervolume")).toFloat() + + + private fun stopMusic() { printdbg(this, "Now stopping: $currentMusic") @@ -52,11 +62,16 @@ class TerrarumMusicGovernor : MusicGovernor() { printdbg(this, "Intermission: $intermissionLength seconds") } + private fun startMusic(song: MusicContainer) { + song.gdxMusic.volume = musicVolume + song.gdxMusic.play() + printdbg(this, "Now playing: $song") - private var warningPrinted = false + INGAME.sendNotification("Now Playing $EMDASH ${song.name}") + + currentMusic = song + } - private val musicVolume: Float - get() = (App.getConfigDouble("musicvolume") * App.getConfigDouble("mastervolume")).toFloat() override fun update(ingame: IngameInstance, delta: Float) { if (songs.isEmpty()) { @@ -82,11 +97,7 @@ class TerrarumMusicGovernor : MusicGovernor() { musicBin = ArrayList(songs.indices.toList().shuffled()) } - song.gdxMusic.volume = musicVolume - song.gdxMusic.play() - printdbg(this, "Now playing: $song") - - currentMusic = song + startMusic(song) // process fadeout request if (fadeoutFired) { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt b/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt index af335e116..27978d76d 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/Notification.kt @@ -83,7 +83,7 @@ class Notification : UICanvas() { message.forEachIndexed { index, s -> val xoff = 6 + (displayedTextWidth - realTextWidth) / 2 val y = -textHeight + App.fontGame.lineHeight * index - App.fontGame.draw(batch, s, LRmargin + xoff, y ) + App.fontGame.draw(batch, s, LRmargin + xoff, y - 1) }