mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
124 lines
No EOL
3.3 KiB
Ruby
124 lines
No EOL
3.3 KiB
Ruby
# Legacy shit
|
|
module Audio
|
|
@music_group = self.create_group
|
|
@sounds_group = self.create_group
|
|
|
|
@bgm_playback = nil
|
|
@bgm_pos = 0
|
|
@bgs_playback = nil
|
|
@me_playback = nil
|
|
@se_playbacks = []
|
|
|
|
class << self
|
|
def bgm_play(path, volume = 100, pitch = 100)
|
|
bgm_stop
|
|
@bgm_pos = 0
|
|
@bgm_playback = self.create_sound(path, false, @music_group)
|
|
@bgm_playback.play(-1, volume / 100.0, pitch / 100.0)
|
|
end
|
|
def bgm_fade(time)
|
|
@bgm_playback.fade_out(time / 60.0)
|
|
end
|
|
def bgm_stop
|
|
if @bgm_playback
|
|
@bgm_playback.stop
|
|
end
|
|
end
|
|
def bgm_pos
|
|
if @bgm_playback
|
|
@bgm_playback.position
|
|
end
|
|
0
|
|
end
|
|
|
|
def bgs_play(path, volume = 100, pitch = 100)
|
|
bgs_stop
|
|
if (@bgs_playback)
|
|
@bgs_playback.fade_out(0.02)
|
|
end
|
|
@bgs_playback = self.create_sound(path, false, @sounds_group)
|
|
@bgs_playback.play(-1, volume / 100.0, pitch / 100.0)
|
|
end
|
|
def bgs_fade(time)
|
|
@bgs_playback.fade_out(time / 60.0)
|
|
end
|
|
def bgs_stop
|
|
if @bgs_playback
|
|
@bgs_playback.stop
|
|
end
|
|
end
|
|
def bgs_pos
|
|
if @bgs_playback
|
|
@bgs_playback.position
|
|
end
|
|
0
|
|
end
|
|
|
|
def me_play(path, volume = 100, pitch = 100)
|
|
if @bgm_playback && @bgm_playback.playing
|
|
@bgm_pos = @bgm_playback.position
|
|
end
|
|
bgm_fade(20);
|
|
|
|
@me_playback = self.create_sound(path, true, @sounds_group)
|
|
@me_playback.play(-1, volume / 100.0, pitch / 100.0)
|
|
end
|
|
def me_fade(time)
|
|
@me_playback.fade_out(time / 60.0)
|
|
if @bgm_playback
|
|
@bgm_playback.position = @bgm_pos
|
|
@bgm_playback.fade_in(time / 60.0)
|
|
end
|
|
end
|
|
def me_stop
|
|
if @me_playback
|
|
@me_playback.stop
|
|
end
|
|
end
|
|
|
|
def se_play(path, volume = 100, pitch = 100)
|
|
sound = self.create_sound(path, true, @sounds_group)
|
|
sound.play(0, volume / 100.0, pitch / 100.0)
|
|
@se_playbacks << sound
|
|
end
|
|
def se_stop
|
|
@se_playbacks.clear
|
|
end
|
|
|
|
def update
|
|
if !@me_playback && @bgm_playback && !@bgm_playback.playing
|
|
@bgm_playback.fade_in(40.0 / 60.0)
|
|
@bgm_playback.position = @bgm_pos
|
|
end
|
|
|
|
if @me_playback && !@me_playback.playing
|
|
@me_playback = nil
|
|
end
|
|
|
|
@se_playbacks.delete_if { |se| !se.playing }
|
|
end
|
|
|
|
def bgm_volume
|
|
self.get_group_volume(@music_group * 100.0)
|
|
end
|
|
def bgm_volume=(val)
|
|
self.set_group_volume(@music_group, val / 100.0)
|
|
end
|
|
|
|
def sfx_volume
|
|
self.get_group_volume(@sounds_group)
|
|
end
|
|
def sfx_volume=(val)
|
|
self.set_group_volume(@sounds_group, val / 100.0)
|
|
end
|
|
|
|
def music_group
|
|
@music_group
|
|
end
|
|
def sounds_group
|
|
@sounds_group
|
|
end
|
|
end
|
|
end
|
|
|
|
# meow |