package net.alcuria.umbracraft.engine.manager.input;
import net.alcuria.umbracraft.Config;
import net.alcuria.umbracraft.Game;
import net.alcuria.umbracraft.editor.Drawables;
import net.alcuria.umbracraft.engine.screens.SetInputEnabled;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Button;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
/** Creates a button that, when clicked, will take the player to the main
* menu/pause menu.
* @author Andrew Keturi */
public class MainMenuButton extends OnscreenInput implements InputProcessor {
public MainMenuButton(Stage stage) {
Button button = new Button(Drawables.texture("ui/menuButtonUp"), Drawables.texture("ui/menuButtonDown"));
stage.addActor(button);
button.setPosition(Config.viewWidth - 40, Config.viewHeight - 40);
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
super.clicked(event, x, y);
onMenuPressed();
}
});
}
@Override
public boolean keyDown(int keycode) {
if (keycode == Keys.ESCAPE) {
onMenuPressed();
return true;
}
return false;
}
@Override
public boolean keyTyped(char character) {
return false;
}
@Override
public boolean keyUp(int keycode) {
return false;
}
@Override
public boolean mouseMoved(int screenX, int screenY) {
return false;
}
private void onMenuPressed() {
Game.publisher().publish(new SetInputEnabled(false));
Game.hud().openMainMenu();
}
@Override
public boolean scrolled(int amount) {
return false;
}
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
return false;
}
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
return false;
}
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
return false;
}
@Override
public void update() {
}
}