Files
aetherbound-guild/runtime/tools/m53_guild_visual_probe.gd
T

59 lines
2.0 KiB
GDScript

extends SceneTree
const GuildView = preload("res://entry/views/guild_page_view.gd")
const FIXTURES := [Vector2i(760, 360), Vector2i(844, 390), Vector2i(1280, 720)]
const LOCALES := ["zh_CN", "en"]
func _initialize() -> void:
call_deferred("_run")
func _run() -> void:
var out := OS.get_environment("ABG_EVIDENCE_DIR")
if out.is_empty():
push_error("requires ABG_EVIDENCE_DIR")
quit(1)
return
DirAccess.make_dir_recursive_absolute(out)
for fixture in FIXTURES:
for locale in LOCALES:
await _capture_fixture(fixture, locale, out)
print("ABG_M53_GUILD_VISUAL_PROBE_OK fixtures=3 locales=2 views=static,dynamic,final")
quit(0)
func _capture_fixture(fixture: Vector2i, locale: String, out: String) -> void:
root.size = Vector2(fixture)
var view := GuildView.new()
view.name = "GuildVisualProbeView"
view.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
view.configure_presentation({"safe_area": 24, "text_scale": 1.0, "locale": locale})
root.add_child(view)
view.render({"ok": true, "locale": locale, "company": {"owned_count": 2, "coin": 38, "display_recruits": []}, "destinations": {}, "recruits": [], "notice": ""})
await _settle()
_save(view, out, locale, fixture, "final")
var overlay := view.find_child("GuildAnchorRoot", true, false) as Control
if overlay != null:
overlay.visible = false
await _settle()
_save(view, out, locale, fixture, "static")
if overlay != null:
overlay.visible = true
var world := view.find_child("GuildMasterWorldExtension", true, false) as Control
if world != null:
world.visible = false
await _settle()
_save(view, out, locale, fixture, "dynamic")
view.queue_free()
await process_frame
func _settle() -> void:
for _i in range(3):
await process_frame
func _save(view: Control, out: String, locale: String, fixture: Vector2i, kind: String) -> void:
var viewport_texture := view.get_viewport().get_texture()
if viewport_texture == null:
return
var image := viewport_texture.get_image()
if image != null:
image.save_png(out.path_join("guild-%dx%d-%s-%s.png" % [fixture.x, fixture.y, locale, kind]))