WinScreenLogic.java
package io.github.some_example_name;
public class WinScreenLogic {
private StringBuilder input;
private boolean nameConfirmed;
private float cursorTimer;
private boolean cursorVisible;
public WinScreenLogic() {
input = new StringBuilder();
nameConfirmed = false;
cursorTimer = 0f;
cursorVisible = true;
}
public String getName() {
return input.toString();
}
public boolean isNameConfirmed() {
return nameConfirmed;
}
public void processKeyTyped(char character) {
if (nameConfirmed) return;
if (character == '\b') {
if (input.length() > 0) {
input.deleteCharAt(input.length() - 1);
}
return;
}
if (character == '\r' || character == '\n') {
if (input.length() > 0) {
nameConfirmed = true;
}
return;
}
if (input.length() >= 12) return;
if (Character.isLetterOrDigit(character) || character == ' ') {
input.append(character);
}
}
public void update(float delta) {
cursorTimer += delta;
if (cursorTimer >= 0.5f) {
cursorVisible = !cursorVisible; // Toggle cursor visibility
cursorTimer = 0f;
}
}
public boolean isCursorVisible() {
return cursorVisible;
}
public void resetInput() {
input.setLength(0);
nameConfirmed = false;
}
}