mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-11 11:04:05 +09:00
better foley addressing
This commit is contained in:
@@ -268,14 +268,13 @@ class TerrarumMusicGovernor : MusicGovernor() {
|
||||
musicBin = ArrayList(newMusicBin.toList())
|
||||
}
|
||||
|
||||
private val ambients: List<MusicContainer> =
|
||||
ModMgr.getFilesFromEveryMod("audio/ambient/").flatMap { it.second.listFiles()?.toList() ?: emptyList() }.mapNotNull {
|
||||
printdbg(this, "Ambient: ${it.absolutePath}")
|
||||
private val ambients: HashMap<String, HashSet<MusicContainer>> =
|
||||
HashMap(Terrarum.audioCodex.audio.filter { it.key.startsWith("ambient.") }.map { it.key to it.value.mapNotNull { fileHandle ->
|
||||
try {
|
||||
MusicContainer(
|
||||
it.nameWithoutExtension.replace('_', ' ').split(" ").map { it.capitalize() }.joinToString(" "),
|
||||
it,
|
||||
Gdx.audio.newMusic(Gdx.files.absolute(it.absolutePath)).also {
|
||||
fileHandle.nameWithoutExtension().replace('_', ' ').split(" ").map { it.capitalize() }.joinToString(" "),
|
||||
fileHandle.file(),
|
||||
Gdx.audio.newMusic(fileHandle).also {
|
||||
it.isLooping = true
|
||||
}
|
||||
) { stopAmbient() }
|
||||
@@ -284,7 +283,7 @@ class TerrarumMusicGovernor : MusicGovernor() {
|
||||
e.printStackTrace()
|
||||
null
|
||||
}
|
||||
}
|
||||
}.toHashSet() }.toMap())
|
||||
|
||||
private val musicStartHooks = ArrayList<(MusicContainer) -> Unit>()
|
||||
private val musicStopHooks = ArrayList<(MusicContainer) -> Unit>()
|
||||
@@ -306,8 +305,12 @@ class TerrarumMusicGovernor : MusicGovernor() {
|
||||
songs.forEach {
|
||||
App.disposables.add(it.gdxMusic)
|
||||
}
|
||||
ambients.forEach {
|
||||
App.disposables.add(it.gdxMusic)
|
||||
ambients.forEach { (k, v) ->
|
||||
printdbg(this, "Ambients: $k -> $v")
|
||||
|
||||
v.forEach {
|
||||
App.disposables.add(it.gdxMusic)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,7 +371,8 @@ class TerrarumMusicGovernor : MusicGovernor() {
|
||||
}
|
||||
|
||||
private fun stopAmbient() {
|
||||
App.audioMixer.ambientTrack.nextTrack = currentAmbientTrack
|
||||
if (::currentAmbientTrack.isInitialized)
|
||||
App.audioMixer.ambientTrack.nextTrack = currentAmbientTrack
|
||||
}
|
||||
|
||||
private fun startAmbient(song: MusicContainer) {
|
||||
@@ -419,8 +423,8 @@ class TerrarumMusicGovernor : MusicGovernor() {
|
||||
in 3f..5f -> "autumn"
|
||||
else -> "winter"
|
||||
}
|
||||
val track = ambients.filter { it.name.lowercase().startsWith(seasonName) }.random()
|
||||
|
||||
val track = ambients["ambient.season.$seasonName"]!!.random()
|
||||
startAmbient(track)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package net.torvald.terrarum.modulebasegame.gameitems
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
|
||||
Reference in New Issue
Block a user