package dev.llan.view.game;
import dev.llan.receivers.Receiver;
import dev.llan.view.RenderComponent;
import dev.llan.view.View;
import javafx.scene.Parent;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
public class TitleScreenView implements RenderComponent {
private StackPane container;
private VBox box;
private Label title;
private Label lastScore;
private Label highScore;
private Button play;
private Label author;
private final Receiver receiver;
public TitleScreenView(View view, Receiver receiver) {
container = new StackPane();
container.getStyleClass().add("title-background");
box = new VBox();
box.getStyleClass().add("title-box");
title = new Label("Mourning Ember");
title.getStyleClass().add("title");
lastScore = new Label("Last Score: " + receiver.getLastScore());
lastScore.getStyleClass().add("score-label");
highScore = new Label("High Score: " + receiver.getMaxScore());
highScore.getStyleClass().add("score-label");
play = new Button("Start");
play.getStyleClass().add("start-button");
play.setOnAction(actionEvent -> view.setGameView(true));
author = new Label("By Alan Liu");
author.getStyleClass().add("author");
box.getChildren().addAll(title, lastScore, highScore, play, author);
container.getChildren().add(box);
this.receiver = receiver;
}
public void setLoading(boolean loading) {
if(loading) {
play.setText("Loading...");
} else {
play.setText("Start");
}
}
public void update() {
lastScore.setText("Last Score: " + receiver.getLastScore());
highScore.setText("High Score: " + receiver.getMaxScore());
}
@Override
public Parent render() {
return container;
}
}