Phase 9: Iris and Complementary Reimagined, off by default

Adrian, 2026-11-09: set up the shader but keep it disabled by default. Iris
1.8.14-beta.1 (built for the pack's Sodium 0.8.13) and Complementary Reimagined
r5.9.3, both client only and fetched from Modrinth. Default Options' extra
folder ships config/iris.properties with shaders off and Complementary
preselected, copied only when a player has none. Toggle Shaders is on M, the
only free letter; Iris's other keys are unbound. tools/build.py fails if the
settings name a shader file the pack doesn't install.

Smoke test passes; client dependencies are satisfied. Not launched on a client.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Opus 5.5 committed 2026-11-09 13:08:14 +01:00
1 parent f7ea371862
commit 0741c84077
13 files changed
+71 -3

No files matched your search

+10
View File
@@ -96,6 +96,15 @@ def check_overrides(archive, jar):
sys.exit(f"{archive.name} would bundle third-party jars: {bundled}")
def check_default_shader():
"""The shader pack named in the default Iris settings is the file the pack installs."""
settings = (PACK / "config/defaultoptions/extra/config/iris.properties").read_text()
named = next(line.split("=", 1)[1] for line in settings.splitlines() if line.startswith("shaderPack="))
files = [tomllib.loads(p.read_text())["filename"] for p in (PACK / "shaderpacks").glob("*.pw.toml")]
if named not in files:
sys.exit(f"config/defaultoptions/extra/config/iris.properties names {named}, the pack has {files}")
def main():
parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument("--skip-mod", action="store_true", help="reuse the last companion mod build")
@@ -104,6 +113,7 @@ def main():
if not args.skip_mod:
build_mod()
jar = companion_jar()
check_default_shader()
run([sys.executable, str(ROOT / "tools/quests.py")], ROOT) # the quest book (Phase 8) from docs/quests.yaml
packwiz("refresh", cwd=PACK)
pack = tomllib.loads((PACK / "pack.toml").read_text())