SafeLogic.java

package io.github.some_example_name;

public class SafeLogic {
    private final String code;
    private final StringBuilder input = new StringBuilder();
    private boolean checked = false;
    private boolean searched = false;
    private boolean message = false;
    private boolean triggered = false;
    private float wait = 3f;

    public SafeLogic(String code){
        this.code = code;
    }

    public boolean isChecked() {
        return checked;
    }
    public boolean isSearched() {
        return searched;
    }
    public boolean isMessage() {
        return message;
    }
    public boolean isTriggered() {
        return triggered;
    }
    public String getInput() {
        return input.toString();
    }

    public void check(float distance, boolean ePressed) {
        if (!searched && !checked && ePressed && distance < 30f) {
            checked = true;
            input.setLength(0);
        }
    }

    public void enterDigit(int digit) {
        if (checked && digit >= 0 && digit <= 9) {
            input.append((char) ('0' + digit));
        }
    }

    public void backspace() {
        if (checked && input.length() > 0) {
            input.deleteCharAt(input.length() - 1);
        }
    }

    public void enter() {
        if (!checked) {
            return;
        }
        if (input.toString().equals(code)) {
            searched = true;
            message = true;
            triggered = true;
        }
        checked = false;
    }

    public void updateMessage(float delta) {
        if (message) {
            wait -= delta;
            if (wait <= 0) {
                message = false;
            }
        }
    }
}