summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop/CjkGlyphAtlas.fs
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-29 04:58:29 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-29 04:58:29 +0800
commitfd40d78fd7506a95f0c5ad3295adfeb0a636e815 (patch)
treea948f264a7924e52d804d12735c66ed2cb529b6d /src/LivingVillage.Desktop/CjkGlyphAtlas.fs
parentf274ed8c920bbea383a4bf0e2ffe1219f7fe30b5 (diff)
downloadliving-village-fd40d78fd7506a95f0c5ad3295adfeb0a636e815.tar.gz
p61: G1 字形图集补齐 16 个 UI 用字(红→绿),中文界面完整
红:新增 src/LivingVillage.Desktop.Tests/P61GlyphCoverageTests.fs——扫描 Desktop 源码 字符串字面量内的全部 CJK 字,断言 100% 在 CjkGlyphAtlas 内;并逐字钉 G1 缺的 16 字(冬包卷品夏料春玩秋第背车轴页香鱼)、requiredUiLabels、以及运行期文案 (日历「春·第1天」/页脚「第 1/3 页…翻页」/「V 卖出 背包物品×1」/鱼卷轴香料玩车回)。 实现前实测 3 失败:缺字形 16。 绿:向 CjkGlyphAtlas.characterTable 补入 16 字(保持有序、去重),同步 Assets/cjk-glyphs.txt,并跑 scripts/generate-cjk-glyph-atlas.sh 用既有 Noto Sans CJK 重生成预生成 PNG:384x504(16x21 格,+16 字),16 个新字格均有真实字体墨迹 (ink_px 148-233,非程序几何伪字形)。更新 PrototypeTests 的图集几何常量 (307→323、rowCount 20→21、pixelHeight 480→504)。 证据:LV_P61_SHOT=1 拍 2 帧(p61-calendar 右上日历「春 · 第1天」;p61-dialog-footer 真实 Interact 开对话,页脚「第 1/3 页…翻页」+ 选项「V 卖出 背包物品×1」)。 analyze(p61-analysis.txt):缺字空白位=0、黑块=0、白块=0/2;全部抽检文案 missing_glyph_slots=0。钩子为 Game.fs 纯追加(53 行,0 删除),未动 HUD 结构。 回归(p61-verification.txt):Desktop 308/308(+4 P61)+ Kernel 119/119; --performance-baseline ×3 digest 953775FAEB2F… 不变,determinism PASS。 未改 Kernel/Sim,未引外部素材(沿用既有 Noto 字体来源),未 push。
Diffstat (limited to 'src/LivingVillage.Desktop/CjkGlyphAtlas.fs')
-rw-r--r--src/LivingVillage.Desktop/CjkGlyphAtlas.fs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/LivingVillage.Desktop/CjkGlyphAtlas.fs b/src/LivingVillage.Desktop/CjkGlyphAtlas.fs
index 01d6a59..8b42596 100644
--- a/src/LivingVillage.Desktop/CjkGlyphAtlas.fs
+++ b/src/LivingVillage.Desktop/CjkGlyphAtlas.fs
@@ -11,7 +11,7 @@ module CjkGlyphAtlas =
// Keep this table sorted and stable so the generated PNG has a reproducible layout.
let private characterTable =
- "×一上不与业中为主乐乡书买了争事于互交人今从以件价任众会传位体作使保信倍停先入关内册再农准几出分切到前剧力功务动助匀单卖南原去友取受只可各同和回围圃土在坏墙备多夜大天夫失好始子存完定家察对将小尚就层居屋工差己已币帮常平年庄库应庙度开式当录待得心必态怒总恼情愁意戏成或户打找报拒择指挑捕据接提播操收改效敌数新方无日旧时明昏易是晓晚晨景暂更最有未村束板林果标格档桥歉段民水求江没法淡清渔游热照物状理瓦生用田留白的目看真石确社离移稳空竹笑粮精系紧纭纷线结给绝继绪续置翻耕聊职能自范获菜衅行观认讨议记讲论设访试话询说请读谅谈败货贩资走足路跳转过近返还进迫退送选速道邻郎都里量金鉴钱门闭问闯闲间闻附雨零需面项须食饥饿黄黛,:"
+ "×一上不与业中为主乐乡书买了争事于互交人今从以件价任众会传位体作使保信倍停先入关内册再农冬准几出分切到前剧力功务动助匀包单卖南卷原去友取受只可各同和品回围圃土在坏墙备夏多夜大天夫失好始子存完定家察对将小尚就层居屋工差己已币帮常平年庄库应庙度开式当录待得心必态怒总恼情愁意戏成或户打找报拒择指挑捕据接提播操收改效敌数料新方无日旧时明昏易春是晓晚晨景暂更最有未村束板林果标格档桥歉段民水求江没法淡清渔游热照物状玩理瓦生用田留白的目看真石确社离秋移稳空竹笑第粮精系紧纭纷线结给绝继绪续置翻耕聊职背能自范获菜衅行观认讨议记讲论设访试话询说请读谅谈败货贩资走足路跳车转轴过近返还进迫退送选速道邻郎都里量金鉴钱门闭问闯闲间闻附雨零需面页项须食饥饿香鱼黄黛,:"
let characters = characterTable.ToCharArray()
let rowCount = (characters.Length + columns - 1) / columns