From fc77481196aaea817eec991bdcf4dc22bb1d245c Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Mon, 21 Sep 2026 01:41:05 +0800 Subject: feat(desktop): 江南美术改为真实 PNG 图集 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - scripts/make-jiangnan-art.py 生成三张原创透明 PNG:世界 256x32、角色 1024x48、内景 392x96 - VillageArt.fs 移除进程内像素烘焙,改为 BaseDirectory 加载图集并校验尺寸 - 内景渲染改用图集(地板/墙/窗/桌/床/屏/毯/柜),新增玩家专属 StrawHat 变体 - 内景新增地毯与柜子装饰,角色按 FeetPosition 定位 - fsproj 随包复制三张 PNG;m6c-package.sh 校验三张 PNG 进入交付包 --- src/LivingVillage.Desktop.Tests/PrototypeTests.fs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/LivingVillage.Desktop.Tests') diff --git a/src/LivingVillage.Desktop.Tests/PrototypeTests.fs b/src/LivingVillage.Desktop.Tests/PrototypeTests.fs index 842ab4a..c5b127f 100644 --- a/src/LivingVillage.Desktop.Tests/PrototypeTests.fs +++ b/src/LivingVillage.Desktop.Tests/PrototypeTests.fs @@ -416,3 +416,16 @@ type PrototypeTests () = Assert.IsTrue(manifestLines |> Array.forall (fun line -> line.Length = 1), "The CJK manifest must contain exactly one character per line.") CollectionAssert.AreEqual(characters, manifestLines |> Array.map (fun line -> line.[0])) Assert.IsTrue(File.Exists(runtimeAssetPath ()), sprintf "Missing atlas PNG: %s" (runtimeAssetPath ())) + + [] + member _.JiangnanArtAssetsArePackagedAsRealPngFiles () = + let requiredAssets = + [ "Assets/jiangnan-world.png" + "Assets/jiangnan-characters.png" + "Assets/jiangnan-interior.png" ] + + let missing = + requiredAssets + |> List.filter (fun relativePath -> not (File.Exists(Path.Combine(AppContext.BaseDirectory, relativePath)))) + + Assert.AreEqual([], missing, sprintf "Missing Jiangnan PNG assets: %s" (String.concat ", " missing)) -- cgit v1.2.3