61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
FRONTEND_CPP = ROOT / "Source" / "AgrarianGame" / "AgrarianMvpFrontendWidget.cpp"
|
|
ROADMAP = ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md"
|
|
|
|
COMMON_RESOLUTIONS = [
|
|
(1280, 720),
|
|
(1366, 768),
|
|
(1600, 900),
|
|
(1920, 1080),
|
|
(2560, 1440),
|
|
]
|
|
SUPPORTED_SCALES = [0.75, 1.0, 1.25, 1.5]
|
|
|
|
|
|
def panel_size(width, height, scale):
|
|
minimum_margin = 24.0
|
|
preferred_width = 780.0
|
|
preferred_height = 430.0
|
|
available_width = max(320.0, width - (minimum_margin * 2.0))
|
|
available_height = max(240.0, height - (minimum_margin * 2.0))
|
|
return min(available_width, preferred_width * scale), min(available_height, preferred_height * scale)
|
|
|
|
|
|
def main():
|
|
frontend_text = FRONTEND_CPP.read_text(encoding="utf-8")
|
|
roadmap_text = ROADMAP.read_text(encoding="utf-8")
|
|
|
|
expected_source = [
|
|
"MinimumPanelMargin = 24.0f",
|
|
"PreferredPanelWidth = 780.0f",
|
|
"PreferredPanelHeight = 430.0f",
|
|
"AvailablePanelSize",
|
|
"FMath::Clamp(UiScale, 0.75f, 1.5f)",
|
|
]
|
|
missing = [snippet for snippet in expected_source if snippet not in frontend_text]
|
|
|
|
for width, height in COMMON_RESOLUTIONS:
|
|
for scale in SUPPORTED_SCALES:
|
|
panel_width, panel_height = panel_size(width, height, scale)
|
|
if panel_width > width - 48.0:
|
|
missing.append(f"panel overflows width at {width}x{height} scale {scale}")
|
|
if panel_height > height - 48.0:
|
|
missing.append(f"panel overflows height at {width}x{height} scale {scale}")
|
|
if panel_width < 320.0 or panel_height < 240.0:
|
|
missing.append(f"panel below minimum at {width}x{height} scale {scale}")
|
|
|
|
if "[x] Ensure UI scales on common resolutions." not in roadmap_text:
|
|
missing.append("roadmap item not complete")
|
|
|
|
if missing:
|
|
raise RuntimeError("MVP UI common resolution scaling verification failed: " + "; ".join(missing))
|
|
|
|
print("Agrarian MVP UI common resolution scaling verification complete.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|