blob: 9f5b8496efc4096d0ef1baa7e914951e31704b4f [file] [log] [blame] [raw]
package li.cil.oc.common
import li.cil.oc.Settings
import li.cil.oc.api.driver.EnvironmentHost
import scala.collection.mutable
object Sound {
val lastPlayed = mutable.WeakHashMap.empty[EnvironmentHost, Long]
def play(host: EnvironmentHost, name: String) {
host.world.playSoundEffect(host.xPosition, host.yPosition, host.zPosition, Settings.resourceDomain + ":" + name, Settings.get.soundVolume, 1)
}
def playDiskInsert(host: EnvironmentHost) {
play(host, "floppy_insert")
}
def playDiskEject(host: EnvironmentHost) {
play(host, "floppy_eject")
}
def playDiskActivity(host: EnvironmentHost, sound: String) = this.synchronized {
lastPlayed.get(host) match {
case Some(time) if time > System.currentTimeMillis() => // Cooldown.
case _ =>
play(host, sound)
lastPlayed += host -> (System.currentTimeMillis() + 500)
}
}
}