mining sounds

This commit is contained in:
minjaesong
2024-02-17 21:27:53 +09:00
parent c9f6246cd3
commit 0b683f33e1
95 changed files with 38 additions and 130 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -24,6 +24,7 @@ class AudioCodex {
} }
fun getRandomFootstep(materialID: String) = getRandomAudio("effects.steps.$materialID") fun getRandomFootstep(materialID: String) = getRandomAudio("effects.steps.$materialID")
fun getRandomMining(materialID: String) = getRandomAudio("effects.mining.$materialID")
/** /**
* @param identifier * @param identifier

View File

@@ -9,7 +9,6 @@ import net.torvald.terrarum.gameactors.*
import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.gameworld.fmod
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore
import net.torvald.terrarum.realestate.LandUtil
import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.ui.UICanvas
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import org.dyn4j.geometry.Vector2 import org.dyn4j.geometry.Vector2
@@ -371,8 +370,8 @@ open class FixtureBase : ActorWithBody, CuedByTerrainChange {
} }
when (soundSource) { when (soundSource) {
1 -> PickaxeCore.makeNoise(this, wallTile) 1 -> PickaxeCore.makeNoiseTileBurst(this, wallTile)
0 -> PickaxeCore.makeNoise(this, terrTile) 0 -> PickaxeCore.makeNoiseTileBurst(this, terrTile)
} }
// make some dust // make some dust

View File

@@ -168,8 +168,8 @@ open class FixtureSwingingDoorBase : FixtureBase {
} }
when (soundSource) { when (soundSource) {
1 -> PickaxeCore.makeNoise(this, wallTile) 1 -> PickaxeCore.makeNoiseTileBurst(this, wallTile)
0 -> PickaxeCore.makeNoise(this, terrTile) 0 -> PickaxeCore.makeNoiseTileBurst(this, terrTile)
} }
// make some dust // make some dust

View File

@@ -1,25 +1,17 @@
package net.torvald.terrarum.modulebasegame.gameitems package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.TextureRegion import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.* import net.torvald.terrarum.*
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.blockproperties.BlockCodex
import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.gameitems.mouseInInteractableRangeTools import net.torvald.terrarum.gameitems.mouseInInteractableRangeTools
import net.torvald.terrarum.gameparticles.createRandomBlockParticle
import net.torvald.terrarum.itemproperties.Calculate import net.torvald.terrarum.itemproperties.Calculate
import net.torvald.terrarum.itemproperties.Item import net.torvald.terrarum.itemproperties.Item
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem
import net.torvald.terrarum.modulebasegame.gameitems.AxeCore.BASE_MASS_AND_SIZE import net.torvald.terrarum.modulebasegame.gameitems.AxeCore.BASE_MASS_AND_SIZE
import net.torvald.terrarum.modulebasegame.gameitems.AxeCore.TOOL_DURABILITY_BASE import net.torvald.terrarum.modulebasegame.gameitems.AxeCore.TOOL_DURABILITY_BASE
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
import org.dyn4j.geometry.Vector2
import kotlin.math.roundToInt import kotlin.math.roundToInt
/** /**
@@ -77,6 +69,10 @@ object AxeCore {
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!! val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
val swingDmgToFrameDmg = delta.toDouble() / actionInterval val swingDmgToFrameDmg = delta.toDouble() / actionInterval
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
PickaxeCore.makeNoiseTileTouching(actor, tile)
}
INGAME.world.inflictTerrainDamage( INGAME.world.inflictTerrainDamage(
x, y, x, y,
Calculate.hatchetPower(actor, item?.material) * swingDmgToFrameDmg, Calculate.hatchetPower(actor, item?.material) * swingDmgToFrameDmg,
@@ -99,6 +95,10 @@ object AxeCore {
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!! val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
val swingDmgToFrameDmg = delta.toDouble() / actionInterval val swingDmgToFrameDmg = delta.toDouble() / actionInterval
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
PickaxeCore.makeNoiseTileTouching(actor, tile)
}
INGAME.world.inflictTerrainDamage( INGAME.world.inflictTerrainDamage(
x, y, x, y,
Calculate.hatchetPower(actor, item?.material) * swingDmgToFrameDmg, Calculate.hatchetPower(actor, item?.material) * swingDmgToFrameDmg,
@@ -110,7 +110,7 @@ object AxeCore {
PickaxeCore.dropItem(drop, x, y) PickaxeCore.dropItem(drop, x, y)
PickaxeCore.makeDust(tile, x, y, 9) PickaxeCore.makeDust(tile, x, y, 9)
PickaxeCore.makeNoise(actor, tile) PickaxeCore.makeNoiseTileBurst(actor, tile)
} }
// tile not busted // tile not busted
if (Math.random() < actionInterval) { if (Math.random() < actionInterval) {
@@ -125,6 +125,10 @@ object AxeCore {
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!! val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
val swingDmgToFrameDmg = delta.toDouble() / actionInterval val swingDmgToFrameDmg = delta.toDouble() / actionInterval
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
PickaxeCore.makeNoiseTileTouching(actor, tile)
}
INGAME.world.inflictTerrainDamage( INGAME.world.inflictTerrainDamage(
x, y, x, y,
Calculate.hatchetPower(actor, item?.material) * swingDmgToFrameDmg, Calculate.hatchetPower(actor, item?.material) * swingDmgToFrameDmg,
@@ -207,7 +211,7 @@ object AxeCore {
// drop the item under cursor // drop the item under cursor
PickaxeCore.dropItem(BlockCodex[tileBroken].drop, x, y) // todo use log item if applicable PickaxeCore.dropItem(BlockCodex[tileBroken].drop, x, y) // todo use log item if applicable
PickaxeCore.makeDust(tile, x, y, 9) PickaxeCore.makeDust(tile, x, y, 9)
PickaxeCore.makeNoise(actor, tile) PickaxeCore.makeNoiseTileBurst(actor, tile)
} }
// tile not busted // tile not busted
if (Math.random() < actionInterval) { if (Math.random() < actionInterval) {

View File

@@ -70,7 +70,7 @@ object BlockBase {
false false
) )
} }
PickaxeCore.makeNoise(actor, itemID) PickaxeCore.makeNoiseTileBurst(actor, itemID)
1L 1L
} }

View File

@@ -3,7 +3,6 @@ package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.TextureRegion import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.* import net.torvald.terrarum.*
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.Block
@@ -91,6 +90,10 @@ object PickaxeCore {
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!! val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
val swingDmgToFrameDmg = delta.toDouble() / actionInterval val swingDmgToFrameDmg = delta.toDouble() / actionInterval
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
makeNoiseTileTouching(actor, tile)
}
INGAME.world.inflictTerrainDamage( INGAME.world.inflictTerrainDamage(
x, y, x, y,
Calculate.pickaxePower(actor, item?.material) * swingDmgToFrameDmg, Calculate.pickaxePower(actor, item?.material) * swingDmgToFrameDmg,
@@ -125,9 +128,9 @@ object PickaxeCore {
// make dust // make dust
if (tileBroken != null || oreBroken != null) { if (tileBroken != null || oreBroken != null) {
makeDust(tile, x, y, 9) makeDust(tile, x, y, 9)
makeNoise(actor, tile) makeNoiseTileBurst(actor, tile)
} }
else { else if (Math.random() < actionInterval) {
makeDust(tile, x, y, 1) makeDust(tile, x, y, 1)
} }
} }
@@ -196,7 +199,13 @@ object PickaxeCore {
} }
} }
fun makeNoise(actor: ActorWithBody, tile: ItemID) { fun makeNoiseTileTouching(actor: ActorWithBody, tile: ItemID) {
Terrarum.audioCodex.getRandomMining(BlockCodex[tile].material)?.let {
actor.startAudio(it, 1.0)
}
}
fun makeNoiseTileBurst(actor: ActorWithBody, tile: ItemID) {
Terrarum.audioCodex.getRandomFootstep(BlockCodex[tile].material)?.let { Terrarum.audioCodex.getRandomFootstep(BlockCodex[tile].material)?.let {
actor.startAudio(it, 2.0) actor.startAudio(it, 2.0)
} }

View File

@@ -2,23 +2,16 @@ package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.g2d.TextureRegion import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.* import net.torvald.terrarum.*
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.gameitems.mouseInInteractableRangeTools import net.torvald.terrarum.gameitems.mouseInInteractableRangeTools
import net.torvald.terrarum.gameparticles.createRandomBlockParticle
import net.torvald.terrarum.itemproperties.Calculate import net.torvald.terrarum.itemproperties.Calculate
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem
import net.torvald.terrarum.modulebasegame.gameitems.SledgehammerCore.BASE_MASS_AND_SIZE import net.torvald.terrarum.modulebasegame.gameitems.SledgehammerCore.BASE_MASS_AND_SIZE
import net.torvald.terrarum.modulebasegame.gameitems.SledgehammerCore.TOOL_DURABILITY_BASE import net.torvald.terrarum.modulebasegame.gameitems.SledgehammerCore.TOOL_DURABILITY_BASE
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
import net.torvald.terrarum.worlddrawer.CreateTileAtlas.Companion.WALL_OVERLAY_COLOUR import net.torvald.terrarum.worlddrawer.CreateTileAtlas.Companion.WALL_OVERLAY_COLOUR
import org.dyn4j.geometry.Vector2
import kotlin.math.roundToInt import kotlin.math.roundToInt
/** /**
@@ -51,13 +44,10 @@ object SledgehammerCore {
var usageStatus = false var usageStatus = false
for (oy in 0 until mh) for (ox in 0 until mw) { for (oy in 0 until mh) for (ox in 0 until mw) {
val x = mx + xoff + ox val x = mx + xoff + ox
val y = my + yoff + oy val y = my + yoff + oy
val mousePoint = Point2d(x.toDouble(), y.toDouble())
val actorvalue = actor.actorValue val actorvalue = actor.actorValue
val wall = INGAME.world.getTileFromWall(x, y) val wall = INGAME.world.getTileFromWall(x, y)
val tileTerrain = INGAME.world.getTileFromTerrain(x, y) val tileTerrain = INGAME.world.getTileFromTerrain(x, y)
@@ -92,6 +82,10 @@ object SledgehammerCore {
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!! val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
val swingDmgToFrameDmg = delta.toDouble() / actionInterval val swingDmgToFrameDmg = delta.toDouble() / actionInterval
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
PickaxeCore.makeNoiseTileTouching(actor, wall)
}
INGAME.world.inflictWallDamage( INGAME.world.inflictWallDamage(
x, y, x, y,
Calculate.pickaxePower(actor, item?.material) * swingDmgToFrameDmg, Calculate.pickaxePower(actor, item?.material) * swingDmgToFrameDmg,
@@ -104,7 +98,7 @@ object SledgehammerCore {
PickaxeCore.dropItem("wall@$drop", x, y) PickaxeCore.dropItem("wall@$drop", x, y)
PickaxeCore.makeDust(wall, x, y, 9, WALL_OVERLAY_COLOUR) PickaxeCore.makeDust(wall, x, y, 9, WALL_OVERLAY_COLOUR)
PickaxeCore.makeNoise(actor, wall) PickaxeCore.makeNoiseTileBurst(actor, wall)
} }
} }
// tile not busted // tile not busted