Keller-Dev Docs · Java & Hytale

Java Core

Input-Blocking & Abfang-Logik bei aktiven UI-Modals

Wenn ein UI-Element (wie eine Dialogbox) aktiv geöffnet ist, müssen Interaktionen mit der Spielwelt konsumiert werden, um unbeabsichtigte Doppel-Aktionen (z. B. sofortiges erneutes Ansprechen eines Objekts oder Weiterschalten beim Schließen) zu vermeiden. Mechanismus: Ein E-Tastendruck schließt im ersten Schritt lediglich ein offenes Modal. Erst wenn dialogBox.isVisible() auf false steht, wird im nächsten Frame wieder die Umkreis-/Raycast-Prüfung auf Objekte in Blickrichtung ausgeführt.

Referenz: Datei 1. Spielprojekt · Klasse InteractionSystem
public static void tryInteract(Player player, InputHandler input, List<InteractableObject> objects, DialogBox dialogBox) {
    if (!input.consumeJustPressed(KeyEvent.VK_E)) {
        return;
    }

    // Modal schluckt Tastendruck priorisiert
    if (dialogBox.isVisible()) {
        dialogBox.hide();
        return;
    }

    // Normale Objektprüfung davor...
}
#input #modal #dialog #state-machine #interaction
Bearbeiten