Complete Cocos Creator port with level bundles, themes, and tooling.

Adds level prefabs, theme assets, audio, extensions, and deployment scripts for the Unity WebGL migration.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-16 15:30:58 +08:00
parent cba5105908
commit d393302388
6248 changed files with 17322729 additions and 11036 deletions

View File

@@ -0,0 +1,48 @@
#!/usr/bin/env python3
"""为 themes-database.json 各主题写入 propGroundnProp路径及 entityDisplay 默认值。"""
from __future__ import annotations
import json
from pathlib import Path
PROJECT = Path(__file__).resolve().parent.parent
DB_PATH = PROJECT / "assets/resources/theme/themes-database.json"
# 各主题 prop → nProp 贴图resources 相对路径,无 .png
PROP_GROUND: dict[str, str] = {
"silu": "textures/silu/nProp_kuai1",
"sanxing": "textures/sanxing/nProp_kuai1",
"snow": "textures/snow/nProp_kuai2",
"chinese": "textures/chinese/nProp_Dumpling",
"numMan": "textures/numMan/nProp_kuai",
"redarmy": "textures/redArmy/nProp_star",
}
DEFAULT_BLOCK_Y = 14
DEFAULT_GROUND_Y = -11
DEFAULT_MOVER_EMPTY_Y = 25
def main() -> None:
db = json.loads(DB_PATH.read_text(encoding="utf-8"))
for theme_id, ground_path in PROP_GROUND.items():
theme = db.get("themes", {}).get(theme_id)
if not theme:
print(f"skip missing theme: {theme_id}")
continue
theme.setdefault("entities", {})["propGround"] = ground_path
ed = theme.setdefault("entityDisplay", {})
prop_scale = ed.get("prop", {}).get("scale", 1)
ed.setdefault("propGround", {"scale": prop_scale})
ed.setdefault("propBlockYOffset", DEFAULT_BLOCK_Y)
ed.setdefault("propGroundYOffset", DEFAULT_GROUND_Y)
ed.setdefault("moverEmptyCellYOffset", DEFAULT_MOVER_EMPTY_Y)
png = PROJECT / "assets/resources" / f"{ground_path}.png"
status = "ok" if png.is_file() else "MISSING"
print(f" {theme_id}: propGround={ground_path} [{status}]")
DB_PATH.write_text(json.dumps(db, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
print(f"Updated {DB_PATH}")
if __name__ == "__main__":
main()