/*
* This file is part of the Illarion project.
*
* Copyright © 2015 - Illarion e.V.
*
* Illarion is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Illarion is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
package illarion.client.gui.controller;
import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.input.NiftyInputEvent;
import de.lessvoid.nifty.input.NiftyStandardInputEvent;
import de.lessvoid.nifty.screen.KeyInputHandler;
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.nifty.screen.ScreenController;
import illarion.client.resources.SongFactory;
import illarion.client.util.AudioPlayer;
import org.illarion.engine.Engine;
import org.illarion.engine.sound.Music;
import javax.annotation.Nonnull;
/**
* @author Martin Karing <nitram@illarion.org>
*/
public final class CreditsStartScreenController implements ScreenController, KeyInputHandler {
private Nifty nifty;
@Nonnull
private final Engine engine;
public CreditsStartScreenController(@Nonnull Engine engine) {
this.engine = engine;
}
@Override
public void bind(@Nonnull Nifty nifty, @Nonnull Screen screen) {
this.nifty = nifty;
}
@Override
public void onStartScreen() {
Music creditsMusic = SongFactory.getInstance().getSong(2, engine.getAssets().getSoundsManager());
if (creditsMusic != null) {
AudioPlayer audioPlayer = AudioPlayer.getInstance();
audioPlayer.initAudioPlayer(engine.getSounds());
if (!audioPlayer.isCurrentMusic(creditsMusic)) {
audioPlayer.playMusic(creditsMusic);
}
}
nifty.gotoScreen("creditsSingles");
}
@Override
public void onEndScreen() {
// nothing
}
@Override
public boolean keyEvent(@Nonnull NiftyInputEvent inputEvent) {
if (inputEvent == NiftyStandardInputEvent.Escape) {
nifty.gotoScreen("login");
return true;
}
return false;
}
}