ShowAchievement.java
package io.github.neonteam10.Achievements;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.utils.Align;
import io.github.neonteam10.ui.UiAssets;
public class ShowAchievement extends Table {
private final UiAssets uiAssets;
private Label nameLabel;
private Label descriptionLabel;
private Image achievementImage;
public ShowAchievement(UiAssets uiAssets) {
this.uiAssets = uiAssets;
setFillParent(true);
center();
}
@Override
public void act(float delta) {
super.act(delta);
// Create label once fonts have been loaded.
if (nameLabel == null && uiAssets.hasFontsLoaded()) {
var nameStyle = new Label.LabelStyle(uiAssets.getSmallFont(), Color.BLACK);
nameLabel = new Label("", nameStyle);
descriptionLabel = new Label("", nameStyle);
}
// Create image once sprite sheet has been loaded.
if (achievementImage == null && uiAssets.hasSpritesheetLoaded()) {
var textureRegion = new TextureRegion(uiAssets.getSpritesheet(), 288, 132, 64, 32);
achievementImage = new Image(textureRegion);
}
// Add children once they have been created.
if (getChildren().isEmpty() && nameLabel != null && achievementImage != null) {
add(achievementImage).size(64.0f * 3.0f, 32.0f * 3.0f);
row();
add(nameLabel).align(Align.center);
row();
add(descriptionLabel).align(Align.center);
}
}
public void AchievementAppear() {
setVisible(true);
addAction(Actions.sequence(
Actions.fadeIn(0.3f),
Actions.delay(1.5f),
Actions.fadeOut(0.3f),
Actions.run(() -> setVisible(false))
));
}
}