mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
sound effects for tile placing and breaking
This commit is contained in:
@@ -200,6 +200,8 @@ object AudioMixer: Disposable {
|
||||
masterTrack.addSidechainInput(fadeBus, 1.0)
|
||||
masterTrack.addSidechainInput(guiTrack, 1.0)
|
||||
|
||||
musicTrack.filters[1] = Gain(0.5f)
|
||||
|
||||
dynamicTracks.forEach {
|
||||
it.filters[0] = BinoPan(0f)
|
||||
sfxSumBus.addSidechainInput(it, 1.0)
|
||||
|
||||
@@ -122,7 +122,7 @@ abstract class Actor : Comparable<Actor>, Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
printdbg(this, "Dynamic Source ${track?.name}")
|
||||
// printdbg(this, "Dynamic Source ${track?.name}")
|
||||
|
||||
return track
|
||||
}
|
||||
|
||||
@@ -588,7 +588,7 @@ open class ActorWithBody : Actor {
|
||||
// make some effects
|
||||
if (collisionStatus != 0)
|
||||
makeDust(collisionDamage, vecSum)
|
||||
if (collisionStatus == COLLIDING_BOTTOM)
|
||||
if (collisionStatus and COLLIDING_BOTTOM != 0)
|
||||
makeNoise(collisionDamage)
|
||||
}
|
||||
else {
|
||||
@@ -2049,7 +2049,7 @@ open class ActorWithBody : Actor {
|
||||
if (collisionDamage > 1.0 / 1024.0) {
|
||||
val feetTiles = getFeetTiles()
|
||||
val volumeMax = collisionDamage / 108
|
||||
val feetTileMats = feetTiles.slice(0 until feetTiles.size).map { BlockCodex[it.second].material }
|
||||
val feetTileMats = feetTiles.slice(feetTiles.indices).map { BlockCodex[it.second].material }
|
||||
val feetTileCnt = feetTileMats.size.toDouble()
|
||||
val materialStats = feetTileMats.distinct().map { mat -> mat to feetTileMats.count { it == mat } }
|
||||
|
||||
|
||||
@@ -147,6 +147,7 @@ object AxeCore {
|
||||
// drop the item under cursor
|
||||
PickaxeCore.dropItem(BlockCodex[tileBroken].drop, x, y) // todo use log item if applicable
|
||||
PickaxeCore.makeDust(tile, x, y, 9)
|
||||
PickaxeCore.makeNoise(actor, tile)
|
||||
}
|
||||
// tile not busted
|
||||
if (Math.random() < actionInterval) {
|
||||
|
||||
@@ -70,6 +70,7 @@ object BlockBase {
|
||||
false
|
||||
)
|
||||
}
|
||||
PickaxeCore.makeNoise(actor, itemID)
|
||||
|
||||
1L
|
||||
}
|
||||
|
||||
@@ -105,6 +105,7 @@ object PickaxeCore {
|
||||
dropItem(drop, x, y)
|
||||
}
|
||||
makeDust(tile, x, y, 9)
|
||||
makeNoise(actor, tile)
|
||||
}
|
||||
}
|
||||
// tile not busted
|
||||
@@ -166,6 +167,12 @@ object PickaxeCore {
|
||||
}
|
||||
}
|
||||
|
||||
fun makeNoise(actor: ActorWithBody, tile: ItemID) {
|
||||
Terrarum.audioCodex.getRandomFootstep(BlockCodex[tile].material)?.let {
|
||||
actor.startAudio(it, 2.0)
|
||||
}
|
||||
}
|
||||
|
||||
fun endPrimaryUse(actor: ActorWithBody, item: GameItem?): Boolean {
|
||||
item?.using = false
|
||||
// reset action timer to zero
|
||||
|
||||
@@ -104,6 +104,7 @@ object SledgehammerCore {
|
||||
PickaxeCore.dropItem("wall@$drop", x, y)
|
||||
}
|
||||
PickaxeCore.makeDust(wall, x, y, 9, WALL_OVERLAY_COLOUR)
|
||||
PickaxeCore.makeNoise(actor, wall)
|
||||
}
|
||||
}
|
||||
// tile not busted
|
||||
|
||||
Reference in New Issue
Block a user