Bundle mission speech with an admin mute option and fix live audio downloads

This commit is contained in:
2026-10-15 16:53:39 +02:00
parent 07c4d70de5
commit 009b2fb591
181 changed files with 19248 additions and 103 deletions
+4 -2
View File
@@ -31,6 +31,7 @@ def check():
subprocess.run([sys.executable,str(ROOT/'tests/test_item_station_lifecycle.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_profile_config.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_welcome_voice.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_bundled_speech.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_speech_preparation.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_welcome_lifecycle.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_welcome_identity.py')],check=True)
@@ -43,6 +44,7 @@ def check():
subprocess.run([sys.executable,str(ROOT/'tests/test_speech_service.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_speech_menu.py')],check=True)
print(f'PASS: {check_prefabs((ROOT/"addons").rglob("*.et"))} prefabs have unique saved root entity IDs')
subprocess.run([sys.executable,str(ROOT/'tests/test_atlas_markers.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_objective_map_presentation.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_objective_map_element.py')],check=True)
subprocess.run([sys.executable,str(ROOT/'tests/test_native_objective_map_probe.py')],check=True)
@@ -96,7 +98,7 @@ def check():
assert set(ALLOWED) <= visibility['core'], 'Combined addon requires the authorized external closure'
vanilla=json.loads((ROOT/'docs/vanilla-resources.json').read_text())
for p in (ROOT/'addons').rglob('*'):
if not p.is_file() or p.suffix not in ['.c','.et','.conf','.ent','.layer','.layout','.emat','.bt']:continue
if not p.is_file() or p.suffix not in ['.c','.et','.conf','.ent','.layer','.layout','.emat','.bt','.acp']:continue
s=p.read_text()
assert not re.search(r'\b(?:ESCT\w*|SCRTC_\w+|SCRT_\w+|EAI_\w+)\b',s),f'Original ecosystem dependency: {p}'
for g,path in hard_resource_references(p.relative_to(ROOT).as_posix(),s):
@@ -104,7 +106,7 @@ def check():
if g in owners:
addon=p.relative_to(ROOT/'addons').parts[0]
assert owners[g] in visibility[addon],f'Resource outside declared dependency graph in {p}: {g} {path}'
if p.suffix in ['.et','.conf','.ent','.layout','.emat','.bt']:
if p.suffix in ['.et','.conf','.ent','.layout','.emat','.bt','.acp']:
assert p.with_name(p.name+'.meta').exists(),f'Missing metadata: {p}'
inventory=json.loads((ROOT/'docs/original-resource-inventory.json').read_text())
coverage=json.loads((ROOT/'docs/original-feature-coverage.json').read_text())