Files
gplan-2/game/smoke/ui_layout_probe.gd
T

49 lines
2.0 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.
# VERTICAL SLICE - NOT FOR PRODUCTION
# Date: 2026-09-13(四区布局诊断探针——"内容未满幅/棋盘底裁切"回归定位:打印窗口/视口/四区实际矩形
# 与最小尺寸、展开旗标,对照 battle.md §Layout 1280×800 基座规格)
# 运行:Godot_console.exe --headless --path . res://smoke/ui_layout_probe.tscn
extends Node
func _ready() -> void:
await get_tree().process_frame # autoload 就绪
var main = load("res://presentation/main.tscn").instantiate()
add_child(main)
await get_tree().process_frame
main._start_adventure_from_menu()
for i in range(3):
await get_tree().process_frame
var win := get_window()
print("window.size=%s pos=%s mode=%s" % [win.size, win.position, win.mode])
print("viewport.visible_rect=%s" % get_viewport().get_visible_rect())
print("main.size=%s" % main.size)
for c in main.get_children():
if c is Control:
_dump_ctrl(c, 0)
var zones := {
"board_zone": main.board_zone, "board_view": main.board_view,
"info_panel": main.info_panel,
"stage": main.stage,
}
for k in zones:
var ctl: Control = zones[k]
if ctl == null:
print("%s = null" % k)
continue
print("%-16s pos=%s size=%s min=%s hflag=%d vflag=%d" % [k, ctl.position, ctl.size,
ctl.custom_minimum_size, ctl.size_flags_horizontal, ctl.size_flags_vertical])
var root_box: Control = main.get_child(0)
print("four-zone root: anchors=(%s,%s)-(%s,%s) offsets=(%s,%s,%s,%s) size=%s" % [
root_box.anchor_left, root_box.anchor_top, root_box.anchor_right, root_box.anchor_bottom,
root_box.offset_left, root_box.offset_top, root_box.offset_right, root_box.offset_bottom, root_box.size])
print("board_view cell_size=%s board=%s" % [main.board_view.get("cell_size"), main.board_view.board()])
get_tree().quit(0)
func _dump_ctrl(c: Control, depth: int) -> void:
var ind := " ".repeat(depth)
print("%s%s pos=%s size=%s min=%s" % [ind, c.name, c.position, c.size, c.custom_minimum_size])
for ch in c.get_children():
if ch is Control:
_dump_ctrl(ch, depth + 1)