UI: Info-Zeile kompakt, kurze Viewport-Hinweise
This commit is contained in:
parent
3094395444
commit
59c932dc35
1 changed files with 18 additions and 13 deletions
|
|
@ -631,7 +631,7 @@ func _build_center_viewport() -> SubViewportContainer:
|
|||
|
||||
# Bedien-Hinweis im Viewport (Overlay)
|
||||
help_label = Label.new()
|
||||
help_label.text = "Linksklick: auswählen & ziehen · Umschalt+Klick: Auswahl erweitern · Rahmen aufziehen: mehrere wählen · Strg+G: gruppieren\nR / Mausrad: drehen · Strg+D: duplizieren · Bild↑/↓: anheben/absenken · Spiegeln rechts · Entf: löschen · Strg+Z: zurück"
|
||||
help_label.text = "Linksklick: auswählen · Rahmen: mehrere · R: drehen · Entf: löschen · H: Hilfe"
|
||||
help_label.set_anchors_preset(Control.PRESET_BOTTOM_WIDE)
|
||||
help_label.offset_left = UIScale.px(12)
|
||||
help_label.offset_bottom = UIScale.px(-8)
|
||||
|
|
@ -1343,7 +1343,7 @@ func _update_tool_label() -> void:
|
|||
"bauen": "Bauen (F3)",
|
||||
"spawns": "Spawn-Zonen (F4)",
|
||||
}
|
||||
tool_label.text = "Werkzeug: %s · Umschalt+F = Flugmodus" % str(names.get(tool_mode, tool_mode))
|
||||
tool_label.text = "Werkzeug: %s" % str(names.get(tool_mode, tool_mode))
|
||||
|
||||
|
||||
## Symmetrie-Schalter (Karte t_f5935023, M1): Modus aus dem Toolbar-Menü übernehmen.
|
||||
|
|
@ -1829,7 +1829,7 @@ func _enter_terrain_mode() -> void:
|
|||
_sync_terrain_button()
|
||||
return
|
||||
tool_mode = "terrain"
|
||||
help_label.text = "Linksklick-Ziehen: Boden formen oder malen · Strg+Linksklick: Gegenteil / Steppe zurück ·\n1/2/3/4: Heben/Senken/Glätten/Malen · [ / ]: Pinselgröße Klein/Mittel/Groß ·\nPinselgröße & Material rechts · Rechte Maustaste: Flug · Strg+Z: letzter Strich weg"
|
||||
help_label.text = "Linksklick-Ziehen: formen bzw. malen · Strg+Klick: Gegenteil · [ ]: Pinselgröße · H: Hilfe"
|
||||
terrain_tool.call("set_brush_mode", terrain_mod._selected_terrain_mode())
|
||||
terrain_mod.refresh_panels()
|
||||
_set_status("Terrain-Modus an: LINKSKLICK-Ziehen formt den Boden, im Malen-Modus färbt er das Gelände (Steppe/Sand/Fels …). Regler rechts stellen Pinsel und Stärke ein.")
|
||||
|
|
@ -1849,7 +1849,7 @@ func _enter_spawn_mode() -> void:
|
|||
interaction.call("clear_selection", true)
|
||||
tool_mode = "spawns"
|
||||
check_mod.spawn_panel.visible = true
|
||||
help_label.text = "Linksklick: Zone setzen · Klick+Ziehen: Zone verschieben · Entf: löschen ·\nTeam/Radius rechts · Mittlere Maustaste: Kamera · Strg+Z: zurück"
|
||||
help_label.text = "Linksklick: Zone setzen · Ziehen: verschieben · Entf: löschen · H: Hilfe"
|
||||
check_mod.spawn_edit_btn.button_pressed = true
|
||||
spawn_tool.call("activate")
|
||||
spawn_tool.call("set_team", check_mod._selected_spawn_team())
|
||||
|
|
@ -1868,7 +1868,7 @@ func _leave_spawn_mode() -> void:
|
|||
|
||||
func _enter_objects_mode() -> void:
|
||||
tool_mode = "objects"
|
||||
help_label.text = "Linksklick: auswählen & ziehen · Umschalt+Klick: Auswahl erweitern · Rahmen aufziehen: mehrere wählen · Strg+G: gruppieren\nR: 90° drehen (Mausrad: 15° fein) · Pfeiltasten: 2-m-Raster · G: greifen (Esc: zurück) · Strg+D: duplizieren · Bild↑/↓: anheben/absenken\nStrg+Bild↑: auf Boden setzen · Strg halten: Snap-Zwang · Spiegeln rechts · Entf: löschen · Strg+Z: zurück"
|
||||
help_label.text = "Linksklick: auswählen · Rahmen: mehrere · R: drehen · Entf: löschen · H: Hilfe"
|
||||
_base_tool_status()
|
||||
|
||||
|
||||
|
|
@ -1901,7 +1901,7 @@ func _enter_build_mode() -> void:
|
|||
interaction.call("clear_selection", true)
|
||||
tool_mode = "bauen"
|
||||
build_panel.visible = true
|
||||
help_label.text = "Linksklick: Bauteil setzen (auch auf andere Teile = stapeln) · Umschalt+Klick: Bauteil auswählen ·\nR: drehen (90°) · Pfeiltasten: im 2-m-Raster verschieben · Bild↑/↓: anheben/absenken · Strg+Bild↑: auf Boden · Entf: löschen · Mittlere Maustaste: Kamera · Strg+Z: zurück"
|
||||
help_label.text = "Linksklick: Bauteil setzen · R: drehen · Entf: löschen · H: Hilfe"
|
||||
build_edit_btn.button_pressed = true
|
||||
if ui_right_panel is TabContainer and bauen_mod != null:
|
||||
(ui_right_panel as TabContainer).current_tab = bauen_mod.get_index()
|
||||
|
|
@ -1982,7 +1982,7 @@ func _recheck_terrain_mode() -> void:
|
|||
# Karte t_89c0ec95: Dezenter Terrain-Rückschalter = ebenfalls ein
|
||||
# Werkzeugwechsel — Linien wieder ausblenden (sofern nicht fixiert).
|
||||
_sync_contours_to_builder()
|
||||
help_label.text = "Linksklick: auswählen & ziehen · Umschalt+Klick: Auswahl erweitern · Rahmen aufziehen: mehrere wählen · Strg+G: gruppieren\nR: 90° drehen (Mausrad: 15° fein) · Pfeiltasten: 2-m-Raster · G: greifen (Esc: zurück) · Strg+D: duplizieren · Bild↑/↓: anheben/absenken\nStrg+Bild↑: auf Boden setzen · Strg halten: Snap-Zwang · Spiegeln rechts · Entf: löschen · Strg+Z: zurück"
|
||||
help_label.text = "Linksklick: auswählen · Rahmen: mehrere · R: drehen · Entf: löschen · H: Hilfe"
|
||||
_set_status("Terrain-Modus aus: Diese Map passt nicht ins Editor-MVP (Terrain-Auflösung über %d) — die Objekte bleiben normal bearbeitbar." % TerrainField.EDITOR_MAX_RESOLUTION, true)
|
||||
|
||||
|
||||
|
|
@ -2179,9 +2179,13 @@ func _refresh_stats() -> void:
|
|||
var count := SvmapDocument.object_count(doc)
|
||||
var poly := SvmapDocument.poly_usage(doc, manifest)
|
||||
var budget := int(SvmapIO.MAX_TOTAL_POLY)
|
||||
stats_objects.text = "Objekte: %d / 5000 · Poly-Budget: %s / %s (%.0f %%) · Bauteile: %d" % [
|
||||
count, _fmt_int(int(poly)), _fmt_int(budget), 100.0 * poly / budget,
|
||||
BuildOps.piece_count(doc)]
|
||||
var poly_pct := 100.0 * poly / budget
|
||||
stats_objects.text = "%d Objekte · Poly %.0f %%" % [count, poly_pct]
|
||||
stats_objects.tooltip_text = "Objekte: %d / 5000\nPoly-Budget: %s / %s (%.0f %%)\nBauteile: %d" % [
|
||||
count, _fmt_int(int(poly)), _fmt_int(budget), poly_pct, BuildOps.piece_count(doc)]
|
||||
# Nur bei knappem Budget auffällig färben (sonst ruhiger Nebentext).
|
||||
stats_objects.add_theme_color_override("font_color", get_theme_color(
|
||||
"warning" if poly_pct >= 90.0 or count >= 4500 else "field", "Editor"))
|
||||
# GLB-Fehlende Objekte (Karte t_9b50b231): Platzhalter laufen, aber Sly soll
|
||||
# sehen, WELCHE echten Modelle im Mesh-Lager nachgelegt werden müssen.
|
||||
if view_builder != null and not (view_builder.get("fehlende_glbs") as Array).is_empty():
|
||||
|
|
@ -2189,7 +2193,7 @@ func _refresh_stats() -> void:
|
|||
var nennung := ", ".join(fehlend.slice(0, 3))
|
||||
if fehlend.size() > 3:
|
||||
nennung += " … (+%d weitere)" % (fehlend.size() - 3)
|
||||
stats_objects.text += " · ⚠ GLB fehlt: %s" % nennung
|
||||
stats_objects.text += " · ⚠ GLB fehlt: %s" % nennung
|
||||
# Terrain-Anteil am Quest-3-Budget (res 513 = 524.288 Dreiecke, map_format.md §4)
|
||||
var tris := 0
|
||||
var res := 0
|
||||
|
|
@ -2199,8 +2203,9 @@ func _refresh_stats() -> void:
|
|||
var quest_budget := 524288
|
||||
var pct := 100.0 * float(tris) / float(quest_budget)
|
||||
var fps := Engine.get_frames_per_second()
|
||||
stats_terrain.text = " · Terrain: %s² Grid, %s Dreiecke (%.0f %% Quest-Budget) · %d FPS" % [
|
||||
str(res) if res > 0 else "—", _fmt_int(tris), pct, fps]
|
||||
stats_terrain.text = "Terrain %s² · %d FPS" % [str(res) if res > 0 else "—", fps]
|
||||
stats_terrain.tooltip_text = "Terrain: %s² Grid, %s Dreiecke (%.0f %% Quest-Budget)" % [
|
||||
str(res) if res > 0 else "—", _fmt_int(tris), pct]
|
||||
|
||||
|
||||
func _refresh_file_label() -> void:
|
||||
|
|
|
|||
Loading…
Reference in a new issue