1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2025-09-03 20:28:04 +00:00
Funkin/source/funkin/util/plugins/VolumePlugin.hx
Hyper_ 88ed66affa chore: Add null safety to various utility and plugin classes
And add a bit of error handling to CharSelectGF & CharSelectSubState

Co-Authored-By: Linus Torvalds <torvalds@linux-foundation.org>
2025-06-23 14:13:35 -04:00

43 lines
990 B
Haxe

package funkin.util.plugins;
import flixel.FlxBasic;
/**
* Handles volume control in a way that is compatible with alternate control schemes.
*/
@:nullSafety
class VolumePlugin extends FlxBasic
{
public function new()
{
super();
}
public static function initialize()
{
FlxG.plugins.addPlugin(new VolumePlugin());
}
public override function update(elapsed:Float):Void
{
super.update(elapsed);
var isHaxeUIFocused:Bool = haxe.ui.focus.FocusManager.instance?.focus != null;
if (!isHaxeUIFocused)
{
// Rebindable volume keys.
if (PlayerSettings.player1.controls.VOLUME_MUTE) FlxG.sound.toggleMuted();
else if (PlayerSettings.player1.controls.VOLUME_UP) FlxG.sound.changeVolume(0.1);
else if (PlayerSettings.player1.controls.VOLUME_DOWN) FlxG.sound.changeVolume(-0.1);
}
}
override public function destroy():Void
{
if (FlxG.plugins.list.contains(this)) FlxG.plugins.remove(this);
super.destroy();
}
}