Fix backwards controls + the exe's bare-capsule avatar
checkpoint / checkpoint (push) Successful in 1m41s
checkpoint / checkpoint (push) Successful in 1m41s
Two real bugs from the last change, both only visible in a real run: 1. Controls reversed: the third-person SpringArm3D had a 180° Y rotation that put the camera IN FRONT of the player looking back -- a mirror, so W read as backward and mouse pitch as inverted. SpringArm3D extends its child along +Z, not -Z; with no rotation the camera sits behind the player (+Z world) and looks -Z straight at them. Verified the vectors headless: camera behind, W decreases Z, mouse-up looks up. 2. Bare capsule instead of an avatar in the .exe: avatar_catalog.gd reads assets/avatars/catalog.json with FileAccess.open(), but the export used `all_resources` + empty include_filter, which does NOT pack plain .json files. ensure_catalog() failed -> no loadout -> build_current_avatar() returned null -> capsule stayed visible. From source it worked because res:// is the real filesystem. Fixed: include_filter="*.json" in both export presets (verified catalog.json + the .glb pack are now in the exported .pck). - scripts/verify_export_contents.gd + a checkpoint-runner step: export a pack and assert the non-resource runtime files are inside it. This is the guard for the "works from source, broken in the .exe" class. Client-side -- rebuild the exe. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015jtxAiu5dAW4WxCNdGkrkJ
This commit is contained in:
@@ -180,6 +180,17 @@ def main():
|
||||
fc_env["GODOT_BIN"] = godot_bin
|
||||
r = run(["bash", str(fc_script)], env=fc_env)
|
||||
results["fresh-clone boot"] = r.returncode == 0
|
||||
|
||||
# Export packaging: the game reads some files (catalog.json)
|
||||
# via raw FileAccess, which `all_resources` export doesn't
|
||||
# pack unless include_filter covers them. Passes from source,
|
||||
# bare capsule in the .exe. This guards that.
|
||||
ec_script = ROOT / "scripts" / "verify_export_contents.gd"
|
||||
if ec_script.exists():
|
||||
print("\n--- scripts/verify_export_contents.gd ---")
|
||||
r = run([godot_bin, "--headless", "--path", str(ROOT),
|
||||
"--script", "res://scripts/verify_export_contents.gd"], env=godot_env)
|
||||
results["export packaging"] = r.returncode == 0
|
||||
finally:
|
||||
server_proc.terminate()
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user