package com.github.czyzby.lml.uedi.music; import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.scenes.scene2d.Action; import com.badlogic.gdx.scenes.scene2d.actions.Actions; import com.github.czyzby.kiwi.util.common.Exceptions; /** Allows to stop the chosen {@link Music} instance in {@link Action}. * * @author MJ */ public class MusicStopAction extends Action { private Music music; @Override public boolean act(final float delta) { if (music != null) { try { music.stop(); } catch (final Exception exception) { Exceptions.ignore(exception); } music = null; } return true; } @Override public void reset() { super.reset(); music = null; } /** @return will be stopped. Null if already stopped. */ public Music getMusic() { return music; } /** @param music will be stopped. */ public void setMusic(final Music music) { this.music = music; } /** @param music will be stopped. * @return a {@link MusicStopAction} instance, which will stop the theme once executed. */ public static MusicStopAction stop(final Music music) { final MusicStopAction action = Actions.action(MusicStopAction.class); action.music = music; return action; } }