Added require_all method to replace explicitly requiring every source file, added SoundManager and sound effects, added sound for shield/health regen

This commit is contained in:
2020-05-08 19:03:45 -05:00
parent bc695df4a1
commit e3a2c9abe0
13 changed files with 197 additions and 106 deletions

View File

@@ -0,0 +1,53 @@
class IMICFPS
module SoundManager
extend CyberarmEngine::Common
MASTERS = {}
EFFECTS = []
PLAYLISTS = {}
def self.master_volume
1.0
end
def self.music_volume
0.25 * master_volume
end
def self.sfx_volume
0.5 * master_volume
end
def self.load_master(package)
return if MASTERS.dig(package)
yaml = YAML.load_file( "#{IMICFPS.assets_path}/#{package}/shared/sound/master.yaml" )
MASTERS[package] = yaml
end
def self.sound(package, name)
if data = sound_data(package, name.to_s)
get_sample("#{IMICFPS.assets_path}/#{package}/shared/sound/#{data["path"]}")
else
raise "Missing sound: '#{name}' in package '#{package}'"
end
end
def self.sound_data(package, name)
load_master(package)
if master = MASTERS.dig(package)
return master["sounds"].find { |s| s["name"] == name }
end
return nil
end
def self.sound_effect(klass, options)
EFFECTS << klass.new(options)
end
def self.update
EFFECTS.each { |e| e.update; EFFECTS.delete(e) if e.done? }
end
end
end