summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-21 11:08:58 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-21 11:08:58 +0800
commit623ee728e939663aa4c98a731dcd0dcfe58bdb90 (patch)
tree5e2598127f1460e5d72f4003cb5ea46ef5a4be7d /scripts
parente91a4a7ed0a55e9406623d1649cc432369bc0834 (diff)
downloadliving-village-623ee728e939663aa4c98a731dcd0dcfe58bdb90.tar.gz
feat(desktop): 江南水乡河道横贯与波纹两帧
场景改为沿村蜿蜒水带(北岸凸湾、中段横贯、南段收窄),南北两岸石板路沿河展开,木桥三块纵跨全河连接民居门前石径;水面新增第二张波纹图块,按世界 tick/32 取模确定性交替,绘制无新增每帧分配。
Diffstat (limited to 'scripts')
-rw-r--r--scripts/make-jiangnan-art.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/scripts/make-jiangnan-art.py b/scripts/make-jiangnan-art.py
index 98e357c..26db3fc 100644
--- a/scripts/make-jiangnan-art.py
+++ b/scripts/make-jiangnan-art.py
@@ -2,7 +2,7 @@
"""Deterministic pixel-art atlases for LivingVillage.Desktop.
Generates three RGBA PNGs into src/LivingVillage.Desktop/Assets:
- jiangnan-world.png 416x32 (13 ground/prop tiles, 32px each)
+ jiangnan-world.png 448x32 (14 ground/prop tiles, 32px each)
jiangnan-characters.png 1024x48 (4 variants x 4 directions x 2 frames, 32x48 cells)
jiangnan-interior.png 392x96 (variable-size bottom-aligned interior cells)
@@ -99,7 +99,7 @@ def verify_png(path, expected_w, expected_h):
def build_world_atlas():
- c = Canvas(416, 32)
+ c = Canvas(448, 32)
tile = 32
def slot(index):
@@ -294,6 +294,22 @@ def build_world_atlas():
c.rect(x0 + 19, 18, 3, 3, (196, 158, 74, 255))
c.rect(x0 + 6, 29, 20, 3, (83, 52, 39, 255))
+ x0 = slot(13)
+ c.rect(x0, 0, 32, 32, water)
+ c.rect(x0 + 4, 3, 2, 26, water_deep)
+ c.rect(x0 + 19, 8, 2, 22, water_deep)
+ for y in (9, 20, 29):
+ for x in range(3, 29):
+ if (x * 3 + y) % 5 != 0:
+ c.set(x0 + x, y, water_light)
+ for y in (14, 25):
+ for x in range(5, 27):
+ if (x + y * 2) % 6 == 0:
+ c.set(x0 + x, y, water_deep)
+ for sx, sy in ((9, 6), (24, 13), (15, 24), (5, 19)):
+ c.set(x0 + sx, sy, (214, 231, 238, 255))
+ c.set(x0 + sx + 1, sy, (214, 231, 238, 120))
+
return c
@@ -513,7 +529,7 @@ def build_interior_atlas():
def main():
ASSET_DIR.mkdir(parents=True, exist_ok=True)
targets = [
- ("jiangnan-world.png", build_world_atlas(), 416, 32),
+ ("jiangnan-world.png", build_world_atlas(), 448, 32),
("jiangnan-characters.png", build_character_atlas(), 1024, 48),
("jiangnan-interior.png", build_interior_atlas(), 392, 96),
]