weather in weathercodex

This commit is contained in:
minjaesong
2024-04-14 00:18:30 +09:00
parent 670a308c78
commit 4fba0f70c9
48 changed files with 311 additions and 208 deletions

View File

@@ -1,19 +1,12 @@
package net.torvald.terrarum.audio
import com.badlogic.gdx.utils.Disposable
import java.io.File
/**
* Created by minjaesong on 2024-04-05.
*/
abstract class AudioBank : Disposable {
companion object {
fun fromMusic(name: String, file: File, looping: Boolean = false, toRAM: Boolean = false, songFinishedHook: (AudioBank) -> Unit = {}): AudioBank {
return MusicContainer(name, file, looping, toRAM, songFinishedHook)
}
}
protected val hash = System.nanoTime()
abstract fun makeCopy(): AudioBank

View File

@@ -1,7 +1,7 @@
package net.torvald.terrarum.audio
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.files.FileHandle
import net.torvald.terrarum.audio.audiobank.MusicContainer
import net.torvald.terrarum.tryDispose
/**

View File

@@ -6,6 +6,7 @@ import com.badlogic.gdx.utils.Disposable
import com.badlogic.gdx.utils.Queue
import net.torvald.terrarum.App
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.audio.audiobank.MusicContainer
import net.torvald.terrarum.audio.dsp.NullFilter
import net.torvald.terrarum.audio.dsp.TerrarumAudioFilter
import net.torvald.terrarum.gameactors.Actor

View File

@@ -0,0 +1,41 @@
package net.torvald.terrarum.audio.audiobank
import com.badlogic.gdx.utils.Queue
import net.torvald.terrarum.INGAME
import net.torvald.terrarum.audio.AudioBank
/**
* Created by minjaesong on 2024-04-12.
*/
class AudioBankMusicBox(override var songFinishedHook: (AudioBank) -> Unit = {}) : AudioBank() {
override val name = "spieluhr"
override val samplingRate = 48000
override val channels = 1
override val totalSizeInSamples = Long.MAX_VALUE // TODO length of lowest-pitch note
private val messageQueue = Queue<Pair<Long, Long>>() // pair of: absolute tick count, notes (61 notes polyphony)
override fun currentPositionInSamples(): Long {
TODO("Not yet implemented")
}
override fun readSamples(bufferL: FloatArray, bufferR: FloatArray): Int {
val tickCount = INGAME.WORLD_UPDATE_TIMER
TODO("Not yet implemented")
}
override fun reset() {
TODO("Not yet implemented")
}
override fun makeCopy(): AudioBank {
TODO("Not yet implemented")
}
override fun dispose() {
TODO("Not yet implemented")
}
}

View File

@@ -1,4 +1,4 @@
package net.torvald.terrarum.audio
package net.torvald.terrarum.audio.audiobank
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.audio.Music
@@ -12,6 +12,8 @@ import javazoom.jl.decoder.Bitstream
import net.torvald.reflection.extortField
import net.torvald.reflection.forceInvoke
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.audio.AudioBank
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack
import net.torvald.terrarum.serialise.toUint
import net.torvald.unsafe.UnsafeHelper
import net.torvald.unsafe.UnsafePtr
@@ -195,7 +197,6 @@ class MusicContainer(
val bytesToRead = minOf(buffer.size.toLong(), 2 * channels * (totalSizeInSamples - samplesReadCount))
if (!looping && bytesToRead <= 0) return bytesToRead.toInt()
// if (looping) printdbg(this, "toRAM music loop (bytes cursor: $samplesReadCount/$totalSizeInSamples, bytesToRead=$bytesToRead, buffer.size=${buffer.size})")
UnsafeHelper.memcpyRaw(
null,