scopedvr-map-core/ui/help_text.gd
2026-11-01 19:31:33 +01:00

97 lines
4.7 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

extends RefCounted
## Kurzhilfe-Overlay (Karte t_11b5c25b, Karte 3/3) — H schaltet das Panel an,
## H/Esc aus. Der Text spiegelt docs/tasten.md (Source of truth der Shortcut-
## Karten) als Kompakt-Tabelle für den Editor-Bildschirm. Bei neuen Tasten:
## docs/tasten.md UND hier pflegen.
##
## BBCode-Tabelle ([table=2]): Taste | Wirkung. Bei neuen Tasten die Zeile in
## der passenden Sektion ergänzen (text() aufbauen, _rows() macht die Zellen).
static func text() -> String:
var out := ""
out += _header("Kamera & Steuerung")
out += _table(_rows([
["Mittlere Maustaste ziehen", "Orbit: um die Karte drehen"],
["Mittlere Maustaste + Umschalt", "Pan: Karte verschieben"],
["Mausrad", "Zoom"],
["Rechte Maustaste halten", "Freelook-Flug in jedem Werkzeug: Maus = Umsehen, W/A/S/D = Bewegen, Leertaste hoch, Umschalt runter"],
["Strg / Alt (im Flug)", "schneller (×3) / langsamer (×0,3); Mausrad ändert die Grundgeschwindigkeit"],
["Umschalt+F", "Flugmodus dauerhaft an/aus"],
["F", "Auswahl ins Bild zentrieren"],
["L", "Höhenlinien fixieren (sonst nur im Terrain-Werkzeug)"],
["H", "diese Hilfe an/aus (Esc schließt auch)"],
]))
out += _header("Objekte auswählen & platzieren (F2)")
out += _table(_rows([
["Linksklick", "Objekt wählen; Umschalt/Strg+Klick: Mehrfachauswahl"],
["Rahmen aufziehen", "alle Objekte im Rahmen wählen (Umschalt: hinzufügen)"],
["Bibliothek: Klick / Doppelklick", "Objekt auswählen / Platzieren starten; Klick in die Karte setzt, Esc bricht ab"],
["G", "greifen: Objekt hängt an der Maus (Klick setzt, Esc zurück)"],
["Pfeiltasten", "im 2-m-Raster verschieben"],
["Bild↑ / Bild↓", "0,25 m anheben / absenken; Strg+Bild↑ = auf den Boden setzen"],
["Strg halten", "Snap-Zwang auf ganze Meter"],
["Strg+D", "duplizieren"],
["Entf", "löschen"],
["Strg+G / Strg+Umschalt+G", "Gruppieren / Gruppe lösen"],
["Esc", "abbrechen, dann Auswahl aufheben"],
]))
out += _header("Objekte verschieben, drehen, kippen (Werkzeugleiste links oben in der 3D-Ansicht)")
out += _table(_rows([
["Verschieben", "Pfeile am Objekt ziehen (X rot, Y grün, Z blau); Mausrad ändert die Schrittweite"],
["Drehen", "Ringe am Objekt ziehen: um alle drei Achsen, in 15°-Schritten; R = 90° um Y (Umschalt+R = −90°)"],
["Kippen", "Strg+R / Strg+Umschalt+R = um X ±15°; Alt+R / Alt+Umschalt+R = um Z ±15° (auch beim Platzieren)"],
["Spiegeln", "an der Stelle links↔rechts oder vor↔zurück (Panel Auswahl)"],
["Strg+Z / Strg+Y", "jeder Zug ist ein Undo-Schritt"],
]))
out += _header("Terrain formen (F1)")
out += _table(_rows([
["1 / 2 / 3", "Heben / Senken / Glätten"],
["5 / 6", "Einebnen (Höhe vom Strichstart) / Rampe (Start klicken, ziehen, loslassen)"],
["[ / ]", "Pinselgröße Klein / Mittel / Groß"],
["Linksklick ziehen", "Boden formen; Strg+Klick = Gegenteil (Heben ↔ Senken)"],
["Tablet/Controller", "Stärke folgt dem Druck (Maus = voll)"],
]))
out += _header("Malen (4)")
out += _table(_rows([
["Material wählen", "Tab Malen: Kacheln mit Vorschau"],
["Linksklick ziehen", "Material auf den Boden malen; Strg+Klick malt Steppe zurück"],
["Kante", "Regler: hart ↔ weich auslaufend"],
]))
out += _header("Bauen (F3)")
out += _table(_rows([
["Teil im Tab Bauen", "wählen, dann in die Karte klicken — Wände rasten an die Zellkante, Böden/Dächer in die Zellmitte"],
["Klick auf Wandoberkante", "stapelt das nächste Geschoss; Klick auf die Seite ersetzt das Teil (Wand → Tür)"],
["R / Esc", "Teil umdrehen bzw. drehen / Bauen beenden"],
["Gebäude", "jedes Haus ist eine Gruppe: „Ganzes Gebäude auswählen“, kopieren, löschen im Tab Bauen"],
]))
out += _header("Spawn-Zonen (F4) und Test-Start (T)")
out += _table(_rows([
["F4: Linksklick", "Zone setzen; Ziehen verschiebt, Entf löscht; Team und Radius im Tab Prüfen"],
["T: Linksklick", "Test-Startpunkt setzen (nur für F5, kein Spawn)"],
["F5", "▶ Karte testen"],
]))
out += _header("Datei & Rückgängig")
out += _table(_rows([
["Strg+Z", "Rückgängig"],
["Strg+Y / Strg+Umschalt+Z", "Wiederherstellen"],
["Strg+S / Strg+Umschalt+S", "Speichern / Speichern unter"],
["Strg+O / Strg+N", "Öffnen / Neue Map"],
["Datei → Hand-Haltung der Waffen", "öffnet das Tool für Hände und Finger pro Waffe (eigenes Fenster)"],
["Datei → Updates prüfen", "prüft auf eine neue Version; Banner „Jetzt updaten“ lädt und startet neu"],
]))
return out
static func _header(title: String) -> String:
return "\n[color=#8cc9f2][b]%s[/b][/color]\n\n" % title
static func _table(rows: String) -> String:
return "[table=2]%s[/table]\n" % rows
static func _rows(pairs: Array) -> String:
var out := ""
for pair in pairs:
out += "[cell][b]%s[/b][/cell][cell]%s[/cell]" % [str(pair[0]), str(pair[1])]
return out