12 — Prototyp: ratatui-Durchstich #13
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Teil der Map #1 · Type:
wayfinder:prototype· Blocked by: #12 · graduiert aus #7Traegt das Screen-Modell aus #12, bevor sieben Bildschirme darauf gebaut werden? Billiger Durchstich mit Hauptmenue + Dungeon-Grid + einem Popup. Kein Kampf, kein Inventar, keine Mods.
Volle Fragestellung (kanonisch):
.scratch/rustkeep-1.0/issues/12-prototyp-ratatui-durchstich.mdUrteil: Das Modell aus #12 traegt. Aufgeloest in
88195d3.Primaerquelle ist der Wegwerf-Branch
prototyp/12-ratatui-durchstich(examples/durchstich.rs, 342 Zeilen). Start mitcargo run --example durchstich. Er bleibt dort und kommt nicht nachmain.Die fuenf Zusagen
mod gamebleibt ratatui-freiimpl Widgetbuf[(x,y)].set_symbol(…)ist der ganze TrickVec<Screen>fuer Screens und PopupsResponsestatt Stack-MutationKeyEventKind::Press-FilterPopup ueber Grid,
xdannj: der Zug zaehlt hoch und das Popup schliesst sich in derselben Iteration. Die Regel "einResponse::Commandschliesst alle Overlays" kostet die eine Zeile, die in #12 dafuer veranschlagt war.Der Windows-Fallstrick ist jetzt eine Zahl
#7 fuehrte ihn als Faktum, aber ungemessen. Der Prototyp zaehlt Tasten-Events ungefiltert und gefiltert mit. Unter Windows 11:
Jeder Tastendruck erzeugt zwei
Event::Key(Press und Release). Ohne den Filter kostete jeder Schritt zwei Zuege — und weil ein Zug befristete Modifikatoren tickt, waere das kein kosmetischer Fehler, sondern doppelte Spielzeit.Zwei Korrekturen, beide beim Spielen gefunden
Outcome { TurnPassed, Rejected(&'static str) }— der Zug endet nur beiTurnPassed, der Grund reist mit zurueck in die Statuszeile. Betrifft weit mehr als Waende: kaufen ohne Gold, Faehigkeit ohne Ausdauer, absteigen ohne Treppe. Overlays schliessen sich trotzdem auch beiRejected— die Rueckfrage wurde beantwortet.CommandmussClonesein, sonst kommt es nicht ausConfirm { on_yes }heraus.Ebenfalls bestaetigt (Nachtrag an #7)
ratatui::run,Clearauf ein Sub-Rectfuer Popups, und dassratatuidie Cratecrosstermre-exportiert — ein eigenerCargo.toml-Eintrag ist tatsaechlich unnoetig. Gebaut gegen ratatui 0.30.2 mit Rust 1.96.Was der Durchstich nicht beantwortet
Kampf, Inventar, Shop, Speichern, Mods — bewusst ausgelassen. Ungetestet blieb auch
RegistriesnebenGameaus #8: Der Durchstich laedt keine Registries, und der Borrow-Konflikt, den die Entscheidung vermeiden soll, tritt erst auf, wennGame::executebeides gleichzeitig braucht. Das prueft erst die Implementierung.