Keller-Dev Docs · Java & Hytale

Java Core

Dynamische Datenfilterung für Benutzeroberflächen basierend auf Domain-Zuständen

Nicht alle im Speicher gehaltenen Daten einer Entitätsliste sollen dem Spieler im HUD angezeigt werden. Noch nicht von NPCs angenommene Quests (NOT_STARTET) verbleiben zwar in der globalen Quest-Liste, werden aber vor der GUI-Verarbeitung gefiltert. Design-Vorteile:Informationsgehalt: Das HUD bleibt aufgeräumt und zeigt nur relevante Informationen (ACTIVE, COMPLETED). Performance & Early-Exit: Enthält die sichtbare Teilmenge keine Elemente, bricht die Zeichenmethode frühzeitig ab (return), ohne unnötige Render-Befehle auszuführen.

Referenz: Datei 1. Spielprojekt · Klasse GameWindow.GamePanel
private void drawQuestTracker(Graphics g) {
    List<Quest> visibleQuests = new ArrayList<>();
    for (Quest quest : quests) {
        if (quest.getStatus() != Queststatus.NOT_STARTET) {
            visibleQuests.add(quest);
        }
    }

    if (visibleQuests.isEmpty()) {
        return; // Early Exit bei leerer Anzeige
    }

    // Zeichnen des UI-Panels...
}
#ui-filtering #state-pattern #hud #quest-system #clean-code
Bearbeiten