fix: continuous album now plays again

This commit is contained in:
minjaesong
2024-07-07 02:53:57 +09:00
parent c211f67e38
commit 63070a19d5
10 changed files with 75 additions and 46 deletions

View File

@@ -9,7 +9,7 @@ import net.torvald.spriteanimation.SheetSpriteAnimation
import net.torvald.terrarum.*
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
import net.torvald.terrarum.audio.audiobank.MusicContainer
import net.torvald.terrarum.audio.dsp.Gain
import net.torvald.terrarum.audio.dsp.PreGain
import net.torvald.terrarum.audio.dsp.NullFilter
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.gameactors.AVKey
@@ -361,7 +361,7 @@ class FixtureAlloyingFurnace : FixtureBase {
getTrackByAudio(static).let {
if (it == null || (temperature > 0f && !it.isPlaying && !it.playRequested.get())) {
startAudio(static) {
it.filters[filterIndex] = Gain(0f)
it.filters[filterIndex] = PreGain(0f)
}
}
else if (it != null && it.isPlaying && temperature <= 0f) {
@@ -371,10 +371,10 @@ class FixtureAlloyingFurnace : FixtureBase {
}
if (it != null) {
if (it.filters[filterIndex] !is Gain) // just in case...
it.filters[filterIndex] = Gain(0f)
if (it.filters[filterIndex] !is PreGain) // just in case...
it.filters[filterIndex] = PreGain(0f)
(it.filters[filterIndex] as Gain).gain = (it.maxVolume * temperature * volRand.get()).toFloat()
(it.filters[filterIndex] as PreGain).gain = (it.maxVolume * temperature * volRand.get()).toFloat()
}
}

View File

@@ -4,7 +4,7 @@ import net.torvald.gdx.graphics.Cvec
import net.torvald.spriteanimation.SheetSpriteAnimation
import net.torvald.terrarum.*
import net.torvald.terrarum.audio.audiobank.MusicContainer
import net.torvald.terrarum.audio.dsp.Gain
import net.torvald.terrarum.audio.dsp.PreGain
import net.torvald.terrarum.audio.dsp.NullFilter
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.gameactors.AVKey
@@ -112,7 +112,7 @@ class FixtureFurnaceAndAnvil : FixtureBase, CraftingStation {
if (audioStatus == 0) {
startAudio(static) {
it.filters[filterIndex] = Gain(0f)
it.filters[filterIndex] = PreGain(0f)
audioStatus = 1
}
}
@@ -124,10 +124,10 @@ class FixtureFurnaceAndAnvil : FixtureBase, CraftingStation {
if (it != null) {
if (it.processor.streamBuf != null || it.playRequested.get()) {
if (it.filters[filterIndex] !is Gain) // just in case...
it.filters[filterIndex] = Gain(0f)
if (it.filters[filterIndex] !is PreGain) // just in case...
it.filters[filterIndex] = PreGain(0f)
(it.filters[filterIndex] as Gain).gain = 0.4f * volRand.get()
(it.filters[filterIndex] as PreGain).gain = 0.4f * volRand.get()
}
else {
audioStatus = 0

View File

@@ -9,7 +9,7 @@ import net.torvald.spriteanimation.SheetSpriteAnimation
import net.torvald.terrarum.*
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
import net.torvald.terrarum.audio.audiobank.MusicContainer
import net.torvald.terrarum.audio.dsp.Gain
import net.torvald.terrarum.audio.dsp.PreGain
import net.torvald.terrarum.audio.dsp.NullFilter
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.gameactors.AVKey
@@ -348,7 +348,7 @@ class FixtureSmelterBasic : FixtureBase {
getTrackByAudio(static).let {
if (it == null || (temperature > 0f && !it.isPlaying && !it.playRequested.get())) {
startAudio(static) {
it.filters[filterIndex] = Gain(0f)
it.filters[filterIndex] = PreGain(0f)
}
}
else if (it != null && it.isPlaying && temperature <= 0f) {
@@ -358,10 +358,10 @@ class FixtureSmelterBasic : FixtureBase {
}
if (it != null) {
if (it.filters[filterIndex] !is Gain) // just in case...
it.filters[filterIndex] = Gain(0f)
if (it.filters[filterIndex] !is PreGain) // just in case...
it.filters[filterIndex] = PreGain(0f)
(it.filters[filterIndex] as Gain).gain = (it.maxVolume * temperature * volRand.get()).toFloat()
(it.filters[filterIndex] as PreGain).gain = (it.maxVolume * temperature * volRand.get()).toFloat()
}
}