AddScoreButton.java
package io.github.neonteam10.ui;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
import com.badlogic.gdx.utils.Align;
import io.github.neonteam10.GameLogic;
import io.github.neonteam10.Leaderboard;
public class AddScoreButton extends Table {
ImageTextButton addScoreButton;
UiAssets uiAssets;
GameLogic gameLogic;
Leaderboard leaderBoard;
public AddScoreButton(UiAssets uiAssets, GameLogic gameLogic, Leaderboard leaderBoard) {
this.uiAssets = uiAssets;
this.gameLogic = gameLogic;
this.leaderBoard = leaderBoard;
}
public void act(float delta) {
super.act(delta);
if (addScoreButton == null && uiAssets.hasFontsLoaded() && uiAssets.hasSpritesheetLoaded()) {
ImageTextButton.ImageTextButtonStyle style = new ImageTextButton.ImageTextButtonStyle();
style.up = new TextureRegionDrawable(new TextureRegion(uiAssets.getSpritesheet(), 288, 166, 64, 20));
style.over = new TextureRegionDrawable(new TextureRegion(uiAssets.getSpritesheet(), 288, 198, 64, 20));
style.down = new TextureRegionDrawable(new TextureRegion(uiAssets.getSpritesheet(), 288, 198, 64, 20));
style.font = uiAssets.getSmallFont();
style.fontColor = Color.BLACK;
addScoreButton = new ImageTextButton("Save Score", style);
TextField.TextFieldStyle textFieldStyle = new TextField.TextFieldStyle();
textFieldStyle.font = uiAssets.getSmallFont();
textFieldStyle.fontColor = Color.BLACK;
textFieldStyle.background = new TextureRegionDrawable(new TextureRegion(uiAssets.getSpritesheet(), 288, 166, 64, 20));
TextField inputText = new TextField("", textFieldStyle);
inputText.setMessageText("Enter your name");
inputText.setMaxLength(3);
inputText.setAlignment(Align.center);
addScoreButton.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
leaderBoard.addEntry(inputText.getText(), (int) gameLogic.getSatisfaction());
leaderBoard.writeLeaderboard();
}
});
add(inputText).size(64 * 3, 20 * 3);
row();
add(addScoreButton).size(64 * 3, 20 * 3);
}
}
}