mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-17 14:04:05 +09:00
footsteps using dynamic track wip
This commit is contained in:
34
src/net/torvald/terrarum/audio/AudioCodex.kt
Normal file
34
src/net/torvald/terrarum/audio/AudioCodex.kt
Normal file
@@ -0,0 +1,34 @@
|
||||
package net.torvald.terrarum.audio
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.audio.Music
|
||||
import com.badlogic.gdx.files.FileHandle
|
||||
import com.badlogic.gdx.utils.Disposable
|
||||
import net.torvald.terrarum.Terrarum
|
||||
import net.torvald.terrarum.modulebasegame.MusicContainer
|
||||
import net.torvald.terrarum.tryDispose
|
||||
|
||||
typealias MaterialID = String
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2023-12-02.
|
||||
*/
|
||||
class AudioCodex: Disposable {
|
||||
|
||||
@Transient val footsteps = HashMap<MaterialID, HashSet<MusicContainer>>()
|
||||
|
||||
internal constructor()
|
||||
|
||||
fun addToFootstepPool(materialID: MaterialID, music: FileHandle) {
|
||||
if (footsteps[materialID] == null) footsteps[materialID] = HashSet()
|
||||
footsteps[materialID]!!.add(
|
||||
MusicContainer(music.nameWithoutExtension(), music.file(), Gdx.audio.newMusic(music)) {}
|
||||
)
|
||||
}
|
||||
|
||||
fun getRandomFootstep(materialID: MaterialID) = footsteps[materialID]?.random()
|
||||
|
||||
override fun dispose() {
|
||||
footsteps.values.forEach { it.forEach { it.gdxMusic.tryDispose() } }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user