"""Prepare original Alien Grunt / hornet assets, without changing Steam files. Embed the companion texture MDL; keep only self-contained sequence-group-zero animations. External group 1 contains cinematic sequences, not the combat set. """ import hashlib import json import shutil import struct from pathlib import Path ROOT = Path(__file__).resolve().parents[1] SOURCE = Path.home() / '.steam/steam/steamapps/common/Half-Life/valve' DEST = ROOT / 'assets/boss' def digest(path): return hashlib.sha256(path.read_bytes()).hexdigest() def prepare_model(name, companion=None): src = SOURCE / 'models' / (name + '.mdl') body = bytearray(src.read_bytes()) assert body[:4] == b'IDST' and struct.unpack_from(' 0 for i in range(count): pos = records + i * 80 pixel = struct.unpack_from('